MakeHuman Community Wiki mediawiki http://www.makehumancommunity.org/wiki/Main_Page MediaWiki 1.25.1 first-letter Media Special Talk User User talk Project Project talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Documentation Documentation Talk FAQ FAQ Talk Background and Technical Considerations 0 125 1275 1274 2017-01-01T18:09:31Z Robbaer 12 /* Format Considerations */ wikitext text/x-wiki == Introduction == Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. == Format Considerations == In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the .MHX2 tools [https://thomasmakehuman.wordpress.com/mhx2-documentation/ ], which are independently developed and maintained by Thomas Larsson [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange]. These tools are very popwerful and popular. They make a lot of sense for those who work mainly with just MakeHuman and Blender. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. == MakeHuman Shader and Asset Rendering == A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. == Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales == The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE == Working with Rigs and Skeletons == Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. == MakeHuman Assets with transparency == In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). bce9c05d74ce8617cac40230b74e856dd762fbe1 1274 336 2017-01-01T18:04:09Z Robbaer 12 /* Format Considerations */ wikitext text/x-wiki == Introduction == Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. == Format Considerations == In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the .MHX2 tools [https://thomasmakehuman.wordpress.com/mhx2-documentation/ ], which are independently developed and maintained by Thomas Larson. These tools are very popwerful and popular. They make a lot of sense for those who work mainly with just MakeHuman and Blender. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. == MakeHuman Shader and Asset Rendering == A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. == Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales == The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE == Working with Rigs and Skeletons == Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. == MakeHuman Assets with transparency == In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). cec96b9b242176509eabbbc69a9beea6607814ed 336 335 2015-08-02T20:42:20Z Robbaer 12 wikitext text/x-wiki == Introduction == Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. == Format Considerations == In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. == MakeHuman Shader and Asset Rendering == A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. == Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales == The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE == Working with Rigs and Skeletons == Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. == MakeHuman Assets with transparency == In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). 7a2a3fe5e268599517bc671a33856a5b62516805 335 2015-08-02T20:39:46Z Robbaer 12 Created page with "'''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most com..." wikitext text/x-wiki '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). d4c935121f218b1c24c33cd4c282110a869a6c35 Main Page 0 1 747 746 2016-05-20T13:18:04Z Joepal 14 wikitext text/x-wiki This is the root of the MakeHuman Community Wiki. This is where you should find most of the relevant information on things related to MakeHuman. == Logging in == Any forum user can log in and edit most pages here (although some key pages are write protected). You can log in using your forum username and password. Note that even if you already logged in on the forums, you will need to log in again here (there is no single sign-on). == Informative pages == * [[FAQ:Index|FAQ]]: Frequently asked questions. If you wonder about something, this is probably where you should look first. * [[Documentation:Index|Documentation]]: Documentation for the MakeHuman software. This is the main and the most verbose documentation set for MakeHuman. * [[MakeHuman resources]]: List of locations for downloads and similar * [[MakeHuman Workflows]]: Some help on moving MakeHuman Assets into other programs * [[Video:Index|Video tutorials]]: A categorized list of video tutorials * [[Terminology]]: Confused by all the lingo? Check here for short explanations of common terms. * [[Releases]]: Detailed information about what changed in MakeHuman releases a8495a5e78b6174b1fdefc757daddea5e9cc6419 746 734 2016-05-20T13:16:56Z Joepal 14 wikitext text/x-wiki This is the root of the MakeHuman Community Wiki. This is where you should find most of the relevant information on things related to MakeHuman. == Logging in == Any forum user can log in and edit most pages here (although some key pages are write protected). You can log in using your forum username and password. Note that even if you already logged in on the forums, you will need to log in again here (there is no single sign-on). == Informative pages == * [[Documentation:Index|Documentation]]: Documentation for the MakeHuman software * [[MakeHuman resources]]: List of locations for downloads and similar * [[MakeHuman Workflows]]: Some help on moving MakeHuman Assets into other programs * [[FAQ:Index|FAQ]]: Frequently asked questions * [[Video:Index|Video tutorials]]: A categorized list of video tutorials * [[Terminology]]: Confused by all the lingo? Check here for short explanations of common terms. * [[Releases]]: Detailed information about what changed in MakeHuman releases fbabf83bf4e3d67f2b4b814c4f796bee102665bc 734 616 2016-05-20T12:39:42Z Joepal 14 wikitext text/x-wiki This is the root of the MakeHuman Community Wiki. In the future it is planned that this should be the one stop shop for most relevant information on things related to MakeHuman. == Logging in == Any forum user can log in and edit most pages here (although some key pages are write protected). You can log in using your forum username and password. Note that even if you already logged in on the forums, you will need to log in again here (there is no single sign-on). == Informative pages == * [[Documentation:Index|Documentation]]: Documentation for the MakeHuman software * [[MakeHuman resources]]: List of locations for downloads and similar * [[MakeHuman Workflows]]: Some help on moving MakeHuman Assets into other programs * [[FAQ:Index|FAQ]]: Frequently asked questions * [[Video:Index|Video tutorials]]: A categorized list of video tutorials * [[Terminology]]: Confused by all the lingo? Check here for short explanations of common terms. * [[Releases]]: Detailed information about what changed in MakeHuman releases eea6c7ceba54756addc8fcaed9361d838c94a9d8 616 411 2016-04-15T09:36:04Z Joepal 14 wikitext text/x-wiki This is the root of the MakeHuman Community Wiki. In the future it is planned that this should be the one stop shop for most relevant information on things related to MakeHuman. There is only a little bit here so far, but you could check the [[Documentation:Index|root of the documentation]] for now. == Logging in == Any forum user can log in and edit most pages here (although some key pages are write protected). You can log in using your forum username and password. Note that even if you already logged in on the forums, you will need to log in again here (there is no single sign-on). == Informative pages == * [[Documentation:Index|Documentation]]: Documentation for the MakeHuman software * [[MakeHuman resources]]: List of locations for downloads and similar * [[MakeHuman Workflows]]: Some help on moving MakeHuman Assets into other programs * [[FAQ:Index|FAQ]]: Frequently asked questions * [[Video:Index|Video tutorials]]: A categorized list of video tutorials * [[Terminology]]: Confused by all the lingo? Check here for short explanations of common terms. * [[Releases]]: Detailed information about what changed in MakeHuman releases 362250283df6cf84b2d8ada383d646c944d0be52 411 410 2015-08-16T23:30:15Z Robbaer 12 Reverted edits by [[Special:Contributions/Robbaer|Robbaer]] ([[User talk:Robbaer|talk]]) to last revision by [[User:Joepal|Joepal]] wikitext text/x-wiki This is the root of the MakeHuman Community Wiki. In the future it is planned that this should be the one stop shop for most relevant information on things related to MakeHuman. There is only a little bit here so far, but you could check the [[Documentation:Index|root of the documentation]] for now. == Logging in == Any forum user can log in and edit most pages here (although some key pages are write protected). You can log in using your forum username and password. Note that even if you already logged in on the forums, you will need to log in again here (there is no single sign-on). == Informative pages == * [[Documentation:Index|Documentation]]: Documentation for the MakeHuman software * [[MakeHuman resources]]: List of locations for downloads and similar * [[MakeHuman Workflows]]: Some help on moving MakeHuman Assets into other programs * [[FAQ:Index|FAQ]]: Frequently asked questions * [[Video:Index|Video tutorials]]: A categorized list of video tutorials * [[Terminology]]: Confused by all the lingo? Check here for short explanations of common terms. 173ac34f065029802a3fe90fa9a2e8291f03bdf5 410 400 2015-08-16T23:28:01Z Robbaer 12 Reverted edits by [[Special:Contributions/Joepal|Joepal]] ([[User talk:Joepal|talk]]) to last revision by [[User:Robbaer|Robbaer]] wikitext text/x-wiki This is the root of the MakeHuman Community Wiki. In the future it is planned that this should be the one stop shop for most relevant information on things related to MakeHuman. There is only a little bit here so far, but you could check the [[Documentation:Index|root of the documentation]] for now. == Informative pages == * [[Documentation:Index|Documentation]]: Documentation for the MakeHuman software * [[MakeHuman resources]]: List of locations for downloads and similar * [[MakeHuman Workflows]]: Some help on moving MakeHuman Assets into other programs * [[FAQ:Index|FAQ]]: Frequently asked questions * [[The MakeHuman Project]]: A description of MakeHuman as a project (as opposed to the MakeHuman software) d1b221b4e52f7a1d49f79fdd73856afb9d465942 400 136 2015-08-15T14:54:57Z Joepal 14 wikitext text/x-wiki This is the root of the MakeHuman Community Wiki. In the future it is planned that this should be the one stop shop for most relevant information on things related to MakeHuman. There is only a little bit here so far, but you could check the [[Documentation:Index|root of the documentation]] for now. == Logging in == Any forum user can log in and edit most pages here (although some key pages are write protected). You can log in using your forum username and password. Note that even if you already logged in on the forums, you will need to log in again here (there is no single sign-on). == Informative pages == * [[Documentation:Index|Documentation]]: Documentation for the MakeHuman software * [[MakeHuman resources]]: List of locations for downloads and similar * [[MakeHuman Workflows]]: Some help on moving MakeHuman Assets into other programs * [[FAQ:Index|FAQ]]: Frequently asked questions * [[Video:Index|Video tutorials]]: A categorized list of video tutorials * [[Terminology]]: Confused by all the lingo? Check here for short explanations of common terms. 173ac34f065029802a3fe90fa9a2e8291f03bdf5 136 135 2015-07-14T13:56:42Z Joepal 14 wikitext text/x-wiki This is the root of the MakeHuman Community Wiki. In the future it is planned that this should be the one stop shop for most relevant information on things related to MakeHuman. There is only a little bit here so far, but you could check the [[Documentation:Index|root of the documentation]] for now. == Logging in == Any forum user can log in and edit most pages here (although some key pages are write protected). You can log in using your forum username and password. Note that even if you already logged in on the forums, you will need to log in again here (there is no single sign-on). == Informative pages == * [[Documentation:Index|Documentation]]: Documentation for the MakeHuman software * [[MakeHuman resources]]: List of locations for downloads and similar * [[MakeHuman Workflows]]: Some help on moving MakeHuman Assets into other programs * [[FAQ:Index|FAQ]]: Frequently asked questions * [[Video:Index|Video tutorials]]: A categorized list of video tutorials 8da6809b9db0d792e86cb7f0edfb1fe3a6fb64e7 135 119 2015-07-12T13:40:20Z Joepal 14 /* Informative pages */ wikitext text/x-wiki This is the root of the MakeHuman Community Wiki. In the future it is planned that this should be the one stop shop for most relevant information on things related to MakeHuman. There is only a little bit here so far, but you could check the [[Documentation:Index|root of the documentation]] for now. == Informative pages == * [[Documentation:Index|Documentation]]: Documentation for the MakeHuman software * [[MakeHuman resources]]: List of locations for downloads and similar * [[MakeHuman Workflows]]: Some help on moving MakeHuman Assets into other programs * [[FAQ:Index|FAQ]]: Frequently asked questions * [[Video:Index|Video tutorials]]: A categorized list of video tutorials 1a79b71eb7e032edd3c93d8f2c196361dae18caf 119 118 2015-07-12T13:03:17Z Joepal 14 wikitext text/x-wiki This is the root of the MakeHuman Community Wiki. In the future it is planned that this should be the one stop shop for most relevant information on things related to MakeHuman. There is only a little bit here so far, but you could check the [[Documentation:Index|root of the documentation]] for now. == Informative pages == * [[Documentation:Index|Documentation]]: Documentation for the MakeHuman software * [[MakeHuman resources]]: List of locations for downloads and similar * [[MakeHuman Workflows]]: Some help on moving MakeHuman Assets into other programs * [[FAQ:Index|FAQ]]: Frequently asked questions * [[The MakeHuman Project]]: A description of MakeHuman as a project (as opposed to the MakeHuman software) * [[Video:Index|Video tutorials]]: A categorized list of video tutorials 125532c9d49ee4aad37baf70b49515726168b695 118 53 2015-07-12T13:00:16Z Joepal 14 wikitext text/x-wiki This is the root of the MakeHuman Community Wiki. In the future it is planned that this should be the one stop shop for most relevant information on things related to MakeHuman. There is only a little bit here so far, but you could check the [[Documentation:Index|root of the documentation]] for now. == Informative pages == * [[Documentation:Index|Documentation]]: Documentation for the MakeHuman software * [[MakeHuman resources]]: List of locations for downloads and similar * [[MakeHuman Workflows]]: Some help on moving MakeHuman Assets into other programs * [[FAQ:Index|FAQ]]: Frequently asked questions * [[The MakeHuman Project]]: A description of MakeHuman as a project (as opposed to the MakeHuman software) * [[Video tutorials]]: A categorized list of video tutorials 374e2a01698eed480339576e18e9d9abf3e8a203 53 52 2015-07-04T15:46:28Z Robbaer 12 /* Informative pages */ wikitext text/x-wiki This is the root of the MakeHuman Community Wiki. In the future it is planned that this should be the one stop shop for most relevant information on things related to MakeHuman. There is only a little bit here so far, but you could check the [[Documentation:Index|root of the documentation]] for now. == Informative pages == * [[Documentation:Index|Documentation]]: Documentation for the MakeHuman software * [[MakeHuman resources]]: List of locations for downloads and similar * [[MakeHuman Workflows]]: Some help on moving MakeHuman Assets into other programs * [[FAQ:Index|FAQ]]: Frequently asked questions * [[The MakeHuman Project]]: A description of MakeHuman as a project (as opposed to the MakeHuman software) d1b221b4e52f7a1d49f79fdd73856afb9d465942 52 51 2015-07-04T15:40:03Z Robbaer 12 wikitext text/x-wiki This is the root of the MakeHuman Community Wiki. In the future it is planned that this should be the one stop shop for most relevant information on things related to MakeHuman. There is only a little bit here so far, but you could check the [[Documentation:Index|root of the documentation]] for now. == Informative pages == * [[Documentation:Index|Documentation]]: Documentation for the MakeHuman software * [[MakeHuman resources]]: List of locations for downloads and similar * [[FAQ:Index|FAQ]]: Frequently asked questions * [[The MakeHuman Project]]: A description of MakeHuman as a project (as opposed to the MakeHuman software) 0e59ac7093b637188e9e5ba0b9d43cdcbc658d0a 51 48 2015-07-04T15:25:48Z Robbaer 12 wikitext text/x-wiki This is the root of the MakeHuman Community Wiki. In the future it is planned that this should be the one stop shop for most relevant information on things related to MakeHuman. There is only a little here so far, but you could check the [[Documentation:Index|root of the documentation]] for now. == Informative pages == * [[Documentation:Index|Documentation]]: Documentation for the MakeHuman software * [[MakeHuman resources]]: List of locations for downloads and similar * [[FAQ:Index|FAQ]]: Frequently asked questions * [[The MakeHuman Project]]: A description of MakeHuman as a project (as opposed to the MakeHuman software) 2d6ce811f31503d0dc4a029ca3d93cf4598afaa8 48 46 2015-07-04T11:17:25Z Joepal2 11 wikitext text/x-wiki This is the root of the MakeHuman Community Wiki. In the future it is planned that this should be the one stop shop for most relevant information on things related to MakeHuman. There is not a whole lot here yet, but you could check the [[Documentation:Index|root of the documentation]] for now. == Informative pages == * [[Documentation:Index|Documentation]]: Documentation for the MakeHuman software * [[MakeHuman resources]]: List of locations for downloads and similar * [[FAQ:Index|FAQ]]: Frequently asked questions * [[The MakeHuman Project]]: A description of MakeHuman as a project (as opposed to the MakeHuman software) bbc9f32b39ff9a2e51764c6b9200744702561f90 46 45 2015-07-04T11:06:32Z Joepal2 11 wikitext text/x-wiki This is the root of the MakeHuman Community Wiki. In the future it is planned that this should be the one stop shop for most relevant information on things related to MakeHuman. There is not a whole lot here yet, but you could check the [[Documentation:Index|root of the documentation]] for now. == Informative pages == * [[MakeHuman resources]]: List of locations for downloads and similar * [[The MakeHuman Project]]: A description of MakeHuman as a project (as opposed to the MakeHuman software) * [[FAQ:Index|FAQ]]: Frequently asked questions 992d96aabbf5f066a19a0631684da9ca2a437273 45 8 2015-07-04T10:55:58Z Joepal2 11 wikitext text/x-wiki Not a whole lot here yet, but you could check the [[Documentation:Index|root of the documentation]]. Test edit 80b13d776953d3a87eb8baecfa208c3ec0862f45 8 7 2015-06-27T15:14:58Z Joepal1 1 wikitext text/x-wiki Not a whole lot here yet, but you could check the [[Documentation:Index|root of the documentation]]. 9a4c66c4b6740e1f1f96ce04eb65a880070b70fe 7 6 2015-06-27T15:13:46Z Joepal1 1 wikitext text/x-wiki {{DISPLAYTITLE:MakeHuman Community Wiki}} Not a whole lot here yet, but you could check the [[Documentation:Index|root of the documentation]]. e67ff4e69959aa1fd5bf0f0429a2a9815a67c5c7 6 5 2015-06-27T15:12:07Z Joepal1 1 wikitext text/x-wiki <title>MakeHuman Community Wiki</title> Not a whole lot here yet, but you could check the [[Documentation:Index|root of the documentation]]. a2ee4173a1fa7319c0f87a7bcd3479ef9b71d276 5 3 2015-06-27T14:28:18Z Joepal1 1 Basic page wikitext text/x-wiki <strong>MediaWiki has been successfully installed.</strong> Not a whole lot here yet, but you could check the [[Documentation:Index|root of the documentation]]. fb801a915bb3ca3f62dedb1c11be51f7a3ceb7d8 3 2 2015-06-27T14:16:43Z Joepal3 2 /* Getting started */ wikitext text/x-wiki <strong>MediaWiki has been successfully installed.</strong> Consult the [//meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software. == Getting started == * [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list] * [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list] * [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language] test 264ba1509544124674659b491b004222803800c5 2 1 2015-06-27T14:11:01Z Joepal1 1 Protected "[[Main Page]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) wikitext text/x-wiki <strong>MediaWiki has been successfully installed.</strong> Consult the [//meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software. == Getting started == * [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list] * [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list] * [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language] 8e0aa2f2a7829587801db67d0424d9b447e09867 1 2015-06-27T13:57:30Z MediaWiki default 0 wikitext text/x-wiki <strong>MediaWiki has been successfully installed.</strong> Consult the [//meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software. == Getting started == * [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list] * [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list] * [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language] 8e0aa2f2a7829587801db67d0424d9b447e09867 MakeHuman Workflows 0 12 1991 1990 2021-01-19T09:29:35Z Fortuna 107 /* Moving Assets into Unreal Engine 4 */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] This subsection will provide some general information on "trouble spots" when trying to take your MakeHuman work and use it in a downstream application. Many of the problems discussed are topics that always arise when moving assets between 3D programs. *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into specific downstream programs. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== [[Moving Assets into Autodesk 3DSMax]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== [[Moving Assets into Blender]] This subsection describes the import of transparent assets after importing in Blender. The initial focus will be on using the Blender Internal Render engine. The use of Cycles render engine will be handled separately. The Blender tools (MakeClothes, MakeWalk, MakeTarget) for designing and working with MakeHuman internal assets are described elsewhere. ==Moving Assets into Unreal Engine 4== The documentation for how to work with Unreal Engine is available in [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there|"Saving models for Unreal_Engine and how to import them there"]]. ==Moving Assets into Unity Game Engine== The documentation for how to work with unity is available in [[Documentation:Saving_models_for_Unity_and_how_to_import_them_there|"Saving models for Unity and how to import them there"]]. ==Moving Assets into Sketchup Pro== ==Preparing assets for use with Second Life== ==User contributed assets. Sharing your creations with the community== You finally managed to model a cool piece of clothing or something else? You would like to share it with others? Great! A few words before you start loading up: MakeHuman is available for more than one OS. Users live in different countries using different language settings. This has some consequences to think about before you upload your asset. *Avoid non-ascii characters in your filenames. Depending on language settings some characters might lead to trouble. Stick to English in your file names and you're safe. *Don't use spaces in file names. Today, on most platforms you can use file names like "My Asset.mhclo", but a lot of scripts won't be able to handle it. They consider the space after "My" as a delimiter and fail. Instead of "My Asset.mhclo" "My_Asset.mhclo" would be better. *"My_Asset.mhclo" is still a bad filename. On Windows file names aren't case sensitive. On Linux they are. On Windows "My_Asset.mhclo", "my_asset.mhclo" and "My_Asset.MHCLO " all refer to the same file. On Linux they are three completely different files. You want your stuff to work on all platforms. Avoid uppercase letters. "my_asset.mhclo" is a good filename. *These rules are true for all files that belong to your asset. *Consider using the same base name for files belonging to your asset. For example, if you have a "my_asset.mhclo", it'd make sense to give a material belonging to it the name "my_asset.mhmat" rather than "some_other_random_name.mhmat". *Use self-explanatory file names for your graphic files. For this example "my_asset_diffuse.png" would be a good idea for the diffuse texture. Don't use just "diffuse.png". If there's more than one asset using this lazy naming convention files will be overwritten on export. *This one's obvious, but often forgotten: After renaming your files, open the .mhclo and .mhmat files and change the referenced file names to your new file names. ee4c87754e16106c1ebc8b46a0d223c2df99b35f 1990 1989 2021-01-19T09:18:24Z Fortuna 107 /* Moving Assets into Unreal Engine 4 */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] This subsection will provide some general information on "trouble spots" when trying to take your MakeHuman work and use it in a downstream application. Many of the problems discussed are topics that always arise when moving assets between 3D programs. *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into specific downstream programs. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== [[Moving Assets into Autodesk 3DSMax]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== [[Moving Assets into Blender]] This subsection describes the import of transparent assets after importing in Blender. The initial focus will be on using the Blender Internal Render engine. The use of Cycles render engine will be handled separately. The Blender tools (MakeClothes, MakeWalk, MakeTarget) for designing and working with MakeHuman internal assets are described elsewhere. ==Moving Assets into Unreal Engine 4== The documentation for how to work with Unreal Engine is available in [["Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there"]]. ==Moving Assets into Unity Game Engine== The documentation for how to work with unity is available in [[Documentation:Saving_models_for_Unity_and_how_to_import_them_there|"Saving models for Unity and how to import them there"]]. ==Moving Assets into Sketchup Pro== ==Preparing assets for use with Second Life== ==User contributed assets. Sharing your creations with the community== You finally managed to model a cool piece of clothing or something else? You would like to share it with others? Great! A few words before you start loading up: MakeHuman is available for more than one OS. Users live in different countries using different language settings. This has some consequences to think about before you upload your asset. *Avoid non-ascii characters in your filenames. Depending on language settings some characters might lead to trouble. Stick to English in your file names and you're safe. *Don't use spaces in file names. Today, on most platforms you can use file names like "My Asset.mhclo", but a lot of scripts won't be able to handle it. They consider the space after "My" as a delimiter and fail. Instead of "My Asset.mhclo" "My_Asset.mhclo" would be better. *"My_Asset.mhclo" is still a bad filename. On Windows file names aren't case sensitive. On Linux they are. On Windows "My_Asset.mhclo", "my_asset.mhclo" and "My_Asset.MHCLO " all refer to the same file. On Linux they are three completely different files. You want your stuff to work on all platforms. Avoid uppercase letters. "my_asset.mhclo" is a good filename. *These rules are true for all files that belong to your asset. *Consider using the same base name for files belonging to your asset. For example, if you have a "my_asset.mhclo", it'd make sense to give a material belonging to it the name "my_asset.mhmat" rather than "some_other_random_name.mhmat". *Use self-explanatory file names for your graphic files. For this example "my_asset_diffuse.png" would be a good idea for the diffuse texture. Don't use just "diffuse.png". If there's more than one asset using this lazy naming convention files will be overwritten on export. *This one's obvious, but often forgotten: After renaming your files, open the .mhclo and .mhmat files and change the referenced file names to your new file names. 0f9e63e8fe6d9d7de7d19e61b31ff76c2e362eb2 1989 1490 2021-01-19T09:16:38Z Fortuna 107 Moving Assets into Unreal Engine 4 - Found the content - adding a link to it so the next user finds it faster. wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] This subsection will provide some general information on "trouble spots" when trying to take your MakeHuman work and use it in a downstream application. Many of the problems discussed are topics that always arise when moving assets between 3D programs. *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into specific downstream programs. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== [[Moving Assets into Autodesk 3DSMax]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== [[Moving Assets into Blender]] This subsection describes the import of transparent assets after importing in Blender. The initial focus will be on using the Blender Internal Render engine. The use of Cycles render engine will be handled separately. The Blender tools (MakeClothes, MakeWalk, MakeTarget) for designing and working with MakeHuman internal assets are described elsewhere. ==Moving Assets into Unreal Engine 4== See [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]] ==Moving Assets into Unity Game Engine== The documentation for how to work with unity is available in [[Documentation:Saving_models_for_Unity_and_how_to_import_them_there|"Saving models for Unity and how to import them there"]]. ==Moving Assets into Sketchup Pro== ==Preparing assets for use with Second Life== ==User contributed assets. Sharing your creations with the community== You finally managed to model a cool piece of clothing or something else? You would like to share it with others? Great! A few words before you start loading up: MakeHuman is available for more than one OS. Users live in different countries using different language settings. This has some consequences to think about before you upload your asset. *Avoid non-ascii characters in your filenames. Depending on language settings some characters might lead to trouble. Stick to English in your file names and you're safe. *Don't use spaces in file names. Today, on most platforms you can use file names like "My Asset.mhclo", but a lot of scripts won't be able to handle it. They consider the space after "My" as a delimiter and fail. Instead of "My Asset.mhclo" "My_Asset.mhclo" would be better. *"My_Asset.mhclo" is still a bad filename. On Windows file names aren't case sensitive. On Linux they are. On Windows "My_Asset.mhclo", "my_asset.mhclo" and "My_Asset.MHCLO " all refer to the same file. On Linux they are three completely different files. You want your stuff to work on all platforms. Avoid uppercase letters. "my_asset.mhclo" is a good filename. *These rules are true for all files that belong to your asset. *Consider using the same base name for files belonging to your asset. For example, if you have a "my_asset.mhclo", it'd make sense to give a material belonging to it the name "my_asset.mhmat" rather than "some_other_random_name.mhmat". *Use self-explanatory file names for your graphic files. For this example "my_asset_diffuse.png" would be a good idea for the diffuse texture. Don't use just "diffuse.png". If there's more than one asset using this lazy naming convention files will be overwritten on export. *This one's obvious, but often forgotten: After renaming your files, open the .mhclo and .mhmat files and change the referenced file names to your new file names. fad241d807667dda51075889f15d3bc927660c9c 1490 1258 2018-11-13T03:48:26Z Lordnicodemus56 69 /* Moving Assets into Google Sketchup */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] This subsection will provide some general information on "trouble spots" when trying to take your MakeHuman work and use it in a downstream application. Many of the problems discussed are topics that always arise when moving assets between 3D programs. *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into specific downstream programs. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== [[Moving Assets into Autodesk 3DSMax]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== [[Moving Assets into Blender]] This subsection describes the import of transparent assets after importing in Blender. The initial focus will be on using the Blender Internal Render engine. The use of Cycles render engine will be handled separately. The Blender tools (MakeClothes, MakeWalk, MakeTarget) for designing and working with MakeHuman internal assets are described elsewhere. ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== The documentation for how to work with unity is available in [[Documentation:Saving_models_for_Unity_and_how_to_import_them_there|"Saving models for Unity and how to import them there"]]. ==Moving Assets into Sketchup Pro== ==Preparing assets for use with Second Life== ==User contributed assets. Sharing your creations with the community== You finally managed to model a cool piece of clothing or something else? You would like to share it with others? Great! A few words before you start loading up: MakeHuman is available for more than one OS. Users live in different countries using different language settings. This has some consequences to think about before you upload your asset. *Avoid non-ascii characters in your filenames. Depending on language settings some characters might lead to trouble. Stick to English in your file names and you're safe. *Don't use spaces in file names. Today, on most platforms you can use file names like "My Asset.mhclo", but a lot of scripts won't be able to handle it. They consider the space after "My" as a delimiter and fail. Instead of "My Asset.mhclo" "My_Asset.mhclo" would be better. *"My_Asset.mhclo" is still a bad filename. On Windows file names aren't case sensitive. On Linux they are. On Windows "My_Asset.mhclo", "my_asset.mhclo" and "My_Asset.MHCLO " all refer to the same file. On Linux they are three completely different files. You want your stuff to work on all platforms. Avoid uppercase letters. "my_asset.mhclo" is a good filename. *These rules are true for all files that belong to your asset. *Consider using the same base name for files belonging to your asset. For example, if you have a "my_asset.mhclo", it'd make sense to give a material belonging to it the name "my_asset.mhmat" rather than "some_other_random_name.mhmat". *Use self-explanatory file names for your graphic files. For this example "my_asset_diffuse.png" would be a good idea for the diffuse texture. Don't use just "diffuse.png". If there's more than one asset using this lazy naming convention files will be overwritten on export. *This one's obvious, but often forgotten: After renaming your files, open the .mhclo and .mhmat files and change the referenced file names to your new file names. 8fd545cdbc3b443af8ad10e7c852ea4cb1a416eb 1258 1257 2016-11-25T10:11:20Z Joepal 14 /* Moving Assets into Unity Game Engine */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] This subsection will provide some general information on "trouble spots" when trying to take your MakeHuman work and use it in a downstream application. Many of the problems discussed are topics that always arise when moving assets between 3D programs. *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into specific downstream programs. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== [[Moving Assets into Autodesk 3DSMax]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== [[Moving Assets into Blender]] This subsection describes the import of transparent assets after importing in Blender. The initial focus will be on using the Blender Internal Render engine. The use of Cycles render engine will be handled separately. The Blender tools (MakeClothes, MakeWalk, MakeTarget) for designing and working with MakeHuman internal assets are described elsewhere. ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== The documentation for how to work with unity is available in [[Documentation:Saving_models_for_Unity_and_how_to_import_them_there|"Saving models for Unity and how to import them there"]]. ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== ==User contributed assets. Sharing your creations with the community== You finally managed to model a cool piece of clothing or something else? You would like to share it with others? Great! A few words before you start loading up: MakeHuman is available for more than one OS. Users live in different countries using different language settings. This has some consequences to think about before you upload your asset. *Avoid non-ascii characters in your filenames. Depending on language settings some characters might lead to trouble. Stick to English in your file names and you're safe. *Don't use spaces in file names. Today, on most platforms you can use file names like "My Asset.mhclo", but a lot of scripts won't be able to handle it. They consider the space after "My" as a delimiter and fail. Instead of "My Asset.mhclo" "My_Asset.mhclo" would be better. *"My_Asset.mhclo" is still a bad filename. On Windows file names aren't case sensitive. On Linux they are. On Windows "My_Asset.mhclo", "my_asset.mhclo" and "My_Asset.MHCLO " all refer to the same file. On Linux they are three completely different files. You want your stuff to work on all platforms. Avoid uppercase letters. "my_asset.mhclo" is a good filename. *These rules are true for all files that belong to your asset. *Consider using the same base name for files belonging to your asset. For example, if you have a "my_asset.mhclo", it'd make sense to give a material belonging to it the name "my_asset.mhmat" rather than "some_other_random_name.mhmat". *Use self-explanatory file names for your graphic files. For this example "my_asset_diffuse.png" would be a good idea for the diffuse texture. Don't use just "diffuse.png". If there's more than one asset using this lazy naming convention files will be overwritten on export. *This one's obvious, but often forgotten: After renaming your files, open the .mhclo and .mhmat files and change the referenced file names to your new file names. 984a805aa3c93aaccec43a27f0014a26287c7130 1257 1129 2016-11-25T10:11:03Z Joepal 14 /* Moving Assets into Unity Game Engine */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] This subsection will provide some general information on "trouble spots" when trying to take your MakeHuman work and use it in a downstream application. Many of the problems discussed are topics that always arise when moving assets between 3D programs. *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into specific downstream programs. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== [[Moving Assets into Autodesk 3DSMax]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== [[Moving Assets into Blender]] This subsection describes the import of transparent assets after importing in Blender. The initial focus will be on using the Blender Internal Render engine. The use of Cycles render engine will be handled separately. The Blender tools (MakeClothes, MakeWalk, MakeTarget) for designing and working with MakeHuman internal assets are described elsewhere. ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== The documentation for how to work with unity is available in [[Documentation:Saving_models_for_Unity_and_how_to_import_them_there|"Saving_models for Unity and how to import them there"]]. ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== ==User contributed assets. Sharing your creations with the community== You finally managed to model a cool piece of clothing or something else? You would like to share it with others? Great! A few words before you start loading up: MakeHuman is available for more than one OS. Users live in different countries using different language settings. This has some consequences to think about before you upload your asset. *Avoid non-ascii characters in your filenames. Depending on language settings some characters might lead to trouble. Stick to English in your file names and you're safe. *Don't use spaces in file names. Today, on most platforms you can use file names like "My Asset.mhclo", but a lot of scripts won't be able to handle it. They consider the space after "My" as a delimiter and fail. Instead of "My Asset.mhclo" "My_Asset.mhclo" would be better. *"My_Asset.mhclo" is still a bad filename. On Windows file names aren't case sensitive. On Linux they are. On Windows "My_Asset.mhclo", "my_asset.mhclo" and "My_Asset.MHCLO " all refer to the same file. On Linux they are three completely different files. You want your stuff to work on all platforms. Avoid uppercase letters. "my_asset.mhclo" is a good filename. *These rules are true for all files that belong to your asset. *Consider using the same base name for files belonging to your asset. For example, if you have a "my_asset.mhclo", it'd make sense to give a material belonging to it the name "my_asset.mhmat" rather than "some_other_random_name.mhmat". *Use self-explanatory file names for your graphic files. For this example "my_asset_diffuse.png" would be a good idea for the diffuse texture. Don't use just "diffuse.png". If there's more than one asset using this lazy naming convention files will be overwritten on export. *This one's obvious, but often forgotten: After renaming your files, open the .mhclo and .mhmat files and change the referenced file names to your new file names. bb83b0e2c6fa62689528c74bfc35311c10d97d4d 1129 1128 2016-07-20T18:40:09Z Joepal 14 /* User contributed assets. Sharing your creations with the community */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] This subsection will provide some general information on "trouble spots" when trying to take your MakeHuman work and use it in a downstream application. Many of the problems discussed are topics that always arise when moving assets between 3D programs. *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into specific downstream programs. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== [[Moving Assets into Autodesk 3DSMax]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== [[Moving Assets into Blender]] This subsection describes the import of transparent assets after importing in Blender. The initial focus will be on using the Blender Internal Render engine. The use of Cycles render engine will be handled separately. The Blender tools (MakeClothes, MakeWalk, MakeTarget) for designing and working with MakeHuman internal assets are described elsewhere. ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== ==User contributed assets. Sharing your creations with the community== You finally managed to model a cool piece of clothing or something else? You would like to share it with others? Great! A few words before you start loading up: MakeHuman is available for more than one OS. Users live in different countries using different language settings. This has some consequences to think about before you upload your asset. *Avoid non-ascii characters in your filenames. Depending on language settings some characters might lead to trouble. Stick to English in your file names and you're safe. *Don't use spaces in file names. Today, on most platforms you can use file names like "My Asset.mhclo", but a lot of scripts won't be able to handle it. They consider the space after "My" as a delimiter and fail. Instead of "My Asset.mhclo" "My_Asset.mhclo" would be better. *"My_Asset.mhclo" is still a bad filename. On Windows file names aren't case sensitive. On Linux they are. On Windows "My_Asset.mhclo", "my_asset.mhclo" and "My_Asset.MHCLO " all refer to the same file. On Linux they are three completely different files. You want your stuff to work on all platforms. Avoid uppercase letters. "my_asset.mhclo" is a good filename. *These rules are true for all files that belong to your asset. *Consider using the same base name for files belonging to your asset. For example, if you have a "my_asset.mhclo", it'd make sense to give a material belonging to it the name "my_asset.mhmat" rather than "some_other_random_name.mhmat". *Use self-explanatory file names for your graphic files. For this example "my_asset_diffuse.png" would be a good idea for the diffuse texture. Don't use just "diffuse.png". If there's more than one asset using this lazy naming convention files will be overwritten on export. *This one's obvious, but often forgotten: After renaming your files, open the .mhclo and .mhmat files and change the referenced file names to your new file names. 01906dc89c1fc79829fa0a891eeb7d530a9ca66c 1128 350 2016-07-20T16:25:42Z Wolgade 26 wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] This subsection will provide some general information on "trouble spots" when trying to take your MakeHuman work and use it in a downstream application. Many of the problems discussed are topics that always arise when moving assets between 3D programs. *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into specific downstream programs. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== [[Moving Assets into Autodesk 3DSMax]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== [[Moving Assets into Blender]] This subsection describes the import of transparent assets after importing in Blender. The initial focus will be on using the Blender Internal Render engine. The use of Cycles render engine will be handled separately. The Blender tools (MakeClothes, MakeWalk, MakeTarget) for designing and working with MakeHuman internal assets are described elsewhere. ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== ==User contributed assets. Sharing your creations with the community== You finally managed to model a cool piece of clothing or something else? You would like to share it with others? Great! A few words before you start loading up: MakeHuman is available for more than one OS. Users live in different countries using different language settings. This has some consequences to think about before you upload your asset. *Avoid non-ascii characters in your filenames. Depending on language settings some characters might lead to trouble. Stick to English in your file names and you're safe. *Don't use spaces in file names. Today, on most platforms you can use file names like "My Asset.mhclo", but a lot of scripts won't be able to handle it. They consider the space after "My" as a delimiter and fail. Instead of "My Asset.mhclo" "My_Asset.mhclo" would be better. *"My_Asset.mhclo" is still a bad filename. On Windows file names aren't case sensitive. On Linux they are. On Windows "My_Asset.mhclo", "my_asset.mhclo" and "My_Asset.MHCLO " all refer to the same file. On Linux they are three completely different files. You want your stuff to work on all platforms. Avoid uppercase letters. "my_asset.mhclo" is a good filename. *These rules are true for all files that belong to your asset. *Use self-explanatory file names for your graphic files. For this example "my_asset_diffuse.png" would be a good idea for the diffuse texture. Don't use just "diffuse.png". If there's more than one asset using this lazy naming convention files will be overwritten on export. *This one's obvious, but often forgotten: After renaming your files, open the .mhclo and .mhmat files and change the referenced file names to your new file names. d627e6969bc8f7b61b6264324bdba9d41e8b0882 350 349 2015-08-02T21:21:24Z Robbaer 12 /* Moving Assets into Blender */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] This subsection will provide some general information on "trouble spots" when trying to take your MakeHuman work and use it in a downstream application. Many of the problems discussed are topics that always arise when moving assets between 3D programs. *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into specific downstream programs. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== [[Moving Assets into Autodesk 3DSMax]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== [[Moving Assets into Blender]] This subsection describes the import of transparent assets after importing in Blender. The initial focus will be on using the Blender Internal Render engine. The use of Cycles render engine will be handled separately. The Blender tools (MakeClothes, MakeWalk, MakeTarget) for designing and working with MakeHuman internal assets are described elsewhere. ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== bd5d5cbc9f79d62ade9fd2a7524bb16ec5e8e666 349 348 2015-08-02T21:17:16Z Robbaer 12 /* Moving Assets into Blender */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] This subsection will provide some general information on "trouble spots" when trying to take your MakeHuman work and use it in a downstream application. Many of the problems discussed are topics that always arise when moving assets between 3D programs. *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into specific downstream programs. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== [[Moving Assets into Autodesk 3DSMax]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== [[Moving Assets into Blender]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Blender. The initial focus will be on using the Blender Internal Render engine. The use of Cycles render engine will be handled separately. ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== c2210e784134cd7012084b695465bc9dac336856 348 347 2015-08-02T21:13:17Z Robbaer 12 /* Moving Assets into Blender */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] This subsection will provide some general information on "trouble spots" when trying to take your MakeHuman work and use it in a downstream application. Many of the problems discussed are topics that always arise when moving assets between 3D programs. *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into specific downstream programs. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== [[Moving Assets into Autodesk 3DSMax]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== [[Moving Assets into Blender]] This subsection will describe the ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 23361173e50ba3d437ca6c2e1209ddd960082fa4 347 346 2015-08-02T21:12:10Z Robbaer 12 /* Background and Technical Considerations */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] This subsection will provide some general information on "trouble spots" when trying to take your MakeHuman work and use it in a downstream application. Many of the problems discussed are topics that always arise when moving assets between 3D programs. *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into specific downstream programs. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== [[Moving Assets into Autodesk 3DSMax]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 5a83f909bd7ed589bd6dc577fa230a61a8ebad4a 346 345 2015-08-02T21:11:19Z Robbaer 12 /* Background and Technical Considerations */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] This subsection will provide some general information on "trouble spots" when trying to take your MakeHuman work and use it in a downstream application. Many of the problems discussed are topics that always arise when moving assets between any 3D programs. *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into specific downstream programs. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== [[Moving Assets into Autodesk 3DSMax]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== fd7c7b01a418fe45d0e7b19fcbe8f2364d78b2c0 345 344 2015-08-02T21:10:19Z Robbaer 12 /* Moving Assets into Autodesk 3DSMax */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] This section will provide some general information on "trouble spots" when trying to take your MakeHuman work and use it in a downstream application. Many of the problems discussed are topics that always arise when moving assets between any 3D programs. *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into specific downstream programs. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== [[Moving Assets into Autodesk 3DSMax]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== d103a5e4a42cb0bd35452fe3fa6c7aab5c47335b 344 343 2015-08-02T21:09:43Z Robbaer 12 /* Background and Technical Considerations */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] This section will provide some general information on "trouble spots" when trying to take your MakeHuman work and use it in a downstream application. Many of the problems discussed are topics that always arise when moving assets between any 3D programs. *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into specific downstream programs. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 81c446f533e4b0987e9dc43523098b80f5c8cd69 343 342 2015-08-02T20:56:55Z Robbaer 12 /* Moving Assets into Autodesk 3DSMax */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into specific downstream programs. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 1e0e08a0252215c84368c373e7d7cac43e715a1e 342 341 2015-08-02T20:55:47Z Robbaer 12 /* Illustrating the Export Process for Subsequent Import */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into specific downstream programs. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== d98c227dac3405ce644f7e60902bcd98b20d5824 341 340 2015-08-02T20:53:08Z Robbaer 12 /* Background and Technical Considerations */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==[[Background and Technical Considerations]]== [[Background and Technical Considerations]] *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 82aa8c03d3622be2824971a66a7ca4174c8a967b 340 339 2015-08-02T20:52:10Z Robbaer 12 /* Background and Technical Considerations */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== [[Background and Technical Considerations]] *Introduction [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Introduction] *Format Considerations [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Format_Considerations] *MakeHuman Shader and Asset Rendering [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Shader_and_Asset_Rendering] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Spatial_transformation:_MakeHuman_Coordinate_System.2C_MakeHuman_Skeletons.2C_and_MakeHuman_Scales] *Working with Rigs and Skeletons [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#Working_with_Rigs_and_Skeletons] *MakeHuman Assets with transparency [http://www.makehumancommunity.org/wiki/Background_and_Technical_Considerations#MakeHuman_Assets_with_transparency] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 6d62691b1c1d8ad53b33498aad290265ad5e191e 339 338 2015-08-02T20:50:12Z Robbaer 12 /* Background and Technical Considerations */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== [[Background and Technical Considerations]] *Introduction [] *Format Considerations [] *MakeHuman Shader and Asset Rendering [] *Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [] *Working with Rigs and Skeletons [] *MakeHuman Assets with transparency [] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 29e8471bf5d667c23b55f6deecd5d471ee1d43f1 338 337 2015-08-02T20:49:26Z Robbaer 12 /* Background and Technical Considerations */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== [[Background and Technical Considerations]] Introduction Format Considerations [] MakeHuman Shader and Asset Rendering [] Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [] Working with Rigs and Skeletons[] MakeHuman Assets with transparency[] ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== aa96a3e09af94ca7daf92b03c5c957bb58c37a9a 337 334 2015-08-02T20:44:27Z Robbaer 12 /* Background and Technical Considerations */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== [[Background and Technical Considerations]] Introduction Format Considerations [] MakeHuman Shader and Asset Rendering [] Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales [] Working with Rigs and Skeletons[] MakeHuman Assets with transparency[] '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 624e0ab7e3094e1a680fa394fa5eba1b7d01c557 334 333 2015-08-02T20:38:32Z Robbaer 12 /* Background and Technical Considerations */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== [[Background and Technical Considerations]] '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 7b1a21889eaa732f2bc0c6292f3bdedd4b16d49e 333 332 2015-08-02T20:37:26Z Robbaer 12 /* Moving Assets into Autodesk 3DSMax */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *Units Considerations[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 64c5bcd3779ad0fa2df966fda9d569647b7ba09a 332 331 2015-08-02T20:36:29Z Robbaer 12 /* Moving Assets into Autodesk 3DSMax */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Units Considerations[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Units_Considerations] *Importing FBX into 3DSMax[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_FBX_into_3DSMax] *Restoring Transparency for the Eyes[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Restoring_Transparency_for_the_Eyes] *Fixing Transparency on the Other Assets[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Fixing_Transparency_on_the_Other_Assets] *Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Repairing_an_Imported_MakeHuman_FBX_file_that_was_previously_Exported_after_Fixing] *Importing MakeHuman Skeletons into 3DSMAX[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax#Importing_MakeHuman_Skeletons_into_3DSMAX] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 3817f94f438a73a498250f6a5591f384a078b131 331 330 2015-08-02T20:33:05Z Robbaer 12 /* Moving Assets into Autodesk 3DSMax */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *[Units Considerations] *[[Importing FBX into 3DSMax]] *[[Restoring Transparency for the Eyes]] *[[Fixing Transparency on the Other Assets]] *[[Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing]] *[[Importing MakeHuman Skeletons into 3DSMAX]] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 154a18fe4eabffcefb8dd2e56cbd9fe942fb5a56 330 329 2015-08-02T20:31:35Z Robbaer 12 /* Moving Assets into Autodesk 3DSMax Moving Assets into Autodesk 3DSMax */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *[[Moving Assets into Autodesk 3DSMax Units Considerations]] *[[Importing FBX into 3DSMax]] *[[Restoring Transparency for the Eyes]] *[[Fixing Transparency on the Other Assets]] *[[Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing]] *[[Importing MakeHuman Skeletons into 3DSMAX]] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 4e02da0999023436459396c5c0aa12ecd42c459c 329 328 2015-08-02T20:24:26Z Robbaer 12 /* Moving Assets into Autodesk 3DSMax Moving Assets into Autodesk 3DSMax */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. *[[Units Considerations]] *[[Importing FBX into 3DSMax]] *[[Restoring Transparency for the Eyes]] *[[Fixing Transparency on the Other Assets]] *[[Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing]] *[[Importing MakeHuman Skeletons into 3DSMAX]] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 9155f2ea7d751103ad54a286a0ed58334900b20c 328 327 2015-08-02T20:22:31Z Robbaer 12 /* Moving Assets into Autodesk 3DSMax */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. [[Units Considerations]] [[Importing FBX into 3DSMax]] [[Restoring Transparency for the Eyes]] [[Fixing Transparency on the Other Assets]] [[Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing]] [[Importing MakeHuman Skeletons into 3DSMAX]] ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 6c480c12ab164c1df8fc0436de1759840a055c49 327 326 2015-08-02T20:18:14Z Robbaer 12 /* Moving Assets into Autodesk 3DSMax */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk 3DSMax. <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 3c4898b3e42b58ad35c3fd1c982ed45131237baf 326 325 2015-08-02T20:17:54Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 33b132706d6bec3e23f0d0ba2dabf97d68c2c5d3 325 324 2015-08-02T20:16:39Z Robbaer 12 wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==[[Moving Assets into Blender]]== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 98f0d7e691ac27e5529d856353995631e1078bdf 324 259 2015-08-02T20:15:47Z Robbaer 12 /* Moving Assets into Blender */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> [[==Moving Assets into Blender==]] ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== ee31653b6fe74e5a18b5c4779d75c5242909a4c4 259 258 2015-07-25T20:30:21Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk Maya. *Introduction [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction] *Importing and Initial Setup [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup] *Basic Repair of Eye Transparency [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency] *Repeat for other Transparent Assets [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets] *Raytrace Shadows [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya] *Adopting MakeHuman Skeletons to Maya [http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Adopting_MakeHuman_Skeletons_to_Maya] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 1869b7f03e62a715ae4348bba0fea4f6f4bca11c 258 257 2015-07-25T20:22:19Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk Maya. *Introduction [[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Introduction]] *Importing and Initial Setup [[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Importing_and_Initial_Setup]] *Basic Repair of Eye Transparency [[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Basic_Repair_of_Eye_Transparency]] *Repeat for other Transparent Assets [[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Repeat_for_other_Transparent_Assets]] *Raytrace Shadows [[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Raytrace_Shadows]] *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format [[http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_Maya#Re-importing_Intermediate_FBX_files_from_Maya]] *Adopting MakeHuman Skeletons to Maya [[]] <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== c6793204448e43e010c0f92fcfd5fed528239f46 257 255 2015-07-25T20:12:06Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk Maya. *Importing and Initial Setup *Basic Repair of Eye Transparency *Repeat for other Transparent Assets *Raytrace Shadows *Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format *Adopting MakeHuman Skeletons to Maya <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 8c4ed07121477025bbac6606209ad4468e385633 255 254 2015-07-25T19:34:29Z Robbaer 12 /* Illustrating the Export Process for Subsequent Import */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk Maya. <LI>Importing and Initial Setup</LI> <LI>Basic Repair of Eye Transparency</Li> <LI>Repeat for other Transparent Assets</LI> <LI>Raytrace Shadows</LI> <LI>Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format</LI> <LI>Adopting MakeHuman Skeletons to Maya</LI> <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 0ac254e9a5d9cf9cdb9409e007b1d9030977cbf3 254 253 2015-07-25T19:33:21Z Robbaer 12 /* Moving Assets into Autodesk 3DSMax */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk Maya. <LI>Importing and Initial Setup</LI> <LI>Basic Repair of Eye Transparency</Li> <LI>Repeat for other Transparent Assets</LI> <LI>Raytrace Shadows</LI> <LI>Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format</LI> <LI>Adopting MakeHuman Skeletons to Maya</LI> <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== c6c909843c18c901a7ec084c5b38a83255135811 253 252 2015-07-25T19:32:04Z Robbaer 12 /* Background and Technical Considerations */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are independently developed and maintained by Thomas Larson. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHuman assets. It is also true for Blender with both FBX and collada format for MakeHuman assets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk Maya. <LI>Importing and Initial Setup</LI> <LI>Basic Repair of Eye Transparency</Li> <LI>Repeat for other Transparent Assets</LI> <LI>Raytrace Shadows</LI> <LI>Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format</LI> <LI>Adopting MakeHuman Skeletons to Maya</LI> <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== fdf07373ac1c01f560e4778dacc0c7e530427426 252 251 2015-07-25T19:27:37Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==[[Moving Assets into Autodesk Maya]]== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk Maya. <LI>Importing and Initial Setup</LI> <LI>Basic Repair of Eye Transparency</Li> <LI>Repeat for other Transparent Assets</LI> <LI>Raytrace Shadows</LI> <LI>Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format</LI> <LI>Adopting MakeHuman Skeletons to Maya</LI> <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 62027b46f755efac9593eb59372ee0fbc4521a11 251 250 2015-07-25T19:26:37Z Robbaer 12 /* Moving Assets into Autodesk 3DSMax */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk Maya. <LI>Importing and Initial Setup</LI> <LI>Basic Repair of Eye Transparency</Li> <LI>Repeat for other Transparent Assets</LI> <LI>Raytrace Shadows</LI> <LI>Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format</LI> <LI>Adopting MakeHuman Skeletons to Maya</LI> <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==[[Moving Assets into Autodesk 3DSMax]]== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 107e1e5ca5a53f42623b0d3013969a2f2caa69ea 250 249 2015-07-25T19:21:09Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk Maya. <LI>Importing and Initial Setup</LI> <LI>Basic Repair of Eye Transparency</Li> <LI>Repeat for other Transparent Assets</LI> <LI>Raytrace Shadows</LI> <LI>Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format</LI> <LI>Adopting MakeHuman Skeletons to Maya</LI> <font color = 'red'>--------Skeleton subsection still to be written--------</font> ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 812aa2a8ab9f680afe24e1d932da3287770a521d 249 248 2015-07-25T19:20:25Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== [[Moving Assets into Autodesk Maya]] This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk Maya. <LI>Importing and Initial Setup</LI> <LI>Basic Repair of Eye Transparency</Li> <LI>Repeat for other Transparent Assets</LI> <LI>Raytrace Shadows</LI> <LI>Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format</LI> <LI>Adopting MakeHuman Skeletons to Maya</LI> <font color = 'red'>--------Section still to be written--------</font> ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== b4b572eb6af8964bb3f3de4c15a0e861b3356991 248 247 2015-07-25T19:17:53Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== [[Moving Assets into Autodesk Maya]] <LI>Importing and Initial Setup</LI> <LI>Basic Repair of Eye Transparency</Li> <LI>Repeat for other Transparent Assets</LI> <LI>Raytrace Shadows</LI> <LI>Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format</LI> <LI>Adopting MakeHuman Skeletons to Maya</LI> <font color = 'red'>--------Section still to be written--------</font> ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 315dcf909465829e1e495d95a3cd7c72dcc46795 247 246 2015-07-25T19:14:10Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== [[Moving Assets into Autodesk Maya]] <LI>Importing and Initial Setup</LI> <LI>Basic Repair of Eye Transparency</Li> <LI>Repeat for other Transparent Assets</LI> <LI>Raytrace Shadows</LI> <LI>Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format</LI> <LI>Adopting MakeHuman Skeletons to Maya</LI> <font color = 'red'>\b\b\b\b\b\bTO BE WRITTEN</font> ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 6885a017e3e939d084503421ed55901793c2afbd 246 245 2015-07-25T19:12:08Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== [[Moving Assets into Autodesk Maya]] <LI>Importing and Initial Setup</LI> <LI>Basic Repair of Eye Transparency</Li> <LI>Repeat for other Transparent Assets</LI> <LI>Raytrace Shadows</LI> <LI>Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format</LI> <LI>Adopting MakeHuman Skeletons to Maya</LI> <tab>TO BE WRITTEN</tab> ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== f826a4b2c15c9876a7cf95bd7b6f29d1b7997e25 245 244 2015-07-25T19:06:38Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== [[Moving Assets into Autodesk Maya]] We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). <LI>Importing and Initial Setup</LI> <LI>Basic Repair of Eye Transparency</Li> <LI>Repeat for other Transparent Assets</LI> You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. <LI>Raytrace Shadows</LI> <LI>Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format</LI> If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: <LI>Adopting MakeHuman Skeletons to Maya</LI> TO BE WRITTEN ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== a4052eae823319eb17fae3b23467e65f888dfc8b 244 243 2015-07-25T19:02:34Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== [[Moving Assets into Autodesk Maya]] We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). [[Moving Assets into Autodesk Maya]Importing and Initial Setup] '''Basic Repair of Eye Transparency''' '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. '''Raytrace Shadows''' '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: '''Adopting MakeHuman Skeletons to Maya''' TO BE WRITTEN ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== e275c063e3895c66ebea6ed3786d6d11a342e479 243 239 2015-07-25T18:58:38Z Robbaer 12 wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== [[Moving Assets into Autodesk Maya]] We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). [[Moving Assets into Autodesk Maya]Importing and Initial Setup] When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] <CENTER>'''Figure 1'''</CENTER> The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] <CENTER>'''Figure 2'''</CENTER> Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] <CENTER>'''Figure 3'''</CENTER> The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the '''eyes, eyelashes, eyebrows, and hair''' is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] <CENTER>'''Figure 4'''</CENTER> '''Basic Repair of Eye Transparency''' Once in front view, left click to select the eye meshes, and perform the following steps: [[File:ImpExp08.png]] <CENTER>'''Figure 5'''</CENTER> 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] <CENTER>'''Figure 6'''</CENTER> 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] <CENTER>'''Figure 7'''</CENTER> 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] <CENTER>'''Figure 8'''</CENTER> 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] <CENTER>'''Figure 9'''</CENTER> 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 10 below). Uncheck it if it is checked. [[File:ImpExp14.png]] <CENTER>'''Figure 10'''</CENTER> The eyes in our image now look like this: [[File:ImpExp15.png]] <CENTER>'''Figure 11'''</CENTER> ---- '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] <CENTER>'''Figure 12'''</CENTER> ---- '''Raytrace Shadows''' Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] <CENTER>'''Figure 13'''</CENTER> At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] <CENTER>'''Figure 14'''</CENTER> You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero (refer to figure 13). [[File:ImpExp22.png]] <CENTER>'''Figure 15'''</CENTER> When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. '''Adopting MakeHuman Skeletons to Maya''' TO BE WRITTEN ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 0df1435bf8a1f0b180169daff4e510fa8c34c869 239 236 2015-07-25T18:35:05Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. [[Moving Assets into Autodesk Maya]] ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). '''Importing and Initial Setup''' When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] <CENTER>'''Figure 1'''</CENTER> The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] <CENTER>'''Figure 2'''</CENTER> Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] <CENTER>'''Figure 3'''</CENTER> The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the '''eyes, eyelashes, eyebrows, and hair''' is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] <CENTER>'''Figure 4'''</CENTER> '''Basic Repair of Eye Transparency''' Once in front view, left click to select the eye meshes, and perform the following steps: [[File:ImpExp08.png]] <CENTER>'''Figure 5'''</CENTER> 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] <CENTER>'''Figure 6'''</CENTER> 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] <CENTER>'''Figure 7'''</CENTER> 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] <CENTER>'''Figure 8'''</CENTER> 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] <CENTER>'''Figure 9'''</CENTER> 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 10 below). Uncheck it if it is checked. [[File:ImpExp14.png]] <CENTER>'''Figure 10'''</CENTER> The eyes in our image now look like this: [[File:ImpExp15.png]] <CENTER>'''Figure 11'''</CENTER> ---- '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] <CENTER>'''Figure 12'''</CENTER> ---- '''Raytrace Shadows''' Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] <CENTER>'''Figure 13'''</CENTER> At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] <CENTER>'''Figure 14'''</CENTER> You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero (refer to figure 13). [[File:ImpExp22.png]] <CENTER>'''Figure 15'''</CENTER> When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. '''Adopting MakeHuman Skeletons to Maya''' TO BE WRITTEN ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== e4c4100e41bc16d5590638b135c66ec6c8e19e14 236 235 2015-07-25T17:33:49Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). '''Importing and Initial Setup''' When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] <CENTER>'''Figure 1'''</CENTER> The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] <CENTER>'''Figure 2'''</CENTER> Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] <CENTER>'''Figure 3'''</CENTER> The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the '''eyes, eyelashes, eyebrows, and hair''' is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] <CENTER>'''Figure 4'''</CENTER> '''Basic Repair of Eye Transparency''' Once in front view, left click to select the eye meshes, and perform the following steps: [[File:ImpExp08.png]] <CENTER>'''Figure 5'''</CENTER> 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] <CENTER>'''Figure 6'''</CENTER> 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] <CENTER>'''Figure 7'''</CENTER> 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] <CENTER>'''Figure 8'''</CENTER> 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] <CENTER>'''Figure 9'''</CENTER> 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 10 below). Uncheck it if it is checked. [[File:ImpExp14.png]] <CENTER>'''Figure 10'''</CENTER> The eyes in our image now look like this: [[File:ImpExp15.png]] <CENTER>'''Figure 11'''</CENTER> ---- '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] <CENTER>'''Figure 12'''</CENTER> ---- '''Raytrace Shadows''' Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] <CENTER>'''Figure 13'''</CENTER> At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] <CENTER>'''Figure 14'''</CENTER> You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero (refer to figure 13). [[File:ImpExp22.png]] <CENTER>'''Figure 15'''</CENTER> When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. '''Adopting MakeHuman Skeletons to Maya''' TO BE WRITTEN ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 406d8ba652ba2855d6452e85e008c89bb0b59a9b 235 234 2015-07-25T17:31:27Z Robbaer 12 /* Summary */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The ''Background and Technical Consideratins'' section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). '''Importing and Initial Setup''' When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] <CENTER>'''Figure 1'''</CENTER> The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] <CENTER>'''Figure 2'''</CENTER> Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] <CENTER>'''Figure 3'''</CENTER> The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the '''eyes, eyelashes, eyebrows, and hair''' is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] <CENTER>'''Figure 4'''</CENTER> '''Basic Repair of Eye Transparency''' Once in front view, left click to select the eye meshes, and perform the following steps: [[File:ImpExp08.png]] <CENTER>'''Figure 5'''</CENTER> 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] <CENTER>'''Figure 6'''</CENTER> 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] <CENTER>'''Figure 7'''</CENTER> 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] <CENTER>'''Figure 8'''</CENTER> 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] <CENTER>'''Figure 9'''</CENTER> 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 10 below). Uncheck it if it is checked. [[File:ImpExp14.png]] <CENTER>'''Figure 10'''</CENTER> The eyes in our image now look like this: [[File:ImpExp15.png]] <CENTER>'''Figure 11'''</CENTER> ---- '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] <CENTER>'''Figure 12'''</CENTER> ---- '''Raytrace Shadows''' Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] <CENTER>'''Figure 13'''</CENTER> At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] <CENTER>'''Figure 14'''</CENTER> You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero (refer to figure 13). [[File:ImpExp22.png]] <CENTER>'''Figure 15'''</CENTER> When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. '''Adopting MakeHuman Skeletons to Maya''' TO BE WRITTEN ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== b2ac463d1d90abaf63d7bb54ea4fcc4c123c7f4c 234 233 2015-07-25T17:12:24Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). '''Importing and Initial Setup''' When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] <CENTER>'''Figure 1'''</CENTER> The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] <CENTER>'''Figure 2'''</CENTER> Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] <CENTER>'''Figure 3'''</CENTER> The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the '''eyes, eyelashes, eyebrows, and hair''' is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] <CENTER>'''Figure 4'''</CENTER> '''Basic Repair of Eye Transparency''' Once in front view, left click to select the eye meshes, and perform the following steps: [[File:ImpExp08.png]] <CENTER>'''Figure 5'''</CENTER> 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] <CENTER>'''Figure 6'''</CENTER> 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] <CENTER>'''Figure 7'''</CENTER> 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] <CENTER>'''Figure 8'''</CENTER> 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] <CENTER>'''Figure 9'''</CENTER> 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 10 below). Uncheck it if it is checked. [[File:ImpExp14.png]] <CENTER>'''Figure 10'''</CENTER> The eyes in our image now look like this: [[File:ImpExp15.png]] <CENTER>'''Figure 11'''</CENTER> ---- '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] <CENTER>'''Figure 12'''</CENTER> ---- '''Raytrace Shadows''' Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] <CENTER>'''Figure 13'''</CENTER> At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] <CENTER>'''Figure 14'''</CENTER> You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero (refer to figure 13). [[File:ImpExp22.png]] <CENTER>'''Figure 15'''</CENTER> When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. '''Adopting MakeHuman Skeletons to Maya''' TO BE WRITTEN ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== f85badc8608c30d4a0a7dbd4f5ecf03e518d6ba0 233 232 2015-07-25T17:10:28Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). '''Importing and Initial Setup''' When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] <CENTER>'''Figure 1'''</CENTER> The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] <CENTER>'''Figure 2'''</CENTER> Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] <CENTER>'''Figure 3'''</CENTER> The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the '''eyes, eyelashes, eyebrows, and hair''' is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] <CENTER>'''Figure 4'''</CENTER> '''Basic Repair of Eye Transparency''' Once in front view, left click to select the eye meshes, and perform the following steps: [[File:ImpExp08.png]] <CENTER>'''Figure 5'''</CENTER> 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] <CENTER>'''Figure 6'''</CENTER> 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] <CENTER>'''Figure 7'''</CENTER> 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] <CENTER>'''Figure 8'''</CENTER> 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] <CENTER>'''Figure 9'''</CENTER> 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 10 below). Uncheck it if it is checked. [[File:ImpExp14.png]] <CENTER>'''Figure 10'''</CENTER> The eyes in our image now look like this: [[File:ImpExp15.png]] <CENTER>'''Figure 11'''</CENTER> ---- '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] <CENTER>'''Figure 12'''</CENTER> ---- '''Raytrace Shadows''' Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] <CENTER>'''Figure 13'''</CENTER> At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] <CENTER>'''Figure 14'''</CENTER> You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero (refer to figure 13). [[File:ImpExp22.png]] <CENTER>'''Figure 15'''<CENTER> When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. '''Adopting MakeHuman Skeletons to Maya''' TO BE WRITTEN ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== f3286c035523e69caae5443fe201fc48f8cd0582 232 231 2015-07-25T17:08:44Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). '''Importing and Initial Setup''' When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] <CENTER>'''Figure 1'''</CENTER> The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] <CENTER>'''Figure 2'''</CENTER> Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] <CENTER>'''Figure 3'''</CENTER> The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the '''eyes, eyelashes, eyebrows, and hair''' is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] <CENTER>'''Figure 4'''</CENTER> '''Basic Repair of Eye Transparency''' Once in front view, left click to select the eye meshes, and perform the following steps: [[File:ImpExp08.png]] <CENTER>'''Figure 5'''</CENTER> 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] <CENTER>'''Figure 6'''</CENTER> 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] <CENTER>'''Figure 7'''</CENTER> 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] <CENTER>'''Figure 8'''</CENTER> 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] <CENTER>'''Figure 9'''</CENTER> 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 11). Uncheck it if it is checked. [[File:ImpExp14.png]] <CENTER>'''Figure 10'''</CENTER> The eyes in our image now look like this: [[File:ImpExp15.png]] <CENTER>'''Figure 11'''</CENTER> ---- '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] <CENTER>'''Figure 12'''</CENTER> ---- '''Raytrace Shadows''' Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] <CENTER>'''Figure 13'''</CENTER> At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] <CENTER>'''Figure 14'''</CENTER> You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero (refer to figure 13). [[File:ImpExp22.png]] <CENTER>'''Figure 15'''<CENTER> When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. '''Adopting MakeHuman Skeletons to Maya''' TO BE WRITTEN ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 0a4cb31abd2e2a8ca75622553ef8e44774be637f 231 230 2015-07-25T17:03:22Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). '''Importing and Initial Setup''' When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] <CENTER>'''Figure 1'''</CENTER> The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] <CENTER>'''Figure 2'''</CENTER> Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] <CENTER>'''Figure 3'''</CENTER> The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the '''eyes, eyelashes, eyebrows, and hair''' is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] <CENTER>'''Figure 4'''</CENTER> '''Basic Repair of Eye Transparency''' Once in front view, left click to select the eye meshes, and perform the following steps: [[File:ImpExp08.png]] <CENTER>'''Figure 5'''</CENTER> 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] <CENTER>'''Figure 6'''</CENTER> 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] '''Figure 7''' 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] <CENTER>'''Figure 8'''</CENTER> 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] <CENTER>'''Figure 9'''</CENTER> 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 11). Uncheck it if it is checked. [[File:ImpExp14.png]] <CENTER>'''Figure 10'''</CENTER> The eyes in our image now look like this: [[File:ImpExp15.png]] <CENTER>'''Figure 11'''</CENTER> ---- '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] <CENTER>'''Figure 12'''</CENTER> ---- '''Raytrace Shadows''' Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] '''Figure 13''' At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] '''Figure 14''' You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero (refer to figure 13). [[File:ImpExp22.png]] '''Figure 16''' When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. '''Adopting MakeHuman Skeletons to Maya''' TO BE WRITTEN ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 33b91d18be8f7d3c70fc256d4f1316b7307ed73f 230 229 2015-07-25T16:50:33Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). '''Importing and Initial Setup''' When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] '''Figure 2''' The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] '''Figure 3''' Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] '''Figure 4''' The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the '''eyes, eyelashes, eyebrows, and hair''' is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] '''Figure 5''' [[File:ImpExp08.png]] '''Figure 6''' '''Basic Repair of Eye Transparency''' Once in front view, left click to select the eye meshes, and perform the following steps: 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] '''Figure 7''' 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] '''Figure 8''' 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] '''Figure 9''' 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] '''Figure 10''' 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 11). Uncheck it if it is checked. [[File:ImpExp14.png]] '''Figure 11''' The eyes in our image now look like this: [[File:ImpExp15.png]] '''Figure 12''' ---- '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] '''Figure 13''' ---- '''Raytrace Shadows''' Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] '''Figure 14''' At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] '''Figure 15''' You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero (refer to figure 14). [[File:ImpExp22.png]] '''Figure 16''' When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. '''Adopting MakeHuman Skeletons to Maya''' TO BE WRITTEN ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 12fc5e7fccf1b4c68dc31a8dde7383668be42d07 229 228 2015-07-25T16:45:46Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). '''Importing and Initial Setup''' When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] '''Figure 2''' The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] '''Figure 3''' Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] '''Figure 4''' The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the '''eyes, eyelashes, eyebrows, and hair''' is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] '''Figure 5''' [[File:ImpExp08.png]] '''Figure 6''' '''Basic Repair of Transparent Assets''' Once in front view, left click to select the eye meshes, and perform the following steps: 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] '''Figure 7''' 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] '''Figure 8''' 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] '''Figure 9''' 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] '''Figure 10''' 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 11). Uncheck it if it is checked. [[File:ImpExp14.png]] '''Figure 11''' The eyes in our image now look like this: [[File:ImpExp15.png]] '''Figure 12''' ---- '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] '''Figure 13''' ---- '''Raytrace Shadows''' Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] '''Figure 14''' At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] '''Figure 15''' You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero (refer to figure 14). [[File:ImpExp22.png]] '''Figure 16''' When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. '''Adopting MakeHuman Skeletons to Maya''' TO BE WRITTEN ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 79e624a1c603935b2df2268923d4d2482a20d4af 228 227 2015-07-25T16:41:38Z Robbaer 12 /* Moving Assets into Autodesk 3DSMax */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] '''Figure 2''' The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] '''Figure 3''' Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] '''Figure 4''' The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the eyes, eyelashes, eyebrows, and hair is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] '''Figure 5''' [[File:ImpExp08.png]] '''Figure 6''' Once in front view, left click to select the eye meshes, and perform the following steps: 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] '''Figure 7''' 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] '''Figure 8''' 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] '''Figure 9''' 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] '''Figure 10''' 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 11). Uncheck it if it is checked. [[File:ImpExp14.png]] '''Figure 11''' The eyes in our image now look like this: [[File:ImpExp15.png]] '''Figure 12''' ---- '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] '''Figure 13''' ---- '''Raytrace Shadows''' Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] '''Figure 14''' At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] '''Figure 15''' You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero (refer to figure 14). [[File:ImpExp22.png]] '''Figure 16''' When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. '''Adopting MakeHuman Skeletons to Maya''' TO BE WRITTEN ==Moving Assets into Autodesk 3DSMax== This subsection describes the restoration and use of MakeHuman's skeletal transparency and skeletal assets after importing in Autodesk 3DSMax. > <LI>Import process</LI> <LI>Handling or Transparency after import</LI> <LI>Handling of Skelton and Rigging after import</LI> ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 744187c9750a6e8457df0ff639b451fb06face70 227 226 2015-07-25T16:16:08Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] '''Figure 2''' The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] '''Figure 3''' Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] '''Figure 4''' The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the eyes, eyelashes, eyebrows, and hair is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] '''Figure 5''' [[File:ImpExp08.png]] '''Figure 6''' Once in front view, left click to select the eye meshes, and perform the following steps: 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] '''Figure 7''' 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] '''Figure 8''' 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] '''Figure 9''' 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] '''Figure 10''' 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 11). Uncheck it if it is checked. [[File:ImpExp14.png]] '''Figure 11''' The eyes in our image now look like this: [[File:ImpExp15.png]] '''Figure 12''' ---- '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] '''Figure 13''' ---- '''Raytrace Shadows''' Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] '''Figure 14''' At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] '''Figure 15''' You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero (refer to figure 14). [[File:ImpExp22.png]] '''Figure 16''' When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. '''Adopting MakeHuman Skeletons to Maya''' TO BE WRITTEN ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== fc8d1c59692fb118728e306d80d568cd409d7cbe 226 225 2015-07-25T16:08:21Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] '''Figure 2''' The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] '''Figure 3''' Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] '''Figure 4''' The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the eyes, eyelashes, eyebrows, and hair is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] '''Figure 5''' [[File:ImpExp08.png]] '''Figure 6''' Once in front view, left click to select the eye meshes, and perform the following steps: 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] '''Figure 7''' 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] '''Figure 8''' 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] '''Figure 9''' 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] '''Figure 10''' 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 11). Uncheck it if it is checked. [[File:ImpExp14.png]] '''Figure 11''' The eyes in our image now look like this: [[File:ImpExp15.png]] '''Figure 12''' ---- '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] '''Figure 13''' ---- '''Raytrace Shadows''' Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] '''Figure 14''' At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] '''Figure 14''' You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero. [[File:ImpExp22.png]] '''Figure 15''' When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. '''Adopting MakeHuman Skeletons to Maya''' TO BE WRITTEN ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 9f665e43dfdf79b6c758990a3d88c3f3eb166047 225 224 2015-07-25T16:06:16Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the export/import process” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] '''Figure 2''' The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] '''Figure 3''' Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] '''Figure 4''' The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the eyes, eyelashes, eyebrows, and hair is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] '''Figure 5''' [[File:ImpExp08.png]] '''Figure 6''' Once in front view, left click to select the eye meshes, and perform the following steps: 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] '''Figure 7''' 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] '''Figure 8''' 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] '''Figure 9''' 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] '''Figure 10''' 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 11). Uncheck it if it is checked. [[File:ImpExp14.png]] '''Figure 11''' The eyes in our image now look like this: [[File:ImpExp15.png]] '''Figure 12''' ---- '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] '''Figure 13''' ---- '''Raytrace Shadows''' Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] '''Figure 14''' At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] '''Figure 14''' You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero. [[File:ImpExp22.png]] '''Figure 15''' When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. '''Adopting MakeHuman Skeletons to Maya''' TO BE WRITTEN ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 510c96d81a9f2a14f7b65516e08cdbc4d2eac91d 224 223 2015-07-25T15:55:22Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the export/import process” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] '''Figure 2''' The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] '''Figure 3''' Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] '''Figure 4''' The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the eyes, eyelashes, eyebrows, and hair is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] '''Figure 5''' [[File:ImpExp08.png]] '''Figure 6''' Once in front view, left click to select the eye meshes, and perform the following steps: 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] '''Figure 7''' 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] '''Figure 8''' 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] '''Figure 9''' 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] '''Figure 10''' 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 11). Uncheck it if it is checked. [[File:ImpExp14.png]] '''Figure 11''' The eyes in our image now look like this: [[File:ImpExp15.png]] '''Figure 12''' ---- '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] '''Figure 13''' ---- '''Raytrace Shadows''' Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] '''Figure 14''' At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] '''Figure 14''' You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero. [[File:ImpExp22.png]] '''Figure 15''' ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 43b700573030b12979083efb2637ef9fa8633fe9 223 222 2015-07-25T15:40:06Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the export/import process” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] '''Figure 2''' The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] '''Figure 3''' Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] '''Figure 4''' The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the eyes, eyelashes, eyebrows, and hair is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] '''Figure 5''' [[File:ImpExp08.png]] '''Figure 6''' Once in front view, left click to select the eye meshes, and perform the following steps: 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] '''Figure 7''' 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] '''Figure 8''' 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] '''Figure 9''' 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] '''Figure 10''' 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 11). Uncheck it if it is checked. [[File:ImpExp14.png]] '''Figure 11''' The eyes in our image now look like this: [[File:ImpExp15.png]] '''Figure 12''' ---- '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] '''Figure 13''' ---- '''Raytrace Shadows''' Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] '''Figure 14''' At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp18.png]] '''Figure 14''' This may also be what you see if you work on the model in another program prior to moving the workflow into Maya. To once again restore it to its intended look, take the eyes, eyelashes, eyebrows, and hair, and fix each. 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero. [[File:ImpExp19.png]] '''Figure 15''' ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== fdb9fd4661035be7a2aa399efb7245752d8fa99a 222 221 2015-07-25T15:18:45Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the export/import process” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] '''Figure 2''' The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] '''Figure 3''' Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] '''Figure 4''' The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the eyes, eyelashes, eyebrows, and hair is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] '''Figure 5''' [[File:ImpExp08.png]] '''Figure 6''' Once in front view, left click to select the eye meshes, and perform the following steps: 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] '''Figure 7''' 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] '''Figure 8''' 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] '''Figure 9''' 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] '''Figure 10''' 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 11). Uncheck it if it is checked. [[File:ImpExp14.png]] '''Figure 11''' The eyes in our image now look like this: [[File:ImpExp15.png]] '''Figure 12''' '''Repeat for other Transparent Assets''' You need to repeat this same set of steps after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] '''Figure 13''' [[File:ImpExp18.png]] '''Figure 14''' ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== ed230386794dc83b848d10cd1b4dbe488f6968c1 221 220 2015-07-25T15:05:06Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the export/import process” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] '''Figure 2''' The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] '''Figure 3''' Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] '''Figure 4''' The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the eyes, eyelashes, eyebrows, and hair is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] '''Figure 5''' [[File:ImpExp08.png]] '''Figure 6''' Once in front view, left click to select the eye meshes, and perform the following steps: 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] '''Figure 7''' 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] '''Figure 8''' 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] '''Figure 9''' 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] '''Figure 10''' 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 11). Uncheck it if it is checked. [[File:ImpExp14.png]] '''Figure 11''' The eyes in our image now look like this: [[File:ImpExp15.png]] '''Figure 12''' [[File:ImpExp16.png]] '''Figure 13''' [[File:ImpExp17.png]] '''Figure 14''' ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 1c3ba5a9b4b3031fe412a2bed470db4a868c7951 220 201 2015-07-25T14:47:29Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the export/import process” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] '''Figure2''' The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] '''Figure 3''' Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] '''Figure 4''' The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the eyes, eyelashes, eyebrows, and hair is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] '''Figure 5''' [[File:ImpExp08.png]] '''Figure 6''' Once in front view, left click to select the eye meshes, and perform the following steps: 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] '''Figure 7''' 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] '''Figure 8''' 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] '''Figure 9''' 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] '''Figure 10''' [[File:ImpExp14.png]] '''Figure 11''' [[File:ImpExp15.png]] '''Figure 12''' ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== a42f581feedfccd6aec1c014d43aa1bb42b0723e 201 200 2015-07-25T14:17:04Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the export/import process” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] '''Figure2''' The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] '''Figure 3''' Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] '''Figure 4''' The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the eyes, eyelashes, eyebrows, and hair is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] '''Figure 5''' [[File:ImpExp08.png]] '''Figure 6''' Once in front view, left click to select the eye meshes, and perform the following steps: 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] '''Figure 7''' 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] '''Figure 8''' 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] '''Figure 9''' 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] [[File:ImpExp14.png]] [[File:ImpExp15.png]] ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== f61b98d3a449ce5111ec1f5cd408f2685c46dddf 200 199 2015-07-25T13:55:26Z Joepal 14 Link to MHX wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange independently developed .mhx2 tools], which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the export/import process” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] '''Figure2''' The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] '''Figure 3''' Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] '''Figure 4''' The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the eyes, eyelashes, eyebrows, and hair is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] '''Figure 5''' [[File:ImpExp08.png]] '''Figure 6''' Once in front view, left click to select the eye meshes, and perform the following steps: 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] '''Figure 7''' 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] '''Figure 8''' 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] '''Figure 9''' [[File:ImpExp12.png]] [[File:ImpExp13.png]] [[File:ImpExp14.png]] [[File:ImpExp15.png]] ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== d103cced991fadccb11ae2bbdc6216f4fda3a30b 199 198 2015-07-25T13:48:37Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the export/import process” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] '''Figure2''' The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] '''Figure 3''' Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] '''Figure 4''' The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the eyes, eyelashes, eyebrows, and hair is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] '''Figure 5''' [[File:ImpExp08.png]] '''Figure 6''' Once in front view, left click to select the eye meshes, and perform the following steps: 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] '''Figure 7''' 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] '''Figure 8''' 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] '''Figure 9''' [[File:ImpExp12.png]] [[File:ImpExp13.png]] [[File:ImpExp14.png]] [[File:ImpExp15.png]] ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 2995551f5ac960a1b17f8cee6b84733be543761c 198 197 2015-07-25T13:36:33Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the export/import process” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] '''Figure2''' The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] '''Figure 3''' Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] '''Figure 4''' The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the eyes, eyelashes, eyebrows, and hair is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] [[File:ImpExp08.png]] [[File:ImpExp09.png]] [[File:ImpExp10.png]] [[File:ImpExp11.png]] [[File:ImpExp12.png]] [[File:ImpExp13.png]] [[File:ImpExp14.png]] [[File:ImpExp15.png]] ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== d0e9ead1e907f8f5f001ee8c54cb079ca35b4d87 197 196 2015-07-25T13:23:26Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the export/import process” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] [[File:ImpExp04.png]] [[File:ImpExp05.png]] [[File:ImpExp06.png]] [[File:ImpExp07.png]] ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== f590dc9cd3893255c09bc5820a2d124287ab0f34 196 180 2015-07-25T13:18:50Z Robbaer 12 /* Background and Technical Considerations */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get excellent results with the current approach, but the user should be prepared to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the export/import process” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). When the file is initially imported into Maya it looks like this: [[File:Example.jpg]] ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 544cbaf3d1bf539331ce31295691f048eafb967b 180 179 2015-07-25T12:10:30Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get very fine results with the current approach, but the user should not be surprised to have to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the export/import process” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). When the file is initially imported into Maya it looks like this: [[File:Example.jpg]] ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 3ca6426acf8b7d30a08b4426c849a08f2ca1e187 179 178 2015-07-25T12:06:56Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get very fine results with the current approach, but the user should not be surprised to have to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the export/import process” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. [RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). When the file is initially imported into Maya it looks like this: [[File:Example.jpg]] ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== a007eb54758d89c8f579106244040b2d9ba8c15d 178 172 2015-07-25T08:01:56Z Robbaer 12 /* Illustrating the Export Process for Subsequent Import */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get very fine results with the current approach, but the user should not be surprised to have to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:ImpExp-001.png]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== f9ae9a645c22396cf2e071e36723ef781b57f9b6 172 168 2015-07-25T07:06:56Z Robbaer 12 /* Illustrating the Export/Import Process */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get very fine results with the current approach, but the user should not be surprised to have to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export Process for Subsequent Import== For the purposes of illustration we will take a straight forward MakeHuman character that has been given a skeleton, a pose, a skin material, clothing, eyes, eyelashes, eyebrows, hair, tongue and teeth. We will then export it for import into a number of popular downstream applications. For each application, our goal will be to get the character to look similar to its original look in MakeHuman. We will pay particular attention to the head and face because this is the area of greatest difficulty for dealing with transparency and shadows. The character has the default skeleton and has been set in the T-pose which is a common starting pose for animation-based work. The image we will be exporting looks like this in MakeHuman: [[File:Example.jpg]] '''Figure 1.''' MakeHuman character as viewed from within MakeHuman prior to export. In subsequent sections, we will discuss the steps needed to reproduce this look after importing into a downstream program. ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 3e4eb1c8d89b76cdda46f5a353ee4f261dedf9dd 168 165 2015-07-25T06:57:47Z Robbaer 12 wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4 or Virtual Worlds like Second Life. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get very fine results with the current approach, but the user should not be surprised to have to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Illustrating the Export/Import Process== ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 9ef084f1c8d3f0b3883928cf18463275a35e046c 165 162 2015-07-25T06:52:53Z Robbaer 12 /* Background and Technical Considerations */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but elusive goal. That said, the user should get very fine results with the current approach, but the user should not be surprised to have to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. '''MakeHuman Assets with transparency''' In CG art, materials for mesh objects are frequently created by shaders that use various types of image maps to provide some of the information for determining the color, transparency, and light behavior on the surface of mesh objects. These image maps are referred to as textures. MakeHuman has textured materials available for the body (including proxy topologies), eyes, eyebrows, eyelashes, tongue, teeth, and hair. During export, these textures need to made available to the program that will be importing the MakeHuman output. Two aspects of this process need to be understood by the MakeHuman user: 1) how textures are saved; and 2) how transparency is handled. There are two possible standards for storing texture assets upon export. They can either be embedded in an exported file, or they can be saved to a folder as named images with reference to the location of those files in the exported file. At present, MakeHuman uses the latter approach when exporting material textures. Following the export process, MakeHuman exports will be located in ~/makehuman/v1/exports/, and the texture images will be located in a corresponding subfolder ~/makehuman/v1/exports/textures. The tilde symbol indicates your user drive and home document directory. [For example, on Windows Vista and later, this typically would be: C:/Users/%USERNAME%/Documents/makehuman/v1/exports and a textures subfolder, where %USERNAME% is replaced by your username.] Transparency is used in 3D art to let a viewer see through a mesh object to experience the color, reflections and lighting behind that object. MakeHuman uses transparency with textures for the eyes, eyebrows, eyelashes, and hair. This allows complex real world geometry to be represented by much simpler quasi-planar objects. For example, the hairs of the eyebrows are painted onto a flat surface with transparent spaces in between the painted hairs rather than creating tiny mesh objects for each of the 250-1000 individual hairs. CG programs can indicate which regions of the eyebrow should be transparent either by using a separate image where blackness indicates transparent and whiteness indicates opacity. Grayness is used to represent partial transparency. An alternative approach to representing transparency is to use an image format like .tga or .png which has a one byte channel, called an alpha channel, for just this purpose. Again, values near zero (black) typically represent “completely transparent” and values near 255 (white) typically represent “completely opaque”. MakeHuman represents the transparent regions of its assets using the alpha channel method and the .png format for textures. Unfortunately, importers for filmbox (FBX) and collada formats (DAE) do not automatically extract the transparency information provided by MakeHuman, or more specifically, they do not provide it to their shaders as anticipated. This is not just a MakeHuman problem but reflects multiple ways of handling transparency and alpha channels within the industry. Notably, exporting and reimporting assets with alpha channel transparency into the very same program fails with Blender, 3DSMax, and Maya for FBX, and where available, DAE formats. This forces the MakeHuman user to understand how to overcome this limitation in his favorite downstream application. Some introductory help will be provided for common applications later in this document. There is one additional aspect of using transparency to make a single, simple mesh represent multiple small objects like eyebrows, and that is the issue of shadows. Lighting systems in 3D worlds creates a simulation of reality by making shadows appear on mesh objects in places you would expect to see them in the real world and with the soft edges you would expect to see in the real world. Shadows are a function of both the light source, the object blocking that light, and the objects receiving the reflected and refracted light from other objects. For objects that have transparency, like MakeHuman’s eyes, eyelashes, eyebrows, and hair, shadows should only be cast by the opaque portion of the texture and not by the transparent portions of the texture. The handling of shadows differs considerably from program to program, and objects with alpha channel transparency can need some special handling to accommodate these differences. This handling is not just about the assets with alpha map transparency, themselves. Sometimes it is necessary to set parameters to explicitly tell other objects like the MakeHuman body to not display shadows from the transparent regions of the eyebrows but to show shadows from the opaque hairs of the eyebrows. Shadows of transparently mapped assets will be addressed further in subsequent sections (where information is available). ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 3d78d1b1b83587c8c48a363b8075426044acc1a1 162 161 2015-07-25T06:46:46Z Robbaer 12 /* Background and Technical Considerations */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but ellusive goal. That said, the user should get very fine results with the current approach, but the user should not be surprised to have to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 897adf8f65f36f5b3ee3be8d2821eaa8763f6dfe 161 159 2015-07-25T06:45:41Z Robbaer 12 /* Background and Technical Considerations */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but potentially unachievable goal. That said, the user should get very fine results with the current approach, but the user should not be surprised to have to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 661f85785662b91845fe91102f558a0ec573f6a2 159 156 2015-07-25T06:44:15Z Robbaer 12 /* Background and Technical Considerations */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but impractical goal. That said, the user should get very fine results with the current approach, but the user should not be surprised to have to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 4a6982962d8e0153babd29435c9e9f76e1e2e7c4 156 154 2015-07-25T06:39:43Z Robbaer 12 /* Background and Export Example */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Technical Considerations== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but impractical goal. The user should get very fine results with the current approach, but should not be surprised to have to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 0cf5f35aa58de9a16cc6392289de5a8ae66762e0 154 150 2015-07-25T06:37:43Z Robbaer 12 /* Background and Export Example */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Export Example== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman. At present this does not typically happen, and the user must make some adjustments. This Wiki section is designed to help you negotiate through that process. '''Spatial transformation: MakeHuman Coordinate System, MakeHuman Skeletons, and MakeHuman Scales''' The MakeHuman viewport is oriented so that the positive end of the x-axis is to the right, the positive end of the y-axis it up, and the positive end of the z-axis is out through the front to the screen. Other CG programs can use other schemes, so it is essential to know the coordinate system used by the downstream target at export time, if you wish to minimize the adjustments you make after importing. The settings tab allows users to work in metric units of decimeters or imperial units of inches. Downstream programs vary in their de facto units, and again, it is generally a good idea to anticipate your needs at export time rather than trying to make adjustments during or after import. It is sometimes said that these programs have no default unit. To a degree this is true. However, the default grid pattern, assumptions of other humanoid producing programs, and assumptions of the “physics systems” will often work best with the export units specified in the table below: TABLE HERE '''Working with Rigs and Skeletons''' Internally, MakeHuman uses its default skeleton as the basis of mesh vertex weighting for creating the poses available on the pose tab. This rig includes a special set of bones that can be used for driving facial expressions, but as of the current release (MakeHuman 1.1.x), there is not extensive support for inverse kinematics, and animation must be done downstream in the production pipeline. Historically, MakeHuman has had close ties to Blender, but the ultimate development goal is to provide strong generic support for all the major tools used in the industry, and with MakeHuman 1.1.x, substantial progress has been made by providing weighted skeletons suited for standard use in various downstream applications. For the most part, the name of the most appropriate rig will be clearly associated with the target downstream application, but the tag filters on the Pose/Animate | skeleton tab are intended to help choose a rig suited more generally to a specific purpose like motion capture integration, facial animation, or gaming applications. MakeHuman is designed to provide the user with maximum flexibility at creation time. To provide skeletons that work perfectly with every conceivable variation of the sliders is a laudable but impractical goal. The user should get very fine results with the current approach, but should not be surprised to have to make some minor tweaks to skeletons and weights downstream, particularly with extreme character dimensions or extreme poses. ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 713cd5eaf4c86c5973d879ff69f64cdffc3066a5 150 148 2015-07-25T06:31:04Z Robbaer 12 wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Export Example== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. By default in MakeHuman, the viewport lighting is handled by the built-in light-sphere shader. The light-sphere shader takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. Most downstream programs use other shader strategies, the most common of which include Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make some adjustments in the downstream program to get the final desired effect. Some MakeHuman assets also include Normal maps which the user will want to integrate into the downstream applications rendering. ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== ad88840f89d579a19271003b0e3d2aef13334328 148 147 2015-07-25T06:16:30Z Robbaer 12 /* Background and Export Example */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Export Example== '''Introduction''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations.''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. '''MakeHuman Shader and Asset Rendering.''' A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. The MakeHuman viewport uses, by default, a so-called “light-sphere shader” to display the human and assets during the on-screen modeling process. In doing so, it takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. In MakeHuman, the viewport the lighting is handled by the built-in lightsphere shader. Most downstream programs use other shader strategies, the most simple of which are Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make adjustments in the downstream program to get the final desired effect. Some MakeHumanassets also include Normal maps which the user will want to integrate into the downstream applications rendering. ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 42a8a40a833bcda2b7e1f82b2b9f63e0ef6b2bfe 147 146 2015-07-25T06:11:13Z Robbaer 12 wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and Export Example section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Export Example== ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 73b46be2b56ab151cb9a4f865a594de86e6034a5 146 145 2015-07-25T06:08:30Z Robbaer 12 wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The Background and theory section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Background and Theory== ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== ff3d301535a3410bc15f61e3c98f699c718c8322 145 144 2015-07-25T06:05:01Z Robbaer 12 /* Summary */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The introduction section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 759e845ffddf77195fbd2265dd6943f2d17abb6f 144 65 2015-07-25T00:56:15Z Robbaer 12 /* Introduction */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The introduction section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. '''Introduction.''' Many MakeHuman users will use the work they create in MakeHuman as a component of a project completed in an external, downstream application. The most common target applications are 3D graphics applications like Blender, Autodesk 3DSMax, and Autodesk Maya or gaming engines like Unity Engine or Unreal Engine 4. In some cases, the MakeHuman user will be interested in moving just the mesh. In other cases, the user will be interested in moving a complete, posed, skeletonized character to the downstream application. The purpose of this document is to discuss the basic process of moving a finished MakeHuman asset to a downstream program and producing a reasonable facsimile of its MakeHuman appearance in the downstream application. It is important to recognize that because each application has its own way of representing 3D assets, and because each export format has its own set of idiosyncrasies, there will be adjustments and approximations in the asset transfer process. '''Format Considerations.''' In an effort to provide the broadest latitude for user workflows, the MakeHuman development team is directing it major export support toward Autodesk FBX format and Khronos Collada format. In addition, Blender users have the option to install the independently developed .mhx2 tools, which are developed and maintained by Thomas Larson, independent of MakeHuman itself. Collada is a text-based format and is an open standard, but implementation of the standard is not as consistent as might be hoped. FBX is a proprietary standard developed by Autodesk and supported through a software development kit (FBX SDK) written in C++ and a Python FBX scripting template. The FBX standard is periodically updated by Autodesk and can be saved as either an ASCII or a binary format. Downstream programs may make assumptions about the FBX version being imported, and may limit users to either binary or ASCII importing. Surprisingly, CG assets exported from various programs as collada and FBX do not make it back into the same program as a round-trip without changes to some components of the scene. For example, this is true of FBX format in both 3DSMax and Maya for MakeHumanassets. It is also true for Blender with both FBX and collada format for MakeHumanassets. In this document, we will attempt to provide some support for dealing with this type of surprise. MakeHuman Shader and Asset Rendering. A “shader” is computer code that translates digital information into a properly rendered image on the computer screen. Different algorithms use different methods of constructing such a display. The MakeHuman viewport uses, by default, a so-called “light-sphere shader” to display the human and assets during the on-screen modeling process. In doing so, it takes advantage of support for the openGL standard provided by today’s graphics cards. What the viewer sees on the screen depends not only on the color of assets, like skin and clothing, but also on the nature of the lights illuminating the scene and causing reflections and shadows. In MakeHuman, viewport the lighting is handled by the built-in lightsphere shader. Most downstream programs use other shader strategies, the most simple of which are Phong shaders, Blinn shaders, or Lambert shaders. Because the code and conceptual design of these shaders differs from that of the MakeHuman light-sphere shader, the user should be prepared to make adjustments in the downstream program to get the final desired effect. Some MakeHuman™assets also include Normal maps which the user will want to integrate into the downstream applications rendering. When a MakeHuman™material (for example, skin or clothing or eyelashes) is exported, it carries with it a limited amount of fundamental information for by the downstream program’s shaders. In an ideal world, the downstream program would import this raw information, correctly populate the variables in its shaders, and yield the same view of the human that was exported from MakeHuman™. At present this does not typically happen, and the user must make some adjustments. ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== 77da4f3b33709695d869f35d1f2581397babb83b 65 60 2015-07-04T17:12:59Z Robbaer 12 wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The introduction section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. == Introduction == ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== ==Preparing assets for use with Second Life== a641e2d856a6bbaa4513fa3970bf535d090814b0 60 59 2015-07-04T16:38:17Z Robbaer 12 Changed protection level for "[[MakeHuman Workflows]]": Page still under base content development by MH Devs ([Move=Allow only administrators] (indefinite)) wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The introduction section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. == Introduction == ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== 52002a7dfe53255f1a672b59a34bb6a9f57ea97e 59 58 2015-07-04T16:35:30Z Robbaer 12 Protected "[[MakeHuman Workflows]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The introduction section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. == Introduction == ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== 52002a7dfe53255f1a672b59a34bb6a9f57ea97e 58 57 2015-07-04T16:26:55Z Robbaer 12 wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The introduction section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. == Introduction == ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== ==Moving Assets into Blender== ==Moving Assets into Unreal Engine 4== ==Moving Assets into Unity Game Engine== ==Moving Assets into Google Sketchup== 52002a7dfe53255f1a672b59a34bb6a9f57ea97e 57 56 2015-07-04T16:23:06Z Robbaer 12 wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The introduction section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. == Introduction == ==Moving Assets into Autodesk Maya== ==Moving Assets into Autodesk 3DSMax== 3accb00f6b8927ea45cbf90e3f61366cbc85f41d 56 55 2015-07-04T16:21:41Z Robbaer 12 /* Summary */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The introduction section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. == Introduction == 6a0004a02ab680ac8a90a1acc167d9f351a19886 55 54 2015-07-04T16:07:58Z Robbaer 12 /* Summary */ wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The introduction section provides some background that are common to all workflows. It is not essential to read the introduction before going straight to the program of interest, but doing so might help you understand ''why'' certain steps work or are necessary. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. 4e699784a45390136371ca316156ad6a2f62b00c 54 2015-07-04T16:02:13Z Robbaer 12 Created page with " == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information..." wikitext text/x-wiki == Summary == More often than not MakeHuman users will want to move their creation into another program to continue the creation process. This section provides information on how to achieve this for common target programs. The introduction provides some background that are common to all workflows. In many cases there can be more than one way to accomplish the same thing. The method described here may not be optimal for your situation, but it should help get you started. 42ac856504992bdcda24b4d5a7bc77f7fb14576f MakeHuman resources 0 11 1452 1437 2018-05-04T18:07:28Z Wolgade 26 wikitext text/x-wiki These are some central pages related to MakeHuman: == Getting MakeHuman == The main page for downloads is located at http://www.makehumancommunity.org/content/downloads.html For ubuntu users there are PPAs at https://launchpad.net/~makehuman-official == Source code == The MakeHuman source code repository is at https://bitbucket.org/MakeHuman/makehuman == Bug tracker == The bugtracker for makehuman is at http://bugtracker.makehumancommunity.org == More assets == You can find more assets, such as clothes and skins etc in the [http://www.makehumancommunity.org/content/user_contributed_assets.html user contributed assets] repository. == Getting help, posting suggestions, general discussion == Discussions, user feedback and questions should generally be put in the forum: http://www.makehumancommunity.org/forum == Community plugins == Overview of additional plugins: https://github.com/makehumancommunity == News / updates == On the front page of [http://www.makehumancommunity.org/forum the community site], you can find news and blog posts. There is a facebook page at https://www.facebook.com/makehuman. Important news will be cross-posted here. Please do not use this for asking questions. If you have questions, ask them on the forums. 8e0149f03fd8fb1bfff8d4f85c0b411853255494 1437 750 2017-09-26T17:50:43Z Blindsaypatten 47 changed the main page for downloads from makehuman.org to makehumancommunity.org wikitext text/x-wiki These are some central pages related to MakeHuman: == Getting MakeHuman == The main page for downloads is located at http://www.makehumancommunity.org/content/downloads.html For ubuntu users there are PPAs at https://launchpad.net/~makehuman-official == Source code == The MakeHuman source code repository is at https://bitbucket.org/MakeHuman/makehuman == Bug tracker == The bugtracker for makehuman is at http://bugtracker.makehumancommunity.org == More assets == You can find more assets, such as clothes and skins etc in the [http://www.makehumancommunity.org/content/user_contributed_assets.html user contributed assets] repository. == Getting help, posting suggestions, general discussion == Discussions, user feedback and questions should generally be put in the forum: http://www.makehumancommunity.org/forum == News / updates == On the front page of [http://www.makehumancommunity.org/forum the community site], you can find news and blog posts. There is a facebook page at https://www.facebook.com/makehuman. Important news will be cross-posted here. Please do not use this for asking questions. If you have questions, ask them on the forums. 93f28c89bdbf74aac4f442bd7e7315333fa90e01 750 749 2016-05-20T13:22:22Z Joepal 14 wikitext text/x-wiki These are some central pages related to MakeHuman: == Getting MakeHuman == The main page for downloads is located at http://www.makehuman.org/content/download.html For ubuntu users there are PPAs at https://launchpad.net/~makehuman-official == Source code == The MakeHuman source code repository is at https://bitbucket.org/MakeHuman/makehuman == Bug tracker == The bugtracker for makehuman is at http://bugtracker.makehumancommunity.org == More assets == You can find more assets, such as clothes and skins etc in the [http://www.makehumancommunity.org/content/user_contributed_assets.html user contributed assets] repository. == Getting help, posting suggestions, general discussion == Discussions, user feedback and questions should generally be put in the forum: http://www.makehumancommunity.org/forum == News / updates == On the front page of [http://www.makehumancommunity.org/forum the community site], you can find news and blog posts. There is a facebook page at https://www.facebook.com/makehuman. Important news will be cross-posted here. Please do not use this for asking questions. If you have questions, ask them on the forums. 0925f1196d909058b63e56b4f3d363f149d01d1a 749 748 2016-05-20T13:22:09Z Joepal 14 wikitext text/x-wiki These are some central pages related to MakeHuman: == Getting MakeHuman == The main page for downloads is located at http://www.makehuman.org/content/download.html For ubuntu users there are PPAs at https://launchpad.net/~makehuman-official == Source code == The MakeHuman source code repository is at https://bitbucket.org/MakeHuman/makehuman == Bug tracker == The bugtracker for makehuman is at http://bugtracker.makehumancommunity.org == More assets == You can find more assets, such as clothes and skins etc in the [[http://www.makehumancommunity.org/content/user_contributed_assets.html user contributed assets]] repository. == Getting help, posting suggestions, general discussion == Discussions, user feedback and questions should generally be put in the forum: http://www.makehumancommunity.org/forum == News / updates == On the front page of [http://www.makehumancommunity.org/forum the community site], you can find news and blog posts. There is a facebook page at https://www.facebook.com/makehuman. Important news will be cross-posted here. Please do not use this for asking questions. If you have questions, ask them on the forums. ac8e44ef2c42185677d23ce93c73733b1adcb167 748 49 2016-05-20T13:21:28Z Joepal 14 wikitext text/x-wiki These are some central pages related to MakeHuman: == Getting MakeHuman == The main page for downloads is located at http://www.makehuman.org/content/download.html For ubuntu users there are PPAs at https://launchpad.net/~makehuman-official == Source code == The MakeHuman source code repository is at https://bitbucket.org/MakeHuman/makehuman == Bug tracker == The bugtracker for makehuman is at http://bugtracker.makehumancommunity.org == More assets == You can for more assets, such as clothes and skins etc in the [[http://www.makehumancommunity.org/content/user_contributed_assets.html user contributed assets]] repository. == Getting help, posting suggestions, general discussion == Discussions, user feedback and questions should generally be put in the forum: http://www.makehumancommunity.org/forum == News / updates == On the front page of [http://www.makehumancommunity.org/forum the community site], you can find news and blog posts. There is a facebook page at https://www.facebook.com/makehuman. Important news will be cross-posted here. Please do not use this for asking questions. If you have questions, ask them on the forums. 153ce3c8fe59131a903eb5b2901270c9ad983696 49 2015-07-04T11:21:16Z Joepal2 11 Created page with "These are some central pages related to MakeHuman: == Getting MakeHuman == The main page for downloads is located at http://www.makehuman.org/content/download.html For ubun..." wikitext text/x-wiki These are some central pages related to MakeHuman: == Getting MakeHuman == The main page for downloads is located at http://www.makehuman.org/content/download.html For ubuntu users there are PPAs at https://launchpad.net/~makehuman-official == Source code == The MakeHuman source code repository is at https://bitbucket.org/MakeHuman/makehuman == Bug tracker == The bugtracker for makehuman is at http://bugtracker.makehumancommunity.org == Community, blog, updates and similar == Discussions, user feedback and questions should generally be put in the forum: http://www.makehumancommunity.org/forum There is also a facebook page at https://www.facebook.com/makehuman 8a0953eecf0f37b3fb8c19fc3522b6f27dd19997 Moving Assets into Autodesk 3DSMax 0 99 320 319 2015-07-28T21:14:42Z Robbaer 12 /* Restoring Transparency for the Eyes */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. During export the FBX exporter was set to ASCII and the scale was set to inches. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click on the front vieport to make it active and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. Here are the steps to fix the eyes: 1. Left-click the eyes to select them. [[File:ImpExp40.png]] <center>'''Figure 8'''</center> 2. From the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor.] Click on the slate editor window to make it active. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 9'''</center> 3. Drag the output connector of Blue_eye_png bitmap to make a second connection with the opacity input node of the high poly obj node (standard). [[File:ImpExp35.png]] <center>'''Figure 10'''</center> 4. Now double left-click on the Blue_eye_png bitmap node to reveal the transparency settings for the eye transparency settings for the eye texture map. Of course, if you used a different eye texture, the name of your texture map will differ, and you should double click on the corresponding texture bitmap. [[File:ImpExp41.png]] <center>'''Figure 11'''</center> 5. Under bitmap parameters (right panel) set Mono Channel Output to alpha, set Alpha Source to Image Alpha, and confirm that RGB Channel Output is set to RGB. [[File:ImpExp42.png]] <center>'''Figure 12'''</center> The eyes should now appear as the natural color with which they were exported from MakeHuman. [[File:ImpExp43.png]] <center>'''Figure 13'''</center> == Fixing Transparency on the Other Assets == To fix the eyebrows, eyelashes, and hair, repeat steps 1 - 5 as described for the eyes with each other asset with that asset selected in turn. After completing the eyebrows, out model looks like this: [[File:ImpExp44.png]] <center>'''Figure 14'''</center> After completing the eyebrows and the eyelashes, our model looks like this: [[File:ImpExp45.png]] <center>'''Figure 15'''</center> After completing everything, our model looks very similar to the look it had upon export from MakeHuman. [[File:ImpExp46.png]] <center>'''Figure 16'''</center> == Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing == At this point if you save the file using Autodesk 3DSMAX native.max format, it can be read in again with no additional correction necessary. However, if you export the file as in FBX format and then read the file back into a new session it will have semi-transparent hair and now eyelashes or eyebrows. You may have a similar experience if you export the file as FBX from another program such as Maya. What has happened is that the "mono channel output" setting has changed from alpha to RGB. The face looks like this after importing: [[File:ImpExp47.png]] <center>'''Figure 17'''</center> Fixing this problem is relatively straight forward, although it seems that sometimes the slate material editor needs resetting to properly show what has happened to the "Mono channel output" setting. The steps to repair this problem should be done for the eyes, eyebrows, eyelashes, and hair, each in turn. The 3 steps are as follows: 1. Left-click to select the eyes. Start the slate material editor by either using the menu '''Materials | Create/Edit Materials | Edit Selected Object's Material''', as before, or by simply clicking on material editor icon on the right of the icon bar. [[File:ImpExp48.png]] <center>'''Figure 18'''</center> 2. Sometimes it is useful to refresh the slate material editor by selecting all from the select menu (or shortcut CTRL-A) and then refreshing using '''Edit | Auto update selected Previews''' (or shortcut CTRL-U). This seems to make the status of the Mono Channel Output appear accurately in step 3. 3. Double click the blue_eye.png bitmap node (or the corresponding eye texture for you MakeHuman asset). Left click to check the "alpha" setting under Mono Channel Output. [[File:ImpExp49.png]] <center>'''Figure 19'''</center> Upon completing steps 1-3 for the eyes, the face will appear like this: [[File:ImpExp50a.png]] <center>'''Figure 20'''</center> Repeat the steps above to restore the Mono Channel Output setting to alpha for the eyebrows, the eyelashes, and the hair. You MakeHuman character should now again look essentially like the original that was in MakeHuman. [[File:ImpExp50b.png]] <center>'''Figure 21'''</center> == Importing MakeHuman Skeletons into 3DSMAX == TO BE WRITTEN f0ec89eca837c197c14af757feb279c02c371d7f 319 318 2015-07-28T20:53:16Z Robbaer 12 /* Fixing Transparency on the Other Assets */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. During export the FBX exporter was set to ASCII and the scale was set to inches. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click on the front vieport to make it active and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. Here are the steps to fix the eyes: 1. Left-click the eyes to select them. [[File:ImpExp40.png]] <center>'''Figure 8'''</center> 2. From the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor.] Click on the slate editor window to make it active. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 9'''</center> 3. Drag the output connector of Blue_eye_png bitmap to make a second connection with the opacity input node of the high poly obj node (standard). [[File:ImpExp35.png]] <center>'''Figure 10'''</center> 4. Now double left-click on the Blue_eye_png bitmap node, or alternatively, double click on the words blue_eye_png (blue_eye.png) just to the right of the opacity row (maps column) of the right panel. [[File:ImpExp41.png]] <center>'''Figure 11'''</center> 5. Under bitmap parameters (right panel) set Mono Channel Output to alpha, set Alpha Source to Image Alpha, and confirm that RGB Channel Output is set to RGB. [[File:ImpExp42.png]] <center>'''Figure 12'''</center> The eyes should now appear as the natural color with which they were exported from MakeHuman. [[File:ImpExp43.png]] <center>'''Figure 13'''</center> == Fixing Transparency on the Other Assets == To fix the eyebrows, eyelashes, and hair, repeat steps 1 - 5 as described for the eyes with each other asset with that asset selected in turn. After completing the eyebrows, out model looks like this: [[File:ImpExp44.png]] <center>'''Figure 14'''</center> After completing the eyebrows and the eyelashes, our model looks like this: [[File:ImpExp45.png]] <center>'''Figure 15'''</center> After completing everything, our model looks very similar to the look it had upon export from MakeHuman. [[File:ImpExp46.png]] <center>'''Figure 16'''</center> == Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing == At this point if you save the file using Autodesk 3DSMAX native.max format, it can be read in again with no additional correction necessary. However, if you export the file as in FBX format and then read the file back into a new session it will have semi-transparent hair and now eyelashes or eyebrows. You may have a similar experience if you export the file as FBX from another program such as Maya. What has happened is that the "mono channel output" setting has changed from alpha to RGB. The face looks like this after importing: [[File:ImpExp47.png]] <center>'''Figure 17'''</center> Fixing this problem is relatively straight forward, although it seems that sometimes the slate material editor needs resetting to properly show what has happened to the "Mono channel output" setting. The steps to repair this problem should be done for the eyes, eyebrows, eyelashes, and hair, each in turn. The 3 steps are as follows: 1. Left-click to select the eyes. Start the slate material editor by either using the menu '''Materials | Create/Edit Materials | Edit Selected Object's Material''', as before, or by simply clicking on material editor icon on the right of the icon bar. [[File:ImpExp48.png]] <center>'''Figure 18'''</center> 2. Sometimes it is useful to refresh the slate material editor by selecting all from the select menu (or shortcut CTRL-A) and then refreshing using '''Edit | Auto update selected Previews''' (or shortcut CTRL-U). This seems to make the status of the Mono Channel Output appear accurately in step 3. 3. Double click the blue_eye.png bitmap node (or the corresponding eye texture for you MakeHuman asset). Left click to check the "alpha" setting under Mono Channel Output. [[File:ImpExp49.png]] <center>'''Figure 19'''</center> Upon completing steps 1-3 for the eyes, the face will appear like this: [[File:ImpExp50a.png]] <center>'''Figure 20'''</center> Repeat the steps above to restore the Mono Channel Output setting to alpha for the eyebrows, the eyelashes, and the hair. You MakeHuman character should now again look essentially like the original that was in MakeHuman. [[File:ImpExp50b.png]] <center>'''Figure 21'''</center> == Importing MakeHuman Skeletons into 3DSMAX == TO BE WRITTEN 2a5cc2e23f5136ecf167a9c2c4b51b3464eb3785 318 315 2015-07-28T20:51:57Z Robbaer 12 /* Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. During export the FBX exporter was set to ASCII and the scale was set to inches. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click on the front vieport to make it active and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. Here are the steps to fix the eyes: 1. Left-click the eyes to select them. [[File:ImpExp40.png]] <center>'''Figure 8'''</center> 2. From the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor.] Click on the slate editor window to make it active. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 9'''</center> 3. Drag the output connector of Blue_eye_png bitmap to make a second connection with the opacity input node of the high poly obj node (standard). [[File:ImpExp35.png]] <center>'''Figure 10'''</center> 4. Now double left-click on the Blue_eye_png bitmap node, or alternatively, double click on the words blue_eye_png (blue_eye.png) just to the right of the opacity row (maps column) of the right panel. [[File:ImpExp41.png]] <center>'''Figure 11'''</center> 5. Under bitmap parameters (right panel) set Mono Channel Output to alpha, set Alpha Source to Image Alpha, and confirm that RGB Channel Output is set to RGB. [[File:ImpExp42.png]] <center>'''Figure 12'''</center> The eyes should now appear as the natural color with which they were exported from MakeHuman. [[File:ImpExp43.png]] <center>'''Figure 13'''</center> == Fixing Transparency on the Other Assets == To fix the eyebrows, eyelashes, and hair, repeat steps 1 - 5 as described for the eyes with each other asset with that asset selected in turn. After completing the eyebrows, out model looks like this: [[File:ImpExp44.png]] <center>'''Figure 14'''</center> After completing the eyebrows and the eyelashes, out model looks like this: [[File:ImpExp45.png]] <center>'''Figure 15'''</center> After completing everything, out model looks very similar to the look it had upon export from MakeHuman. [[File:ImpExp46.png]] <center>'''Figure 16'''</center> == Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing == At this point if you save the file using Autodesk 3DSMAX native.max format, it can be read in again with no additional correction necessary. However, if you export the file as in FBX format and then read the file back into a new session it will have semi-transparent hair and now eyelashes or eyebrows. You may have a similar experience if you export the file as FBX from another program such as Maya. What has happened is that the "mono channel output" setting has changed from alpha to RGB. The face looks like this after importing: [[File:ImpExp47.png]] <center>'''Figure 17'''</center> Fixing this problem is relatively straight forward, although it seems that sometimes the slate material editor needs resetting to properly show what has happened to the "Mono channel output" setting. The steps to repair this problem should be done for the eyes, eyebrows, eyelashes, and hair, each in turn. The 3 steps are as follows: 1. Left-click to select the eyes. Start the slate material editor by either using the menu '''Materials | Create/Edit Materials | Edit Selected Object's Material''', as before, or by simply clicking on material editor icon on the right of the icon bar. [[File:ImpExp48.png]] <center>'''Figure 18'''</center> 2. Sometimes it is useful to refresh the slate material editor by selecting all from the select menu (or shortcut CTRL-A) and then refreshing using '''Edit | Auto update selected Previews''' (or shortcut CTRL-U). This seems to make the status of the Mono Channel Output appear accurately in step 3. 3. Double click the blue_eye.png bitmap node (or the corresponding eye texture for you MakeHuman asset). Left click to check the "alpha" setting under Mono Channel Output. [[File:ImpExp49.png]] <center>'''Figure 19'''</center> Upon completing steps 1-3 for the eyes, the face will appear like this: [[File:ImpExp50a.png]] <center>'''Figure 20'''</center> Repeat the steps above to restore the Mono Channel Output setting to alpha for the eyebrows, the eyelashes, and the hair. You MakeHuman character should now again look essentially like the original that was in MakeHuman. [[File:ImpExp50b.png]] <center>'''Figure 21'''</center> == Importing MakeHuman Skeletons into 3DSMAX == TO BE WRITTEN 161a6391117ded2193f5d2f26aee47c4538b5e87 315 312 2015-07-28T20:36:33Z Robbaer 12 /* Fixing an Imported FBX file that was Exported after Fixing */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. During export the FBX exporter was set to ASCII and the scale was set to inches. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click on the front vieport to make it active and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. Here are the steps to fix the eyes: 1. Left-click the eyes to select them. [[File:ImpExp40.png]] <center>'''Figure 8'''</center> 2. From the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor.] Click on the slate editor window to make it active. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 9'''</center> 3. Drag the output connector of Blue_eye_png bitmap to make a second connection with the opacity input node of the high poly obj node (standard). [[File:ImpExp35.png]] <center>'''Figure 10'''</center> 4. Now double left-click on the Blue_eye_png bitmap node, or alternatively, double click on the words blue_eye_png (blue_eye.png) just to the right of the opacity row (maps column) of the right panel. [[File:ImpExp41.png]] <center>'''Figure 11'''</center> 5. Under bitmap parameters (right panel) set Mono Channel Output to alpha, set Alpha Source to Image Alpha, and confirm that RGB Channel Output is set to RGB. [[File:ImpExp42.png]] <center>'''Figure 12'''</center> The eyes should now appear as the natural color with which they were exported from MakeHuman. [[File:ImpExp43.png]] <center>'''Figure 13'''</center> == Fixing Transparency on the Other Assets == To fix the eyebrows, eyelashes, and hair, repeat steps 1 - 5 as described for the eyes with each other asset with that asset selected in turn. After completing the eyebrows, out model looks like this: [[File:ImpExp44.png]] <center>'''Figure 14'''</center> After completing the eyebrows and the eyelashes, out model looks like this: [[File:ImpExp45.png]] <center>'''Figure 15'''</center> After completing everything, out model looks very similar to the look it had upon export from MakeHuman. [[File:ImpExp46.png]] <center>'''Figure 16'''</center> == Repairing an Imported MakeHuman FBX file that was previously Exported after Fixing == At this point if you save the file using Autodesk 3DSMAX native.max format, it can be read in again with no additional correction necessary. However, if you export the file as in FBX format and then read the file back into a new session it will have semi-transparent hair and now eyelashes or eyebrows. You may have a similar experience if you export the file as FBX from another program such as Maya. What has happened is that the "mono channel output" setting has changed from alpha to RGB. The face looks like this after importing: [[File:ImpExp47.png]] <center>'''Figure 17'''</center> Fixing this problem is relatively straight forward, although it seems that sometimes the slate material editor needs resetting to properly show what has happened to the "Mono channel output" setting. The steps to repair this problem should be done for the eyes, eyebrows, eyelashes, and hair, each in turn. The 3 steps are as follows: 1. Left-click to select the eyes. Start the slate material editor by either using the menu '''Materials | Create/Edit Materials | Edit Selected Object's Material''', as before, or by simply clicking on material editor icon on the right of the icon bar. [[File:ImpExp48.png]] <center>'''Figure 18'''</center> 2. Sometimes it is useful to refresh the slate material editor by selecting all from the select menu (or shortcut CTRL-A) and then refreshing using '''Edit | Auto update selected Previews''' (or shortcut CTRL-U). This seems to make the status of the mono channel output appear accurately in step 3. 3. Double click the blue_eye.png bitmap node (or the corresponding eye texture for you MakeHuman asset). Left click to check the "alpha" setting under Mono channel Output. [[File:ImpExp49.png]] <center>'''Figure 19'''</center> Upon completing steps 1-3 for the eyes, the face will appear like this: [[File:ImpExp50.png]] <center>'''Figure 20'''</center> == Importing MakeHuman Skeletons into 3DSMAX == TO BE WRITTEN ce480457b0379460338de08e1d8d29130b2ade58 312 309 2015-07-28T18:17:34Z Robbaer 12 wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. During export the FBX exporter was set to ASCII and the scale was set to inches. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click on the front vieport to make it active and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. Here are the steps to fix the eyes: 1. Left-click the eyes to select them. [[File:ImpExp40.png]] <center>'''Figure 8'''</center> 2. From the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor.] Click on the slate editor window to make it active. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 9'''</center> 3. Drag the output connector of Blue_eye_png bitmap to make a second connection with the opacity input node of the high poly obj node (standard). [[File:ImpExp35.png]] <center>'''Figure 10'''</center> 4. Now double left-click on the Blue_eye_png bitmap node, or alternatively, double click on the words blue_eye_png (blue_eye.png) just to the right of the opacity row (maps column) of the right panel. [[File:ImpExp41.png]] <center>'''Figure 11'''</center> 5. Under bitmap parameters (right panel) set Mono Channel Output to alpha, set Alpha Source to Image Alpha, and confirm that RGB Channel Output is set to RGB. [[File:ImpExp42.png]] <center>'''Figure 12'''</center> The eyes should now appear as the natural color with which they were exported from MakeHuman. [[File:ImpExp43.png]] <center>'''Figure 13'''</center> == Fixing Transparency on the Other Assets == To fix the eyebrows, eyelashes, and hair, repeat steps 1 - 5 as described for the eyes with each other asset with that asset selected in turn. After completing the eyebrows, out model looks like this: [[File:ImpExp44.png]] <center>'''Figure 14'''</center> After completing the eyebrows and the eyelashes, out model looks like this: [[File:ImpExp45.png]] <center>'''Figure 15'''</center> After completing everything, out model looks very similar to the look it had upon export from MakeHuman. [[File:ImpExp46.png]] <center>'''Figure 16'''</center> == Fixing an Imported FBX file that was Exported after Fixing == At this point if you save the file using Autodesk 3DSMAX native.max format, it can be read in again with no additional correction necessary. However, if you export the file as in FBX format and then read the file back into a new session it will have semi-transparent hair and now eyelashes or eyebrows. You may have a similar experience if you export the file as FBX from another program such as Maya. What has happened is that the "mono channel output" setting has changed from alpha to RGB. The face looks like this after importing: [[File:ImpExp47.png]] <center>'''Figure 17'''</center> Fixing this problem is relatively straight forward although it seems that sometimes the slate material editor needs resetting to properly show what has happened to the "Mono chanel output" setting. The steps to repair this problem should be done for the eyes, eyebrows, eyelashes, and hair, each in turn. The steps are as follows: 1. == Importing MakeHuman Skeletons into 3DSMAX == TO BE WRITTEN 62abb76e5db495495cbc65dd8170566c8a1e3cbb 309 307 2015-07-26T23:59:50Z Robbaer 12 /* Restoring Transparency for the Eyes */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. During export the FBX exporter was set to ASCII and the scale was set to inches. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click on the front vieport to make it active and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. Here are the steps to fix the eyes: 1. Left-click the eyes to select them. [[File:ImpExp40.png]] <center>'''Figure 8'''</center> 2. From the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor.] Click on the slate editor window to make it active. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 9'''</center> 3. Drag the output connector of Blue_eye_png bitmap to make a second connection with the opacity input node of the high poly obj node (standard). [[File:ImpExp35.png]] <center>'''Figure 10'''</center> 4. Now double left-click on the Blue_eye_png bitmap node, or alternatively, double click on the words blue_eye_png (blue_eye.png) just to the right of the opacity row (maps column) of the right panel. [[File:ImpExp41.png]] <center>'''Figure 11'''</center> 5. Under bitmap parameters (right panel) set Mono Channel Output to alpha, set Alpha Source to Image Alpha, and confirm that RGB Channel Output is set to RGB. [[File:ImpExp42.png]] <center>'''Figure 12'''</center> The eyes should now appear as the natural color with which they were exported from MakeHuman. [[File:ImpExp43.png]] <center>'''Figure 13'''</center> == Fixing Transparency on the Other Assets == To fix the eyebrows, eyelashes, and hair, repeat steps 1 - 5 as described for the eyes with each other asset with that asset selected in turn. After completing the eyebrows, out model looks like this: [[File:ImpExp44.png]] <center>'''Figure 14'''</center> After completing the eyebrows and the eyelashes, out model looks like this: [[File:ImpExp45.png]] <center>'''Figure 15'''</center> After completing everything, out model looks very similar to the look it had upon export from MakeHuman. [[File:ImpExp46.png]] <center>'''Figure 16'''</center> At this point if you save the file using Autodesk 3DSMAX native.max format, it can be read in again with no additional correction necessary. however, if you export the file as in FBX format and then read the file back into a new session it will have semi-transparent hair and now eyelashes or eyebrows. The face looks like this: [[File:ImpExp47.png]] <center>'''Figure 17'''</center> To fix the assets complete the following steps: 1. TO BE WRITTEN == Importing MakeHuman Skeletons into 3DSMAX == TO BE WRITTEN f164087c4f212ded02adbba4d16dd14f18258911 307 306 2015-07-26T23:40:47Z Robbaer 12 wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. During export the FBX exporter was set to ASCII and the scale was set to inches. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click on the front vieport to make it active and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. Here are the steps to fix the eyes: 1. Left-click the eyes to select them. [[File:ImpExp40.png]] <center>'''Figure 8'''</center> 2. From the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor.] Click on the slate editor window to make it active. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 9'''</center> 3. Drag a connection between the output of the bitmap node and the Opacity input of the standard material node. In the panel on the right, click the little “+” to expand the Maps section. Then, still in the right panel, set the value of the newly checked opacity to 0. [[File:ImpExp36.png]] <center>'''Figure 10'''</center> 4. Now double left-click on the Blue_eye_png bitmap node, or alternatively, double click on the words blue_eye_png (bllue_eye.png) just to the right of the opacity row (maps column) of the right panel. [[File:ImpExp41.png]] <center>'''Figure 11'''</center> 5. Under bitmap parameters (right panel) set Mono Channel Output to alpha, set Alpha Source to Image Alpha, and confirm that RGB Channel Output is set to RGB. [[File:ImpExp42.png]] <center>'''Figure 12'''</center> The eyes should now appear as the natural color with which they were exported from MakeHuman. [[File:ImpExp43.png]] <center>'''Figure 13'''</center> == Fixing Transparency on the Other Assets == To fix the eyebrows, eyelashes, and hair, repeat steps 1 - 5 as described for the eyes with each other asset with that asset selected in turn. After completing the eyebrows, out model looks like this: [[File:ImpExp44.png]] <center>'''Figure 14'''</center> After completing the eyebrows and the eyelashes, out model looks like this: [[File:ImpExp45.png]] <center>'''Figure 15'''</center> After completing everything, out model looks very similar to the look it had upon export from MakeHuman. [[File:ImpExp46.png]] <center>'''Figure 16'''</center> At this point if you save the file using Autodesk 3DSMAX native.max format, it can be read in again with no additional correction necessary. however, if you export the file as in FBX format and then read the file back into a new session it will have semi-transparent hair and now eyelashes or eyebrows. The face looks like this: [[File:ImpExp47.png]] <center>'''Figure 17'''</center> To fix the assets complete the following steps: 1. TO BE WRITTEN == Importing MakeHuman Skeletons into 3DSMAX == TO BE WRITTEN e534dbf1bbc7f3e20337c363757e2a14e6a391e2 306 305 2015-07-26T23:38:58Z Robbaer 12 /* Fixing Transparency on the Other Assets */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. During export the FBX exporter was set to ASCII and the scale was set to inches. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click on the front vieport to make it active and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. Here are the steps to fix the eyes: 1. Left-click the eyes to select them. [[File:ImpExp40.png]] <center>'''Figure 8'''</center> 2. From the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor.] Click on the slate editor window to make it active. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 9'''</center> 3. Drag a connection between the output of the bitmap node and the Opacity input of the standard material node. In the panel on the right, click the little “+” to expand the Maps section. Then, still in the right panel, set the value of the newly checked opacity to 0. [[File:ImpExp36.png]] <center>'''Figure 10'''</center> 4. Now double left-click on the Blue_eye_png bitmap node, or alternatively, double click on the words blue_eye_png (bllue_eye.png) just to the right of the opacity row (maps column) of the right panel. [[File:ImpExp41.png]] <center>'''Figure 11'''</center> 5. Under bitmap parameters (right panel) set Mono Channel Output to alpha, set Alpha Source to Image Alpha, and confirm that RGB Channel Output is set to RGB. [[File:ImpExp42.png]] <center>'''Figure 12'''</center> The eyes should now appear as the natural color with which they were exported from MakeHuman. [[File:ImpExp43.png]] <center>'''Figure 13'''</center> == Fixing Transparency on the Other Assets == To fix the eyebrows, eyelashes, and hair, repeat steps 1 - 5 as described for the eyes with each other asset with that asset selected in turn. After completing the eyebrows, out model looks like this: [[File:ImpExp44.png]] <center>'''Figure 14'''</center> After completing the eyebrows and the eyelashes, out model looks like this: [[File:ImpExp45.png]] <center>'''Figure 15'''</center> After completing everything, out model looks very similar to the look it had upon export from MakeHuman. [[File:ImpExp46.png]] <center>'''Figure 16'''</center> At this point if you save the file using Autodesk 3DSMAX native.max format, it can be read in again with no additional correction necessary. however, if you export the file as in FBX format and then read the file back into a new session it will have semi-transparent hair and now eyelashes or eyebrows. The face looks like this: [[File:ImpExp47.png]] <center>'''Figure 17'''</center> To fix the assets complete the following steps: 1. TO BE WRITTEN 861fc1bafeac99473516c12911437d91d40d229a 305 304 2015-07-26T23:38:24Z Robbaer 12 /* Restoring Transparency for the Eyes */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. During export the FBX exporter was set to ASCII and the scale was set to inches. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click on the front vieport to make it active and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. Here are the steps to fix the eyes: 1. Left-click the eyes to select them. [[File:ImpExp40.png]] <center>'''Figure 8'''</center> 2. From the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor.] Click on the slate editor window to make it active. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 9'''</center> 3. Drag a connection between the output of the bitmap node and the Opacity input of the standard material node. In the panel on the right, click the little “+” to expand the Maps section. Then, still in the right panel, set the value of the newly checked opacity to 0. [[File:ImpExp36.png]] <center>'''Figure 10'''</center> 4. Now double left-click on the Blue_eye_png bitmap node, or alternatively, double click on the words blue_eye_png (bllue_eye.png) just to the right of the opacity row (maps column) of the right panel. [[File:ImpExp41.png]] <center>'''Figure 11'''</center> 5. Under bitmap parameters (right panel) set Mono Channel Output to alpha, set Alpha Source to Image Alpha, and confirm that RGB Channel Output is set to RGB. [[File:ImpExp42.png]] <center>'''Figure 12'''</center> The eyes should now appear as the natural color with which they were exported from MakeHuman. [[File:ImpExp43.png]] <center>'''Figure 13'''</center> == Fixing Transparency on the Other Assets == To fix the eyebrows, eyelashes, and hair, repeat steps 1 - 5 as described for the eyes with each other asset with that asset selected in turn. After completing the eyebrows, out model looks like this: [[File:ImpExp44.png]] <center>'''Figure 14'''</center> After completing the eyebrows and the eyelashes, out model looks like this: [[File:ImpExp45.png]] <center>'''Figure 15'''</center> After completing everything, out model looks very similar to the look it had upon export from MakeHuman. [[File:ImpExp46.png]] <center>'''Figure 16'''</center> At this point if you save the file using Autodesk 3DSMAX native.max format, it can be read in again with no additional correction necessary. however, if you export the file as in FBX format and then read the file back into a new session it will have semi-transparent hair and now eyelashes or eyebrows. The face looks like this: [[File:ImpExp47.png]] <center>'''Figure 17'''</center> To fix the assets complete the following steps: 1. TO BE WRITTEN acfe99ed52bfaa5e34e088977fc13f123e2be743 304 303 2015-07-26T23:36:35Z Robbaer 12 /* Fixing Transparency on the Other Assets */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. During export the FBX exporter was set to ASCII and the scale was set to inches. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click on the front vieport to make it active and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. Here are the steps to fix the eyes: 1. Left-click the eyes to select them. [[File:ImpExp40.png]] <center>'''Figure 8'''</center> 2. From the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor.] Click on the slate editor window to make it active. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 9'''</center> 3. Drag a connection between the output of the bitmap node and the Opacity input of the standard material node. In the panel on the right, click the little “+” to expand the Maps section. Then, still in the right panel, set the value of the newly checked opacity to 0. [[File:ImpExp36.png]] <center>'''Figure 10'''</center> 4. Now double left-click on the Blue_eye_png bitmap node, or alternatively, double click on the words blue_eye_png (bllue_eye.png) just to the right of the opacity row (maps column) of the right panel. [[File:ImpExp41.png]] <center>'''Figure 11'''</center> 5. Under bitmap parameters (right panel) set Mono Channel Output to alpha, set Alpha Source to Image Alpha, and confirm that RGB Channel Output is set to RGB. [[File:ImpExp42.png]] <center>'''Figure 12'''</center> The eyes should now appear as the natural color with which they were exported from MakeHuman. [[File:ImpExp43.png]] <center>'''Figure 13'''</center> == Fixing Transparency on the Other Assets == To fix the eyebrows, eyelashes, and hair, repeat steps 1 - 5 as described for the eyes with each other asset with that asset selected in turn. After completing the eyebrows, out model looks like this: [[File:ImpExp44.png]] <center>'''Figure 14'''</center> After completing the eyebrows and the eyelashes, out model looks like this: [[File:ImpExp45.png]] <center>'''Figure 15'''</center> After completing everything, out model looks very similar to the look it had upon export from MakeHuman. [[File:ImpExp46.png]] <center>'''Figure 16'''</center> At this point if you save the file using Autodesk 3DSMAX native.max format, it can be read in again with no additional correction necessary. however, if you export the file as in FBX format and then read the file back into a new session it will have semi-transparent hair and now eyelashes or eyebrows. The face looks like this: [[File:ImpExp47.png]] <center>'''Figure 17'''</center> To fix the assets complete the following steps: 1. TO BE WRITTEN c1a318f5aee3cb7a3ff36da1de1c5d4211fb138e 303 300 2015-07-26T23:28:42Z Robbaer 12 /* Fixing Transparency on the Other Assets */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. During export the FBX exporter was set to ASCII and the scale was set to inches. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click on the front vieport to make it active and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. Here are the steps to fix the eyes: 1. Left-click the eyes to select them. [[File:ImpExp40.png]] <center>'''Figure 8'''</center> 2. From the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor.] Click on the slate editor window to make it active. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 9'''</center> 3. Drag a connection between the output of the bitmap node and the Opacity input of the standard material node. In the panel on the right, click the little “+” to expand the Maps section. Then, still in the right panel, set the value of the newly checked opacity to 0. [[File:ImpExp36.png]] <center>'''Figure 10'''</center> 4. Now double left-click on the Blue_eye_png bitmap node, or alternatively, double click on the words blue_eye_png (bllue_eye.png) just to the right of the opacity row (maps column) of the right panel. [[File:ImpExp41.png]] <center>'''Figure 11'''</center> 5. Under bitmap parameters (right panel) set Mono Channel Output to alpha, set Alpha Source to Image Alpha, and confirm that RGB Channel Output is set to RGB. [[File:ImpExp42.png]] <center>'''Figure 12'''</center> The eyes should now appear as the natural color with which they were exported from MakeHuman. [[File:ImpExp43.png]] <center>'''Figure 13'''</center> == Fixing Transparency on the Other Assets == To fix the eyebrows, eyelashes, and hair, repeat steps 1 - 5 as described for the eyes with each other asset with that asset selected in turn. After completing the eyebrows, out model looks like this: [[File:ImpExp44.png]] <center>'''Figure 14'''</center> After completing the eyebrows and the eyelashes, out model looks like this: [[File:ImpExp45.png]] <center>'''Figure 15'''</center> After completing everything, out model looks very similar to the look it had upon export from MakeHuman. [[File:ImpExp46.png]] <center>'''Figure 16'''</center> At this point if you save the file using Autodesk 3DSMAX native.max format, it can be read in again with no additional correction necessary. however, if you export the file as in FBX format and then read the file back into a new session it will have semi-transparent hair and now eyelashes or eyebrows. The face looks like this: [[File:ImpExp47.png]] <center>'''Figure 17'''</center> To fix the assets complete the following steps: 1. ab4198c88a72a913b2f3c00854c21a6a8a6e8348 300 295 2015-07-26T23:03:38Z Robbaer 12 /* Units Considerations */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. During export the FBX exporter was set to ASCII and the scale was set to inches. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click on the front vieport to make it active and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. Here are the steps to fix the eyes: 1. Left-click the eyes to select them. [[File:ImpExp40.png]] <center>'''Figure 8'''</center> 2. From the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor.] Click on the slate editor window to make it active. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 9'''</center> 3. Drag a connection between the output of the bitmap node and the Opacity input of the standard material node. In the panel on the right, click the little “+” to expand the Maps section. Then, still in the right panel, set the value of the newly checked opacity to 0. [[File:ImpExp36.png]] <center>'''Figure 10'''</center> 4. Now double left-click on the Blue_eye_png bitmap node, or alternatively, double click on the words blue_eye_png (bllue_eye.png) just to the right of the opacity row (maps column) of the right panel. [[File:ImpExp41.png]] <center>'''Figure 11'''</center> 5. Under bitmap parameters (right panel) set Mono Channel Output to alpha, set Alpha Source to Image Alpha, and confirm that RGB Channel Output is set to RGB. [[File:ImpExp42.png]] <center>'''Figure 12'''</center> The eyes should now appear as the natural color with which they were exported from MakeHuman. [[File:ImpExp43.png]] <center>'''Figure 13'''</center> == Fixing Transparency on the Other Assets == To fix the eyebrows, eyelashes, and hair, repeat steps 1 - 5 as described for the eyes with each other asset with that asset selected in turn. After completing the eyebrows, out model looks like this: [[File:ImpExp44.png]] <center>'''Figure 14'''</center> After completing the eyebrows and the eyelashes, out model looks like this: [[File:ImpExp45.png]] <center>'''Figure 15'''</center> After completing everything, out model looks very similar to the look it had upon export from MakeHuman. [[File:ImpExp46.png]] <center>'''Figure 16'''</center> d032ffe3a841fe60f70e0c72ce16fa80da786aee 295 294 2015-07-26T22:43:05Z Robbaer 12 wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click on the front vieport to make it active and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. Here are the steps to fix the eyes: 1. Left-click the eyes to select them. [[File:ImpExp40.png]] <center>'''Figure 8'''</center> 2. From the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor.] Click on the slate editor window to make it active. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 9'''</center> 3. Drag a connection between the output of the bitmap node and the Opacity input of the standard material node. In the panel on the right, click the little “+” to expand the Maps section. Then, still in the right panel, set the value of the newly checked opacity to 0. [[File:ImpExp36.png]] <center>'''Figure 10'''</center> 4. Now double left-click on the Blue_eye_png bitmap node, or alternatively, double click on the words blue_eye_png (bllue_eye.png) just to the right of the opacity row (maps column) of the right panel. [[File:ImpExp41.png]] <center>'''Figure 11'''</center> 5. Under bitmap parameters (right panel) set Mono Channel Output to alpha, set Alpha Source to Image Alpha, and confirm that RGB Channel Output is set to RGB. [[File:ImpExp42.png]] <center>'''Figure 12'''</center> The eyes should now appear as the natural color with which they were exported from MakeHuman. [[File:ImpExp43.png]] <center>'''Figure 13'''</center> == Fixing Transparency on the Other Assets == To fix the eyebrows, eyelashes, and hair, repeat steps 1 - 5 as described for the eyes with each other asset with that asset selected in turn. After completing the eyebrows, out model looks like this: [[File:ImpExp44.png]] <center>'''Figure 14'''</center> After completing the eyebrows and the eyelashes, out model looks like this: [[File:ImpExp45.png]] <center>'''Figure 15'''</center> After completing everything, out model looks very similar to the look it had upon export from MakeHuman. [[File:ImpExp46.png]] <center>'''Figure 16'''</center> a04014c5d5f75f9aa0f4827cfbcb7927ba1827e7 294 291 2015-07-26T22:36:15Z Robbaer 12 /* Restoring Transparency for the Eyes */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click on the front vieport to make it active and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. Here are the steps to fix the eyes: 1. Left-click the eyes to select them. [[File:ImpExp40.png]] <center>'''Figure 8'''</center> 2. From the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor.] Click on the slate editor window to make it active. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 9'''</center> 3. Drag a connection between the output of the bitmap node and the Opacity input of the standard material node. In the panel on the right, click the little “+” to expand the Maps section. Then, still in the right panel, set the value of the newly checked opacity to 0. [[File:ImpExp36.png]] <center>'''Figure 10'''</center> 4. Now double left-click on the Blue_eye_png bitmap node, or alternatively, double click on the words blue_eye_png (bllue_eye.png) just to the right of the opacity row (maps column) of the right panel. [[File:ImpExp41.png]] <center>'''Figure 11'''</center> 5. Under bitmap parameters (right panel) set Mono Channel Output to alpha, set Alpha Source to Image Alpha, and confirm that RGB Channel Output is set to RGB. [[File:ImpExp42.png]] <center>'''Figure 12'''</center> The eyes should now appear as the natural color with which they were exported from MakeHuman. [[File:ImpExp43.png]] <center>'''Figure 13'''</center> 0c062b6f666ff77714c39f3d1349d7c574ba12f5 291 288 2015-07-26T21:02:33Z Robbaer 12 /* Restoring Transparency for the Eyes */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click on the front vieport to make it active and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. Here are the steps to fix the eyes: 1. Left-click the eyes to select them. [[File:ImpExp40.png]] <center>'''Figure 8'''</center> 2. From the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor.] Click on the slate editor window to make it active. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 9'''</center> 3. Drag a connection between the output of the bitmap node and the Opacity input of the standard material node. In the panel on the right, click the little “+” to expand the Maps section. Then, still in the right panel, set the value of the newly checked opacity to 0. [[File:ImpExp36.png]] <center>'''Figure 10'''</center> 4. Now double left-click on the Blue_eye_png bitmap node, or alternatively, double click on the words blue_eye_png (bllue_eye.png) just to the right of the opacity row (maps column) of the right panel. [[File:ImpExp41.png]] <center>'''Figure 11'''</center> 5. Under bitmap parameters (right panel) set Mono Channel Output to alpha, set Alpha Source to Image Alpha, and confirm that RGB Channel Output is set to RGB. 9ad72685571f03a0e343cdfcaabaa37d6c426943 288 287 2015-07-26T20:25:22Z Robbaer 12 /* Restoring Transparency for the Eyes */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click on the front vieport to make it active and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. Here are the steps to fix the eyes: 1. Left-click the eyes to select them (right panel above), and from the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. [[File:ImpExp40.png]] <center>'''Figure 7'''</center> 2. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 8'''</center> 3. Drag a connection between the output of the bitmap node and the Opacity input of the standard material node. In the panel on the right, click the little “+” to expand the Maps section. Then, still in the right panel, set the value of the newly checked opacity to 0. [[File:ImpExp36.png]] <center>'''Figure 9'''</center> 0eb0af46a765c3ba395404d90ebb70d4d9e902f0 287 286 2015-07-26T20:23:17Z Robbaer 12 /* Importing FBX into 3DSMax */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click on the front vieport to make it active and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. The left pane of the image below shows the face close-up of the imported image after hiding the skeleton elements. [[File:ImpExp30.png]] <center>'''Figure 6'''</center> Here are the steps to fix the eyes: 1. Left-click the eyes to select them (right panel above), and from the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. [[File:ImpExp32.png]] <center>'''Figure 7'''</center> 2. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 8'''</center> 3. Drag a connection between the output of the bitmap node and the Opacity input of the standard material node. In the panel on the right, click the little “+” to expand the Maps section. Then, still in the right panel, set the value of the newly checked opacity to 0. [[File:ImpExp36.png]] <center>'''Figure 9'''</center> 2659bba465a58874f9520068eac5821a7dff6932 286 281 2015-07-26T20:20:14Z Robbaer 12 /* Importing FBX into 3DSMax */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. [[File:ImpExp37.png]] <center>'''Figure 5'''</center> To maximize the front viewport, left click it and type ALT-W. Use the scroll wheel and middle mouse drag to zoom in on the face. [[File:ImpExp38.png]] <center>'''Figure 6'''</center> Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display icon and click on the put a check "helpers" in the "Hide by Category" panel. [[File:ImpExp39.png]] <center>'''Figure 7'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. The left pane of the image below shows the face close-up of the imported image after hiding the skeleton elements. [[File:ImpExp30.png]] <center>'''Figure 6'''</center> Here are the steps to fix the eyes: 1. Left-click the eyes to select them (right panel above), and from the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. [[File:ImpExp32.png]] <center>'''Figure 7'''</center> 2. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 8'''</center> 3. Drag a connection between the output of the bitmap node and the Opacity input of the standard material node. In the panel on the right, click the little “+” to expand the Maps section. Then, still in the right panel, set the value of the newly checked opacity to 0. [[File:ImpExp36.png]] <center>'''Figure 9'''</center> eace17e0b8a0aa6c678c383dcaf1a2cd36b53cf4 281 280 2015-07-26T14:01:38Z Robbaer 12 /* Restoring Transparency for the Eyes */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. To maximize the front viewport, left click it and type ALT-W. Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display tab on the right panel and click on the Hide Unselected button. Everything disappears from the viewport. Then on the same panel, click on Unhide by Name. In the Unhide Objects dialog that appears, ctrl-left click on each MakeHuman asset except the skeleton grouping to highlight them. Unhide these items by clicking the Unhide button at the bottom of this dialog. [[File:ImpExp28.png]] <center>'''Figure 5'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. The left pane of the image below shows the face close-up of the imported image after hiding the skeleton elements. [[File:ImpExp30.png]] <center>'''Figure 6'''</center> Here are the steps to fix the eyes: 1. Left-click the eyes to select them (right panel above), and from the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. [[File:ImpExp32.png]] <center>'''Figure 7'''</center> 2. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 8'''</center> 3. Drag a connection between the output of the bitmap node and the Opacity input of the standard material node. In the panel on the right, click the little “+” to expand the Maps section. Then, still in the right panel, set the value of the newly checked opacity to 0. [[File:ImpExp36.png]] <center>'''Figure 9'''</center> d230ae969a399395f581d0bb6be0628d28b4b998 280 279 2015-07-26T13:56:07Z Robbaer 12 /* Restoring Transparency for the Eyes */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. To maximize the front viewport, left click it and type ALT-W. Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display tab on the right panel and click on the Hide Unselected button. Everything disappears from the viewport. Then on the same panel, click on Unhide by Name. In the Unhide Objects dialog that appears, ctrl-left click on each MakeHuman asset except the skeleton grouping to highlight them. Unhide these items by clicking the Unhide button at the bottom of this dialog. [[File:ImpExp28.png]] <center>'''Figure 5'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. The left pane of the image below shows the face close-up of the imported image after hiding the skeleton elements. [[File:ImpExp30.png]] <center>'''Figure 6'''</center> Here are the steps to fix the eyes: 1. Left-click the eyes to select them (right panel above), and from the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. [[File:ImpExp32.png]] <center>'''Figure 7'''</center> 2. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp34.png]] <center>'''Figure 8'''</center> [[File:ImpExp35.png]] <center>'''Figure 9'''</center> [[File:ImpExp36.png]] <center>'''Figure 2'''</center> b598457454be5235e8aebb0752570375af0be91f 279 278 2015-07-26T13:29:00Z Robbaer 12 /* Units Considerations */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. To maximize the front viewport, left click it and type ALT-W. Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display tab on the right panel and click on the Hide Unselected button. Everything disappears from the viewport. Then on the same panel, click on Unhide by Name. In the Unhide Objects dialog that appears, ctrl-left click on each MakeHuman asset except the skeleton grouping to highlight them. Unhide these items by clicking the Unhide button at the bottom of this dialog. [[File:ImpExp28.png]] <center>'''Figure 5'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. The left pane of the image below shows the face close-up of the imported image after hiding the skeleton elements. [[File:ImpExp30.png]] <center>'''Figure 6'''</center> Here are the steps to fix the eyes: 1. Left-click the eyes to select them (right panel above), and from the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. [[File:ImpExp32.png]] <center>'''Figure 7'''</center> 2. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp33.png]] <center>'''Figure 8'''</center> [[File:ImpExp34.png]] <center>'''Figure 9'''</center> [[File:ImpExp/35.png]] <center>'''Figure 2'''</center> [[File:ImpExp36.png]] <center>'''Figure 2'''</center> 7b91c5105e225ced1a5c93076c276936da0b88f0 278 277 2015-07-26T13:23:49Z Robbaer 12 /* Restoring Transparency for the Eyes */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. To maximize the front viewport, left click it and type ALT-W. Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display tab on the right panel and click on the Hide Unselected button. Everything disappears from the viewport. Then on the same panel, click on Unhide by Name. In the Unhide Objects dialog that appears, ctrl-left click on each MakeHuman asset except the skeleton grouping to highlight them. Unhide these items by clicking the Unhide button at the bottom of this dialog. [[File:ImpExp28.png]] <center>'''Figure 5'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. The left pane of the image below shows the face close-up of the imported image after hiding the skeleton elements. [[File:ImpExp30.png]] <center>'''Figure 6'''</center> Here are the steps to fix the eyes: 1. Left-click the eyes to select them (right panel above), and from the menus select, Materials | Create/Edit Materials | Edit selected Object’s Material. [[File:ImpExp32.png]] <center>'''Figure 7'''</center> 2. The Slate Material Editor will open with the [high poly] eyes node selected. [Note: If the compact material editor opens instead, use the Mode menu to go to the Slate Material Editor. Spin the scroll wheel toward you until you see the texture map (Blue_eye_png in this case) attached to the Diffuse node on the eye material. Shift-middle mouse drag may help you center this pair in your viewport. [[File:ImpExp33.png]] <center>'''Figure 8'''</center> [[File:ImpExp34.png]] <center>'''Figure 9'''</center> [[File:ImpExp/35.png]] <center>'''Figure 2'''</center> [[File:ImpExp36.png]] <center>'''Figure 2'''</center> bbca8a9a5a5cc57a7aff6aeb30b243c411e6a903 277 276 2015-07-25T21:47:21Z Robbaer 12 wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. To maximize the front viewport, left click it and type ALT-W. Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display tab on the right panel and click on the Hide Unselected button. Everything disappears from the viewport. Then on the same panel, click on Unhide by Name. In the Unhide Objects dialog that appears, ctrl-left click on each MakeHuman asset except the skeleton grouping to highlight them. Unhide these items by clicking the Unhide button at the bottom of this dialog. [[File:ImpExp28.png]] <center>'''Figure 5'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. The left pane of the image below shows the face close-up of the imported image after hiding the skeleton elements. [[File:ImpExp30.png]] <center>'''Figure 7'''</center> [[File:ImpExp30.png]] <center>'''Figure 2'''</center> [[File:ImpExp31.png]] <center>'''Figure 2'''</center> [[File:ImpExp32.png]] <center>'''Figure 2'''</center> [[File:ImpExp33.png]] <center>'''Figure 2'''</center> [[File:ImpExp34.png]] <center>'''Figure 2'''</center> [[File:ImpExp/35.png]] <center>'''Figure 2'''</center> [[File:ImpExp36.png]] <center>'''Figure 2'''</center> d65847aace2b597f9c27752680391ff02d24607c 276 267 2015-07-25T21:42:22Z Robbaer 12 /* Units Considerations */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> [[File:ImpExp26.png]] <center>'''Figure 2'''</center> [[File:ImpExp27.png]] <center>'''Figure 2'''</center> [[File:ImpExp28.png]] <center>'''Figure 2'''</center> [[File:ImpExp29.png]] <center>'''Figure 2'''</center> [[File:ImpExp30.png]] <center>'''Figure 2'''</center> [[File:ImpExp31.png]] <center>'''Figure 2'''</center> [[File:ImpExp32.png]] <center>'''Figure 2'''</center> [[File:ImpExp33.png]] <center>'''Figure 2'''</center> [[File:ImpExp34.png]] <center>'''Figure 2'''</center> [[File:ImpExp/325.png]] <center>'''Figure 2'''</center> [[File:ImpExp36.png]] <center>'''Figure 2'''</center> == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. To maximize the front viewport, left click it and type ALT-W. Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display tab on the right panel and click on the Hide Unselected button. Everything disappears from the viewport. Then on the same panel, click on Unhide by Name. In the Unhide Objects dialog that appears, ctrl-left click on each MakeHuman asset except the skeleton grouping to highlight them. Unhide these items by clicking the Unhide button at the bottom of this dialog. [[File:ImpExp28.png]] <center>'''Figure 5'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. The left pane of the image below shows the face close-up of the imported image after hiding the skeleton elements. [[File:ImpExp29.png]] <center>'''Figure 6'''</center> [[File:ImpExp30.png]] <center>'''Figure 7'''</center> 14d14b3a6377a4402b6f443b827144c3b39afbc8 267 266 2015-07-25T21:26:56Z Robbaer 12 wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. To maximize the front viewport, left click it and type ALT-W. Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display tab on the right panel and click on the Hide Unselected button. Everything disappears from the viewport. Then on the same panel, click on Unhide by Name. In the Unhide Objects dialog that appears, ctrl-left click on each MakeHuman asset except the skeleton grouping to highlight them. Unhide these items by clicking the Unhide button at the bottom of this dialog. [[File:ImpExp28.png]] <center>'''Figure 5'''</center> == Restoring Transparency for the Eyes == You should now have a relatively unobstructed view of the imported MakeHuman character. You will notice upon zooming in that there are significant issues with the transparency for eyes, eyelashes, eyebrows, and hair. We will illustrate the steps for the eyes. They can be repeated for the other 3 assets that use transparent materials. The left pane of the image below shows the face close-up of the imported image after hiding the skeleton elements. [[File:ImpExp29.png]] <center>'''Figure 6'''</center> [[File:ImpExp30.png]] <center>'''Figure 7'''</center> 653a9d93424fa2a2b4ea60c63e43e1efacc3eb28 266 265 2015-07-25T21:14:48Z Robbaer 12 /* Importing FBX into 3DSMax */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward].</font> When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. To maximize the front viewport, left click it and type ALT-W. Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display tab on the right panel and click on the Hide Unselected button. Everything disappears from the viewport. Then on the same panel, click on Unhide by Name. In the Unhide Objects dialog that appears, ctrl-left click on each MakeHuman asset except the skeleton grouping to highlight them. Unhide these items by clicking the Unhide button at the bottom of this dialog. 34144b142486322c3a525e41c168394b9cf5167e 265 264 2015-07-25T21:11:35Z Robbaer 12 wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> By default, the exported file will be found in ~/makehuman/v1/exports/SomeName.fbx (where ~ is the user home directory). The textures for the exported file will be found in a subfolder called textures of the folder where the .fbx file is stored. 3DSMax can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <font color='red'>][RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]. When the file is initially imported into 3DSMax it looks like this: [[File:ImpExp27.png]] <center>'''Figure 4'''</center> Click on the word [wireframe] in the top left of a viewport and choose realistic (or hardware in older versions) to see the material displayed with maps. The shortcut key is SHIFT-F3. To maximize the front viewport, left click it and type ALT-W. Finally, it is helpful to hide the rig of the MakeHuman skeleton. In the panel on the right, select the Display tab on the right panel and click on the Hide Unselected button. Everything disappears from the viewport. Then on the same panel, click on Unhide by Name. In the Unhide Objects dialog that appears, ctrl-left click on each MakeHuman asset except the skeleton grouping to highlight them. Unhide these items by clicking the Unhide button at the bottom of this dialog. 1a6aba1c9b5f63d7eed4f6efe27e055796a952f1 264 263 2015-07-25T21:06:35Z Robbaer 12 /* Units Considerations */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> In the Units setup dialog choose “System Units”, and in the System Unit Setup dialog choose your desired units. Notice that in the figure below that although the “system units” are set to the default units of inches (right dialog), the display units are set to meters (radio button next to metric in left dialog). Imported assets are scaled into system units. System units are then converted to display units for the purposes of the 3DSMax ruler display, but remain stored internally in original system units. [[File:ImpExp25.png]] <center>'''Figure 2'''</center> With this understanding of how to control the 3DSMax side of things, let’s import our MakeHuman character. We will leave 3DSMax set to inches, and export our MakeHuman FBX file using inches as units as well. == Importing FBX into 3DSMax == From the 3DSMax application menu choose Import |Import, and navigate to FBX file you exported from MakeHuman using inches. [[File:ImpExp26.png]] <center>'''Figure 3'''</center> [[File:ImpExp27.png]] <center>'''Figure 4'''</center> c59d0c13b9489fe931cca8aa14593a7eb2d4670f 263 261 2015-07-25T20:58:37Z Robbaer 12 wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: [[File:ImpExp23.png]] <center>'''Figure 1'''</center> [[File:ImpExp24.png]] <center>'''Figure 2'''</center> [[File:ImpExp25.png]] <center>'''Figure 3'''</center> [[File:ImpExp26.png]] <center>'''Figure 4'''</center> 3d509f3bf64a54a93529cdc2d32ca9a4397cb247 261 260 2015-07-25T20:51:24Z Robbaer 12 /* Introduction and Import */ wikitext text/x-wiki == Units Considerations == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: <center>'''Figure 1'''</center> 37f24f17e4b1e38ad7ad98cecd038b05bd5b35d5 260 256 2015-07-25T20:49:26Z Robbaer 12 wikitext text/x-wiki == Introduction and Import == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions [http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-7ECD378E-5A3F-4722-B32B-8A0EB581824A-htm.html][http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124-htm.html]. If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: <center>'''Figure 1'''</center> 9697293177301ba389add74293064bea90ed3372 256 2015-07-25T19:40:39Z Robbaer 12 Created page with " == Introduction and Import == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use..." wikitext text/x-wiki == Introduction and Import == We will use the file created in the “Illustrating the export/import process” section to illustrate how to get your MakeHuman ready for use in Autodesk 3DSMax. Autodesk 3DSMax has two types of units: “system units” and “display units”. By default, Autodesk uses inches as its “system units”. It is essential that 3DSMax “system units” be set to their FINAL value BEFORE importing any asset. Once set, do not change them again for that scene. If a 1 cubic foot cube object is imported, and then the system units are changed from inches to meters, the cube will become 1 cubic meter in volume. The use of imperial inches as system units can complicate the process of FBX export/import, but if you export from MakeHuman using inches and import into 3DSMax using “automatic settings”, things should work well. <font color='red'>[edit RWB: this needs rechecking after finalizing MH unit handing for FBX].</font> This is the straight forward approach for architectural work in the U.S. where imperial units are common. The Autodesk web site discourages changing the system units of 3DSMax from default, but makes an explicit exception when importing assets from sources constructed using metric dimensions ( ). If you are importing many metric objects into 3DSMax from other programs, it may make sense to change your “system units” to either centimeters or meters, and export your MakeHuman character in FBX format with the corresponding units. System units and Display units in Autodesk 3DSMax can be accessed from the Customize | Customization | Unit Setup menu: 2bd71770ab973aa5251043f8930c1f460ec95198 Moving Assets into Autodesk Maya 0 98 262 242 2015-07-25T20:55:52Z Robbaer 12 /* Re-importing Intermediate FBX files from Maya */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). == Importing and Initial Setup == When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] <CENTER>'''Figure 1'''</CENTER> The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] <CENTER>'''Figure 2'''</CENTER> Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] <CENTER>'''Figure 3'''</CENTER> The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the '''eyes, eyelashes, eyebrows, and hair''' is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] <CENTER>'''Figure 4'''</CENTER> ==Basic Repair of Eye Transparency == Once in front view, left click to select the eye meshes, and perform the following steps: [[File:ImpExp08.png]] <CENTER>'''Figure 5'''</CENTER> 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] <CENTER>'''Figure 6'''</CENTER> 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] <CENTER>'''Figure 7'''</CENTER> 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] <CENTER>'''Figure 8'''</CENTER> 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] <CENTER>'''Figure 9'''</CENTER> 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 10 below). Uncheck it if it is checked. [[File:ImpExp14.png]] <CENTER>'''Figure 10'''</CENTER> The eyes in our image now look like this: [[File:ImpExp15.png]] <CENTER>'''Figure 11'''</CENTER> ---- == Repeat for other Transparent Assets== You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] <CENTER>'''Figure 12'''</CENTER> ---- == Raytrace Shadows== Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] <CENTER>'''Figure 13'''</CENTER> At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. == Re-importing Intermediate FBX files from Maya== If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] <CENTER>'''Figure 14'''</CENTER> You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each in turn, as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero (refer back to figure 13). [[File:ImpExp22.png]] <CENTER>'''Figure 15'''</CENTER> When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. == Adopting MakeHuman Skeletons to Maya == TO BE WRITTEN ---- ed8f7bc56b76a5db30f8dd15f4d6763320565b35 242 241 2015-07-25T18:53:08Z Robbaer 12 /* Adopting MakeHuman Skeletons to Maya */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). == Importing and Initial Setup == When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] <CENTER>'''Figure 1'''</CENTER> The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] <CENTER>'''Figure 2'''</CENTER> Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] <CENTER>'''Figure 3'''</CENTER> The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the '''eyes, eyelashes, eyebrows, and hair''' is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] <CENTER>'''Figure 4'''</CENTER> ==Basic Repair of Eye Transparency == Once in front view, left click to select the eye meshes, and perform the following steps: [[File:ImpExp08.png]] <CENTER>'''Figure 5'''</CENTER> 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] <CENTER>'''Figure 6'''</CENTER> 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] <CENTER>'''Figure 7'''</CENTER> 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] <CENTER>'''Figure 8'''</CENTER> 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] <CENTER>'''Figure 9'''</CENTER> 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 10 below). Uncheck it if it is checked. [[File:ImpExp14.png]] <CENTER>'''Figure 10'''</CENTER> The eyes in our image now look like this: [[File:ImpExp15.png]] <CENTER>'''Figure 11'''</CENTER> ---- == Repeat for other Transparent Assets== You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] <CENTER>'''Figure 12'''</CENTER> ---- == Raytrace Shadows== Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] <CENTER>'''Figure 13'''</CENTER> At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. == Re-importing Intermediate FBX files from Maya== If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] <CENTER>'''Figure 14'''</CENTER> You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero (refer to figure 13). [[File:ImpExp22.png]] <CENTER>'''Figure 15'''</CENTER> When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. == Adopting MakeHuman Skeletons to Maya == TO BE WRITTEN ---- db95446314c46e84ff7d01dc019b480b1acd91ef 241 240 2015-07-25T18:45:02Z Robbaer 12 /* Moving Assets into Autodesk Maya */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). == Importing and Initial Setup == When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] <CENTER>'''Figure 1'''</CENTER> The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] <CENTER>'''Figure 2'''</CENTER> Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] <CENTER>'''Figure 3'''</CENTER> The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the '''eyes, eyelashes, eyebrows, and hair''' is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] <CENTER>'''Figure 4'''</CENTER> ==Basic Repair of Eye Transparency == Once in front view, left click to select the eye meshes, and perform the following steps: [[File:ImpExp08.png]] <CENTER>'''Figure 5'''</CENTER> 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] <CENTER>'''Figure 6'''</CENTER> 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] <CENTER>'''Figure 7'''</CENTER> 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] <CENTER>'''Figure 8'''</CENTER> 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] <CENTER>'''Figure 9'''</CENTER> 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 10 below). Uncheck it if it is checked. [[File:ImpExp14.png]] <CENTER>'''Figure 10'''</CENTER> The eyes in our image now look like this: [[File:ImpExp15.png]] <CENTER>'''Figure 11'''</CENTER> ---- == Repeat for other Transparent Assets== You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] <CENTER>'''Figure 12'''</CENTER> ---- == Raytrace Shadows== Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] <CENTER>'''Figure 13'''</CENTER> At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. == Re-importing Intermediate FBX files from Maya== If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] <CENTER>'''Figure 14'''</CENTER> You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero (refer to figure 13). [[File:ImpExp22.png]] <CENTER>'''Figure 15'''</CENTER> When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. == '''Adopting MakeHuman Skeletons to Maya''' == TO BE WRITTEN c0296c07670999262bfc1204262e6aa99b9396dc 240 2015-07-25T18:36:07Z Robbaer 12 Created page with "==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for..." wikitext text/x-wiki ==Moving Assets into Autodesk Maya== We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The FBX export settings used for Maya import should include setting the scale units to centimeters on export. Maya can import either ASCII or binary FBX files, so either type of export can be used for MakeHuman export. <nowiki>[RWB Note: as of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward]</nowiki>. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). '''Importing and Initial Setup''' When the file is initially imported into Maya it looks like this: [[File:ImpExp03.png]] <CENTER>'''Figure 1'''</CENTER> The only color in the viewport is the shoes which had a simple diffuse material which was not associated a texture. By clicking the textured icon at the top of the viewport, the viewport shows a preview of how the rendered, textured image would appear: [[File:ImpExp04.png]] <CENTER>'''Figure 2'''</CENTER> Holding down Alt and scrolling with the middle mouse wheel allows us to zoom in and see the problems with the imported eyes, eyelashes, eyebrows, and possibly the hair: [[File:ImpExp06.png]] <CENTER>'''Figure 3'''</CENTER> The thin lines on the face are an artifact of having included the facial rig by choosing the default skeleton. The process of fixing the '''eyes, eyelashes, eyebrows, and hair''' is the same in each case. We must tell Maya to use transparency from the corresponding alpha channel when rendering the corresponding mesh. It can be hard to select the facial mesh objects in perspective view so it is advisable to go into orthographic front view. One way to do this is with the panel menu just above the viewport. [[File:ImpExp07.png]] <CENTER>'''Figure 4'''</CENTER> '''Basic Repair of Eye Transparency''' Once in front view, left click to select the eye meshes, and perform the following steps: [[File:ImpExp08.png]] <CENTER>'''Figure 5'''</CENTER> 1. In the attribute editor on the right side of the screen, use the right arrow key to make sure the right-most tab is visible and click it to show the corresponding attributes. [[File:ImpExp09.png]] <CENTER>'''Figure 6'''</CENTER> 2. In the phong shader section, open the Common Material Attributes section and click on the checkered button to the right of transparency. [[File:ImpExp10.png]] <CENTER>'''Figure 7'''</CENTER> 3. In the Create Render Node dialog box that pops up, click on file. [[File:ImpExp11.png]] <CENTER>'''Figure 8'''</CENTER> 4. The checkered button next to transparency (see Figure 7) turns into an arrow, [[File:ImpExp12.png]] which you can click to allow the attribute editor to locate the texture map for your eyes. In our example, this texture is called blue_eyes.png. You navigate to this file by left clicking on the yellow folder file attributes section as shown in the image below: [[File:ImpExp13.png]] <CENTER>'''Figure 9'''</CENTER> 5. This step for transparency will probably will NOT be needed if you import straight from MakeHuman, but it may be needed if you do intermediate work in another program like 3DSMax. Open the color balance section on the same file1 tab of the attribute editor and verify that “Alpha is Luminance” is unchecked (Figure 10 below). Uncheck it if it is checked. [[File:ImpExp14.png]] <CENTER>'''Figure 10'''</CENTER> The eyes in our image now look like this: [[File:ImpExp15.png]] <CENTER>'''Figure 11'''</CENTER> ---- '''Repeat for other Transparent Assets''' You need to '''repeat steps 1-5''' after selecting the '''''eyebrows''''' in the viewport, after selecting the '''''eyelashes''''' in the viewport, and after selecting the '''''hair''''' in the viewport. When we finished these steps on each of the assets of our test model, the face is a nice approximation of what we started with in MakeHuman and looks like this: [[File:ImpExp16.png]] <CENTER>'''Figure 12'''</CENTER> ---- '''Raytrace Shadows''' Depending on the lighting you are using in Maya, you might have one additional adjustment to make. To avoid transparency shadows, it is necessary to return to the phong section of the attribute editor by left clicking on the eyes in the viewport. In the phong shader section, open the raytrace options panel and move the shadow attenuation slider from its default of 0.5 to zero. [[File:ImpExp18.png]] <CENTER>'''Figure 13'''</CENTER> At this point the MakeHuman model can be saved in standard Maya .mb binary file and easily brought back into Maya. '''Re-importing "Fixed MakeHuman Assets" from Maya after saving in FBX format''' If the file is exported from Maya as an FBX file and read back into Maya, it imports with partially transparent assets and will look like this: [[File:ImpExp20.png]] <CENTER>'''Figure 14'''</CENTER> You may also see partially transparent assets if your asset pipeline involves an intermediate program between MakeHuman and Maya and you use FBX to import the workflow into Maya. To once again restore it to its intended look, '''take the eyes, eyelashes, eyebrows, and hair, and fix each as follows:''' 1. Select the asset by left clicking on it, then click the right most tab in the asset editor panel on the right side of the screen. Click the small arrow to the right of the transparency slider. 2. On the file tab that appears, open the Color Balance section and uncheck alpha Is Luminance. 3. It may also be necessary to click each of the four assets and under the Raytrace Options section of the Phong shader in the Attributes editor, change the shadow attenuation slide back to zero (refer to figure 13). [[File:ImpExp22.png]] <CENTER>'''Figure 15'''</CENTER> When you have re-done these steps for each of the four transparent MakeHuman assets the character should once again look like it did in MakeHuman. '''Adopting MakeHuman Skeletons to Maya''' TO BE WRITTEN 7f749bc56129f3aea7cda985cf966c70d8b8a778 Moving Assets into Blender 0 126 2146 1616 2022-11-13T16:34:54Z Coz 122 Fixed broken ACCAD-BHV link wikitext text/x-wiki == Introduction == ''Note that the information in this page is somewhat outdated, and that you may be better off using MPFB, see [[FAQ: What is MPFB (MakeHuman Plugin For Blender)?]]'' We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == The appearance of the MakeHuman model in the Blender Internal Renderer will depend on a number of things that will include transparency settings for materials, choice of lighting type, and shadow settings. We will illustrate this by first changing the default point light to a hemi light. Right click on the point lamp in the viewport and in the right properties panel select the lamp tab and choose hemi (Figure 4). [[File:ImpExp55a.png]] <center>'''Figure 4'''</center> To make transparent objects (eyes, eyebrows, eyelashes, and hair) render properly in the Blender Internal render engine, we need to change some settings on the material tab of each object and the material tab of each object. We will start with the material tab. The two panels that require adjustment are the transparency and shadow panels. Start by selecting the material tab in the properties panel (figure 5). [[File:ImpExp55.png]] <center>'''Figure 5'''</center> '''Step 1.''' Right click on one of the eyes in the 3D viewport to select them. In the transparency panel, set both the alpha and specular sliders to 0 (Figure 6). '''Step 2.''' In the shadow panel, check 'Receive tranparent' (figure 7) <table> <tr><td>[[File:ImpExp56.png]]</td><td>[[File:ImpExp57.png]]</td> <tr><td><center>'''Figure 6'''</center></td><td><center>'''Figure 7'''</center></td></tr> </table> Now go to the texture tab of the properties editor (checkered tab) and open the Influence panel (Figure 8). [[File:ImpExp58.png]] <center>'''Figure 8: '''</center> '''Step 3.''' On the influence panel check alpha (Figure 9). Leave the value at its default of 1.0. [[File:ImpExp59.png]] <center>'''Figure 9: '''</center> After completing these three steps, the eyes should be transparent (Figure 10) [[File:ImpExp60.png]] <center>'''Figure 10: '''</center> Repeating steps 1-3, in turn, for the eyebrows, eyelashes and hair, respectively, should produce results similar to the panels of Figure 11. [[File:ImpExp61.png]] <center>'''Figure 11: '''</center> When rendered with the Blender internal engine the image should look similar to the original human that was exported. [[File:ImpExp62.png]] <center>'''Figure 12: '''</center> == Adapting to Different Light Sources for Blender Internal == If we now right click on the hemi lamp in the scene, and restore it back to the default point lamp type in the lamp properties panel, we are now faced with additional shadow problems. In this example, the point lamp is the single source of illumination. Note that, depending where your point lamp is located, it may be necessary to turn up the point lamp intensity to produce a bright enough render. The hard shadows from this lamp produce unreal darkening shadows of the eyelashes and eyelids when rendered with Blender Internal engine. The look is unlikely to be usable for any real purpose (Figure 13) [[File:ImpExp63.png]] <center>'''Figure 13: '''</center> To make the eyelashes, eyebrows, and hair appear realistic, it is necessary to let the skin base mesh receive shadows. If you used collada to export and import into Blender, the skin name in the Outliner panel will end with '...-base.obj'. Select the skin by either right clicking directly on the skin in the 3D viewport, or by clicking on the '...base.obj' name in the outliner panel. In the properties editor, select the Materials tab and check 'Receive Transparency' in the shadow panel (Figure 14). The eyebrows and eyelashes (and sometimes hair) will now appear realistic, albeit with hard shadows (Figure 15). <table> <tr><td><center>[[File:ImpExp64.png]]</center></td> <td><center>[[File:ImpExp65.png]] </center></td></tr> <tr><td><center>'''Figure 14 '''</center> </td> <td> <center>'''Figure 15: '''</center></td></tr> </table> If the hard shadows are inconsistent with the look you hoped for (Figure 15 and Figure 16, top), it is possibly to fix this. For eyebrows, eyelashes, and hair you need to turn off cast on the shadow panel of the materials tab of the properties editor. After doing this, the shadow effect will be similar to what we got with the hemi lamp and what the human originally looked like when exported from MakeHuman. [[File:ImpExp66.png]] <center>'''Figure 16: '''</center> Blender internal render engine is the default still with Blender 2.75a, but Blender Cycles has rapidly become the render engine of choice for advanced users. We will consider next how to set up a basic node system for getting approximately the same look we had when inside MakeHuman. == Preparing for Render with Blender Cycles Renderer == ** TO BE WRITTEN ** == Working with Skeletons in Blender == At present, most MakeHuman skeletons import well into Blender. To do animation based on Biovision Hierarchy (BVH) motion capture files, use the MakeHuman Blender tool [[Documentation:MHBlenderTools:_MakeWalk|MakeWalk]]. This tool is designed to import .BVH files from the Carnegie-Mellon collection (CMU-BVH) and the female files of the Ohio State University, [https://accad.osu.edu/research/motion-lab/mocap-system-and-data Advanced Computing Center for Arts and Design collection (ACCAD-BVH)]. It is worth noting explicitly that the male ACCAD files use a BVH format that does not currently work well inside Blender with MakeWalk. == Installing the Unofficial MHX2 plugin for MakeHuman and Blender == ** TO BE WRITTEN ** == Using the Unofficial MHX2 plugin for MakeHuman and Blender == ** TO BE WRITTEN ** c99fe6924afe3c653603ba088f920266de781d26 1616 470 2019-09-27T08:31:02Z Joepal 14 wikitext text/x-wiki == Introduction == ''Note that the information in this page is somewhat outdated, and that you may be better off using MPFB, see [[FAQ: What is MPFB (MakeHuman Plugin For Blender)?]]'' We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == The appearance of the MakeHuman model in the Blender Internal Renderer will depend on a number of things that will include transparency settings for materials, choice of lighting type, and shadow settings. We will illustrate this by first changing the default point light to a hemi light. Right click on the point lamp in the viewport and in the right properties panel select the lamp tab and choose hemi (Figure 4). [[File:ImpExp55a.png]] <center>'''Figure 4'''</center> To make transparent objects (eyes, eyebrows, eyelashes, and hair) render properly in the Blender Internal render engine, we need to change some settings on the material tab of each object and the material tab of each object. We will start with the material tab. The two panels that require adjustment are the transparency and shadow panels. Start by selecting the material tab in the properties panel (figure 5). [[File:ImpExp55.png]] <center>'''Figure 5'''</center> '''Step 1.''' Right click on one of the eyes in the 3D viewport to select them. In the transparency panel, set both the alpha and specular sliders to 0 (Figure 6). '''Step 2.''' In the shadow panel, check 'Receive tranparent' (figure 7) <table> <tr><td>[[File:ImpExp56.png]]</td><td>[[File:ImpExp57.png]]</td> <tr><td><center>'''Figure 6'''</center></td><td><center>'''Figure 7'''</center></td></tr> </table> Now go to the texture tab of the properties editor (checkered tab) and open the Influence panel (Figure 8). [[File:ImpExp58.png]] <center>'''Figure 8: '''</center> '''Step 3.''' On the influence panel check alpha (Figure 9). Leave the value at its default of 1.0. [[File:ImpExp59.png]] <center>'''Figure 9: '''</center> After completing these three steps, the eyes should be transparent (Figure 10) [[File:ImpExp60.png]] <center>'''Figure 10: '''</center> Repeating steps 1-3, in turn, for the eyebrows, eyelashes and hair, respectively, should produce results similar to the panels of Figure 11. [[File:ImpExp61.png]] <center>'''Figure 11: '''</center> When rendered with the Blender internal engine the image should look similar to the original human that was exported. [[File:ImpExp62.png]] <center>'''Figure 12: '''</center> == Adapting to Different Light Sources for Blender Internal == If we now right click on the hemi lamp in the scene, and restore it back to the default point lamp type in the lamp properties panel, we are now faced with additional shadow problems. In this example, the point lamp is the single source of illumination. Note that, depending where your point lamp is located, it may be necessary to turn up the point lamp intensity to produce a bright enough render. The hard shadows from this lamp produce unreal darkening shadows of the eyelashes and eyelids when rendered with Blender Internal engine. The look is unlikely to be usable for any real purpose (Figure 13) [[File:ImpExp63.png]] <center>'''Figure 13: '''</center> To make the eyelashes, eyebrows, and hair appear realistic, it is necessary to let the skin base mesh receive shadows. If you used collada to export and import into Blender, the skin name in the Outliner panel will end with '...-base.obj'. Select the skin by either right clicking directly on the skin in the 3D viewport, or by clicking on the '...base.obj' name in the outliner panel. In the properties editor, select the Materials tab and check 'Receive Transparency' in the shadow panel (Figure 14). The eyebrows and eyelashes (and sometimes hair) will now appear realistic, albeit with hard shadows (Figure 15). <table> <tr><td><center>[[File:ImpExp64.png]]</center></td> <td><center>[[File:ImpExp65.png]] </center></td></tr> <tr><td><center>'''Figure 14 '''</center> </td> <td> <center>'''Figure 15: '''</center></td></tr> </table> If the hard shadows are inconsistent with the look you hoped for (Figure 15 and Figure 16, top), it is possibly to fix this. For eyebrows, eyelashes, and hair you need to turn off cast on the shadow panel of the materials tab of the properties editor. After doing this, the shadow effect will be similar to what we got with the hemi lamp and what the human originally looked like when exported from MakeHuman. [[File:ImpExp66.png]] <center>'''Figure 16: '''</center> Blender internal render engine is the default still with Blender 2.75a, but Blender Cycles has rapidly become the render engine of choice for advanced users. We will consider next how to set up a basic node system for getting approximately the same look we had when inside MakeHuman. == Preparing for Render with Blender Cycles Renderer == ** TO BE WRITTEN ** == Working with Skeletons in Blender == At present, most MakeHuman skeletons import well into Blender. To do animation based on Biovision Hierarchy (BVH) motion capture files, use the MakeHuman Blender tool [[Documentation:MHBlenderTools:_MakeWalk|MakeWalk]]. This tool is designed to import .BVH files from the Carnegie-Mellon collection (CMU-BVH) and the female files of the Ohio State University, [http://accad.osu.edu/research/mocap/mocap_data.htm Advanced Computing Center for Arts and Design collection (ACCAD-BVH)]. It is worth noting explicitly that the male ACCAD files use a BVH format that does not currently work well inside Blender with MakeWalk. == Installing the Unofficial MHX2 plugin for MakeHuman and Blender == ** TO BE WRITTEN ** == Using the Unofficial MHX2 plugin for MakeHuman and Blender == ** TO BE WRITTEN ** dd74010384b393a3f9a8b9d1e1065cc20e0e401e 470 462 2015-08-27T20:36:01Z Fairytail 16 /* Working with Skeletons in Blender */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == The appearance of the MakeHuman model in the Blender Internal Renderer will depend on a number of things that will include transparency settings for materials, choice of lighting type, and shadow settings. We will illustrate this by first changing the default point light to a hemi light. Right click on the point lamp in the viewport and in the right properties panel select the lamp tab and choose hemi (Figure 4). [[File:ImpExp55a.png]] <center>'''Figure 4'''</center> To make transparent objects (eyes, eyebrows, eyelashes, and hair) render properly in the Blender Internal render engine, we need to change some settings on the material tab of each object and the material tab of each object. We will start with the material tab. The two panels that require adjustment are the transparency and shadow panels. Start by selecting the material tab in the properties panel (figure 5). [[File:ImpExp55.png]] <center>'''Figure 5'''</center> '''Step 1.''' Right click on one of the eyes in the 3D viewport to select them. In the transparency panel, set both the alpha and specular sliders to 0 (Figure 6). '''Step 2.''' In the shadow panel, check 'Receive tranparent' (figure 7) <table> <tr><td>[[File:ImpExp56.png]]</td><td>[[File:ImpExp57.png]]</td> <tr><td><center>'''Figure 6'''</center></td><td><center>'''Figure 7'''</center></td></tr> </table> Now go to the texture tab of the properties editor (checkered tab) and open the Influence panel (Figure 8). [[File:ImpExp58.png]] <center>'''Figure 8: '''</center> '''Step 3.''' On the influence panel check alpha (Figure 9). Leave the value at its default of 1.0. [[File:ImpExp59.png]] <center>'''Figure 9: '''</center> After completing these three steps, the eyes should be transparent (Figure 10) [[File:ImpExp60.png]] <center>'''Figure 10: '''</center> Repeating steps 1-3, in turn, for the eyebrows, eyelashes and hair, respectively, should produce results similar to the panels of Figure 11. [[File:ImpExp61.png]] <center>'''Figure 11: '''</center> When rendered with the Blender internal engine the image should look similar to the original human that was exported. [[File:ImpExp62.png]] <center>'''Figure 12: '''</center> == Adapting to Different Light Sources for Blender Internal == If we now right click on the hemi lamp in the scene, and restore it back to the default point lamp type in the lamp properties panel, we are now faced with additional shadow problems. In this example, the point lamp is the single source of illumination. Note that, depending where your point lamp is located, it may be necessary to turn up the point lamp intensity to produce a bright enough render. The hard shadows from this lamp produce unreal darkening shadows of the eyelashes and eyelids when rendered with Blender Internal engine. The look is unlikely to be usable for any real purpose (Figure 13) [[File:ImpExp63.png]] <center>'''Figure 13: '''</center> To make the eyelashes, eyebrows, and hair appear realistic, it is necessary to let the skin base mesh receive shadows. If you used collada to export and import into Blender, the skin name in the Outliner panel will end with '...-base.obj'. Select the skin by either right clicking directly on the skin in the 3D viewport, or by clicking on the '...base.obj' name in the outliner panel. In the properties editor, select the Materials tab and check 'Receive Transparency' in the shadow panel (Figure 14). The eyebrows and eyelashes (and sometimes hair) will now appear realistic, albeit with hard shadows (Figure 15). <table> <tr><td><center>[[File:ImpExp64.png]]</center></td> <td><center>[[File:ImpExp65.png]] </center></td></tr> <tr><td><center>'''Figure 14 '''</center> </td> <td> <center>'''Figure 15: '''</center></td></tr> </table> If the hard shadows are inconsistent with the look you hoped for (Figure 15 and Figure 16, top), it is possibly to fix this. For eyebrows, eyelashes, and hair you need to turn off cast on the shadow panel of the materials tab of the properties editor. After doing this, the shadow effect will be similar to what we got with the hemi lamp and what the human originally looked like when exported from MakeHuman. [[File:ImpExp66.png]] <center>'''Figure 16: '''</center> Blender internal render engine is the default still with Blender 2.75a, but Blender Cycles has rapidly become the render engine of choice for advanced users. We will consider next how to set up a basic node system for getting approximately the same look we had when inside MakeHuman. == Preparing for Render with Blender Cycles Renderer == ** TO BE WRITTEN ** == Working with Skeletons in Blender == At present, most MakeHuman skeletons import well into Blender. To do animation based on Biovision Hierarchy (BVH) motion capture files, use the MakeHuman Blender tool [[Documentation:MHBlenderTools:_MakeWalk|MakeWalk]]. This tool is designed to import .BVH files from the Carnegie-Mellon collection (CMU-BVH) and the female files of the Ohio State University, [http://accad.osu.edu/research/mocap/mocap_data.htm Advanced Computing Center for Arts and Design collection (ACCAD-BVH)]. It is worth noting explicitly that the male ACCAD files use a BVH format that does not currently work well inside Blender with MakeWalk. == Installing the Unofficial MHX2 plugin for MakeHuman and Blender == ** TO BE WRITTEN ** == Using the Unofficial MHX2 plugin for MakeHuman and Blender == ** TO BE WRITTEN ** 5cdd0557e35c308db853c65c3297e00a0d7b3175 462 461 2015-08-18T23:03:34Z Robbaer 12 /* Adapting to Different Light Sources for Blender Internal */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == The appearance of the MakeHuman model in the Blender Internal Renderer will depend on a number of things that will include transparency settings for materials, choice of lighting type, and shadow settings. We will illustrate this by first changing the default point light to a hemi light. Right click on the point lamp in the viewport and in the right properties panel select the lamp tab and choose hemi (Figure 4). [[File:ImpExp55a.png]] <center>'''Figure 4'''</center> To make transparent objects (eyes, eyebrows, eyelashes, and hair) render properly in the Blender Internal render engine, we need to change some settings on the material tab of each object and the material tab of each object. We will start with the material tab. The two panels that require adjustment are the transparency and shadow panels. Start by selecting the material tab in the properties panel (figure 5). [[File:ImpExp55.png]] <center>'''Figure 5'''</center> '''Step 1.''' Right click on one of the eyes in the 3D viewport to select them. In the transparency panel, set both the alpha and specular sliders to 0 (Figure 6). '''Step 2.''' In the shadow panel, check 'Receive tranparent' (figure 7) <table> <tr><td>[[File:ImpExp56.png]]</td><td>[[File:ImpExp57.png]]</td> <tr><td><center>'''Figure 6'''</center></td><td><center>'''Figure 7'''</center></td></tr> </table> Now go to the texture tab of the properties editor (checkered tab) and open the Influence panel (Figure 8). [[File:ImpExp58.png]] <center>'''Figure 8: '''</center> '''Step 3.''' On the influence panel check alpha (Figure 9). Leave the value at its default of 1.0. [[File:ImpExp59.png]] <center>'''Figure 9: '''</center> After completing these three steps, the eyes should be transparent (Figure 10) [[File:ImpExp60.png]] <center>'''Figure 10: '''</center> Repeating steps 1-3, in turn, for the eyebrows, eyelashes and hair, respectively, should produce results similar to the panels of Figure 11. [[File:ImpExp61.png]] <center>'''Figure 11: '''</center> When rendered with the Blender internal engine the image should look similar to the original human that was exported. [[File:ImpExp62.png]] <center>'''Figure 12: '''</center> == Adapting to Different Light Sources for Blender Internal == If we now right click on the hemi lamp in the scene, and restore it back to the default point lamp type in the lamp properties panel, we are now faced with additional shadow problems. In this example, the point lamp is the single source of illumination. Note that, depending where your point lamp is located, it may be necessary to turn up the point lamp intensity to produce a bright enough render. The hard shadows from this lamp produce unreal darkening shadows of the eyelashes and eyelids when rendered with Blender Internal engine. The look is unlikely to be usable for any real purpose (Figure 13) [[File:ImpExp63.png]] <center>'''Figure 13: '''</center> To make the eyelashes, eyebrows, and hair appear realistic, it is necessary to let the skin base mesh receive shadows. If you used collada to export and import into Blender, the skin name in the Outliner panel will end with '...-base.obj'. Select the skin by either right clicking directly on the skin in the 3D viewport, or by clicking on the '...base.obj' name in the outliner panel. In the properties editor, select the Materials tab and check 'Receive Transparency' in the shadow panel (Figure 14). The eyebrows and eyelashes (and sometimes hair) will now appear realistic, albeit with hard shadows (Figure 15). <table> <tr><td><center>[[File:ImpExp64.png]]</center></td> <td><center>[[File:ImpExp65.png]] </center></td></tr> <tr><td><center>'''Figure 14 '''</center> </td> <td> <center>'''Figure 15: '''</center></td></tr> </table> If the hard shadows are inconsistent with the look you hoped for (Figure 15 and Figure 16, top), it is possibly to fix this. For eyebrows, eyelashes, and hair you need to turn off cast on the shadow panel of the materials tab of the properties editor. After doing this, the shadow effect will be similar to what we got with the hemi lamp and what the human originally looked like when exported from MakeHuman. [[File:ImpExp66.png]] <center>'''Figure 16: '''</center> Blender internal render engine is the default still with Blender 2.75a, but Blender Cycles has rapidly become the render engine of choice for advanced users. We will consider next how to set up a basic node system for getting approximately the same look we had when inside MakeHuman. == Preparing for Render with Blender Cycles Renderer == ** TO BE WRITTEN ** == Working with Skeletons in Blender == At present, most MakeHuman skeletons import well into Blender. To do animation based on .BVH motion capture files, use the MakeHuman Blender tool named MakeWalk. This too is described elsewhere on the Wiki. The tool is designed to import .BVH files from the Carnegie-Mellon collection (CMU-BVH) and the female files of the Ohio State University, Advanced Computing Center for Arts and Design collection (ACCAD-BVH) [http://accad.osu.edu/research/mocap/mocap_data.htm]. It is worth noting explicitly that the male ACCAD files use a BVH format that does not currently work well inside Blender with MakeWalk. == Installing the Unofficial MHX2 plugin for MakeHuman and Blender == ** TO BE WRITTEN ** == Using the Unofficial MHX2 plugin for MakeHuman and Blender == ** TO BE WRITTEN ** 02f9556dd2344784d27b70337ba46bc03f527350 461 460 2015-08-18T14:38:56Z Robbaer 12 /* Adapting to Different Light Sources for Blender Internal */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == The appearance of the MakeHuman model in the Blender Internal Renderer will depend on a number of things that will include transparency settings for materials, choice of lighting type, and shadow settings. We will illustrate this by first changing the default point light to a hemi light. Right click on the point lamp in the viewport and in the right properties panel select the lamp tab and choose hemi (Figure 4). [[File:ImpExp55a.png]] <center>'''Figure 4'''</center> To make transparent objects (eyes, eyebrows, eyelashes, and hair) render properly in the Blender Internal render engine, we need to change some settings on the material tab of each object and the material tab of each object. We will start with the material tab. The two panels that require adjustment are the transparency and shadow panels. Start by selecting the material tab in the properties panel (figure 5). [[File:ImpExp55.png]] <center>'''Figure 5'''</center> '''Step 1.''' Right click on one of the eyes in the 3D viewport to select them. In the transparency panel, set both the alpha and specular sliders to 0 (Figure 6). '''Step 2.''' In the shadow panel, check 'Receive tranparent' (figure 7) <table> <tr><td>[[File:ImpExp56.png]]</td><td>[[File:ImpExp57.png]]</td> <tr><td><center>'''Figure 6'''</center></td><td><center>'''Figure 7'''</center></td></tr> </table> Now go to the texture tab of the properties editor (checkered tab) and open the Influence panel (Figure 8). [[File:ImpExp58.png]] <center>'''Figure 8: '''</center> '''Step 3.''' On the influence panel check alpha (Figure 9). Leave the value at its default of 1.0. [[File:ImpExp59.png]] <center>'''Figure 9: '''</center> After completing these three steps, the eyes should be transparent (Figure 10) [[File:ImpExp60.png]] <center>'''Figure 10: '''</center> Repeating steps 1-3, in turn, for the eyebrows, eyelashes and hair, respectively, should produce results similar to the panels of Figure 11. [[File:ImpExp61.png]] <center>'''Figure 11: '''</center> When rendered with the Blender internal engine the image should look similar to the original human that was exported. [[File:ImpExp62.png]] <center>'''Figure 12: '''</center> == Adapting to Different Light Sources for Blender Internal == If we now right click on the hemi lamp in the scene, and restore it back to the default point lamp type in the lamp properties panel, we are now faced with additional shadow problems. In this example, the point lamp is the single source of illumination. Note that, depending where your point lamp is located, it may be necessary to turn up the point lamp intensity to produce a bright enough render. The hard shadows from this lamp produce unreal darkening shadows of the eyelashes and eyelids when rendered with Blender Internal engine. The look is unlikely to be usable for any real purpose (Figure 13) [[File:ImpExp63.png]] <center>'''Figure 13: '''</center> To make the eyelashes, eyebrows, and hair appear realistic, it is necessary to let the skin base mesh receive shadows. If you used collada to export and import into Blender, the skin name in the Outliner panel will end with '...-base.obj'. Select the skin by either right clicking directly on the skin in the 3D viewport, or by clicking on the '...base.obj' name in the outliner panel. In the properties editor, select the Materials tab and check 'Receive Transparency' in the shadow panel (Figure 14). The eyebrows and eyelashes (and sometimes hair) will now appear realistic, albeit with hard shadows (Figure 15). <table> <tr><td><center>[[File:ImpExp64.png]]</center></td> <td><center>[[File:ImpExp65.png]] </center></td></tr> <tr><td><center>'''Figure 14 '''</center> </td> <td> <center>'''Figure 15: '''</center></td></tr> </table> If the hard shadows are not consistent with the look you hoped for, it is possibly to fix this. For eyebrows, eyelashes, and hair you need to turn off cast on the shadow panel of the materials tab of the properties editor. [[File:ImpExp66.png]] <center>'''Figure 16: '''</center> == Preparing for Render with Blender Cycles Renderer == ** TO BE WRITTEN ** == Working with Skeletons in Blender == At present, most MakeHuman skeletons import well into Blender. To do animation based on .BVH motion capture files, use the MakeHuman Blender tool named MakeWalk. This too is described elsewhere on the Wiki. The tool is designed to import .BVH files from the Carnegie-Mellon collection (CMU-BVH) and the female files of the Ohio State University, Advanced Computing Center for Arts and Design collection (ACCAD-BVH) [http://accad.osu.edu/research/mocap/mocap_data.htm]. It is worth noting explicitly that the male ACCAD files use a BVH format that does not currently work well inside Blender with MakeWalk. == Installing the Unofficial MHX2 plugin for MakeHuman and Blender == ** TO BE WRITTEN ** == Using the Unofficial MHX2 plugin for MakeHuman and Blender == ** TO BE WRITTEN ** 79c7d85d2dd29836b20dda2c887fbdfc9447575e 460 459 2015-08-18T13:38:09Z Robbaer 12 /* Preparing for Render with Blender Internal Renderer */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == The appearance of the MakeHuman model in the Blender Internal Renderer will depend on a number of things that will include transparency settings for materials, choice of lighting type, and shadow settings. We will illustrate this by first changing the default point light to a hemi light. Right click on the point lamp in the viewport and in the right properties panel select the lamp tab and choose hemi (Figure 4). [[File:ImpExp55a.png]] <center>'''Figure 4'''</center> To make transparent objects (eyes, eyebrows, eyelashes, and hair) render properly in the Blender Internal render engine, we need to change some settings on the material tab of each object and the material tab of each object. We will start with the material tab. The two panels that require adjustment are the transparency and shadow panels. Start by selecting the material tab in the properties panel (figure 5). [[File:ImpExp55.png]] <center>'''Figure 5'''</center> '''Step 1.''' Right click on one of the eyes in the 3D viewport to select them. In the transparency panel, set both the alpha and specular sliders to 0 (Figure 6). '''Step 2.''' In the shadow panel, check 'Receive tranparent' (figure 7) <table> <tr><td>[[File:ImpExp56.png]]</td><td>[[File:ImpExp57.png]]</td> <tr><td><center>'''Figure 6'''</center></td><td><center>'''Figure 7'''</center></td></tr> </table> Now go to the texture tab of the properties editor (checkered tab) and open the Influence panel (Figure 8). [[File:ImpExp58.png]] <center>'''Figure 8: '''</center> '''Step 3.''' On the influence panel check alpha (Figure 9). Leave the value at its default of 1.0. [[File:ImpExp59.png]] <center>'''Figure 9: '''</center> After completing these three steps, the eyes should be transparent (Figure 10) [[File:ImpExp60.png]] <center>'''Figure 10: '''</center> Repeating steps 1-3, in turn, for the eyebrows, eyelashes and hair, respectively, should produce results similar to the panels of Figure 11. [[File:ImpExp61.png]] <center>'''Figure 11: '''</center> When rendered with the Blender internal engine the image should look similar to the original human that was exported. [[File:ImpExp62.png]] <center>'''Figure 12: '''</center> == Adapting to Different Light Sources for Blender Internal == If we now right click on the hemi lamp in the scene, and restore it back to the default point lamp type in the lamp properties panel, we are now faced with additional shadow problems. In this example, the point lamp is the single source of illumination. Note that, depending where your point lamp is located, it may be necessary to turn up the point lamp intensity to produce a bright enough render. The hard shadows from this lamp produce unreal darkening shadows of the eyelashes and eyelids when rendered with Blender Internal engine. The look is unlikely to be usable for any real purpose (Figure 13) [[File:ImpExp63.png]] <center>'''Figure 13: '''</center> To make the eyelashes, eyebrows, and hair appear realistic, it is necessary to let the skin base mesh receive shadows. If you used collada to export and import into Blender, the skin name in the Outliner panel will end with '...-base.obj'. Select the skin by either right clicking directly on the skin in the 3D viewport, or by clicking on the '...base.obj' name in the outliner panel. In the properties editor, select the Materials tab and check Receive Transparency in the shadow panel. The eyebrows and eyelashes (and sometimes hair) will now appear realistic, albeit with hard shadows (Figure 15). <table> <tr><td><center>[[File:ImpExp64.png]]</center></td> <td><center>[[File:ImpExp65.png]] </center></td></tr> <tr><td><center>'''Figure 14 '''</center> </td> <td> <center>'''Figure 15: '''</center></center></td></tr> </table> [[File:ImpExp66.png]] <center>'''Figure 16: '''</center> == Preparing for Render with Blender Cycles Renderer == ** TO BE WRITTEN ** == Working with Skeletons in Blender == At present, most MakeHuman skeletons import well into Blender. To do animation based on .BVH motion capture files, use the MakeHuman Blender tool named MakeWalk. This too is described elsewhere on the Wiki. The tool is designed to import .BVH files from the Carnegie-Mellon collection (CMU-BVH) and the female files of the Ohio State University, Advanced Computing Center for Arts and Design collection (ACCAD-BVH) [http://accad.osu.edu/research/mocap/mocap_data.htm]. It is worth noting explicitly that the male ACCAD files use a BVH format that does not currently work well inside Blender with MakeWalk. == Installing the Unofficial MHX2 plugin for MakeHuman and Blender == ** TO BE WRITTEN ** == Using the Unofficial MHX2 plugin for MakeHuman and Blender == ** TO BE WRITTEN ** 7d3a48e41f0cd3c3e64f7eb0ddb648a6c31ac280 459 458 2015-08-18T13:18:31Z Robbaer 12 /* Using the Unofficial MHX2 plugin for MakeHuman and Blender */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == The appearance of the MakeHuman model in the Blender Internal Renderer will depend on a number of things that will include transparency settings for materials, choice of lighting type, and shadow settings. We will illustrate this by first changing the default point light to a hemi light. Right click on the point lamp in the viewport and in the right properties panel select the lamp tab and choose hemi (Figure 4). [[File:ImpExp55a.png]] <center>'''Figure 4'''</center> To make transparent objects (eyes, eyebrows, eyelashes, and hair) render properly in the Blender Internal render engine, we need to change some settings on the material tab of each object and the material tab of each object. We will start with the material tab. The two panels that require adjustment are the transparency and shadow panels. Start by selecting the material tab in the properties panel (figure 5). [[File:ImpExp55.png]] <center>'''Figure 5'''</center> '''Step 1.''' Right click on one of the eyes in the 3D viewport to select them. In the transparency panel, set both the alpha and specular sliders to 0 (Figure 6). '''Step 2.''' In the shadow panel, check 'Receive tranparent' (figure 7) <table> <tr><td>[[File:ImpExp56.png]]</td><td>[[File:ImpExp57.png]]</td> <tr><td><center>'''Figure 6'''</center></td><td><center>'''Figure 7'''</center></td></tr> </table> Now go to the texture tab of the properties editor (checkered tab) and open the Influence panel (Figure 8). [[File:ImpExp58.png]] <center>'''Figure 8: '''</center> '''Step 3.''' On the influence panel check alpha (Figure 9). Leave the value at its default of 1.0. [[File:ImpExp59.png]] <center>'''Figure 9: '''</center> After completing these three steps, the eyes should be transparent (Figure 10) [[File:ImpExp60.png]] <center>'''Figure 10: '''</center> Repeating steps 1-3, in turn, for the eyebrows, eyelashes and hair, respectively, should produce results similar to the panels of Figure 11. [[File:ImpExp61.png]] <center>'''Figure 11: '''</center> When rendered with the Blender internal engine the image should look similar to the original human that was exported. [[File:ImpExp62.png]] <center>'''Figure 12: '''</center> However, if you now click on the hemi lamp in the scene and return it back into point lamp (as it was by default), we are now faced with additional shadow problems. In this example, the point lamp is the single source of illumination. Note that, depending where your point lamp is located, it may be necessary to turn up the point lamp intensity to produce a bright enough render. The hard shadows from this lamp produce unreal darkening shadows of the eyelashes and eyelids when rendered with Blender Internal engine. The look is unlikely to be usable for any usual purpose (Figure 13) [[File:ImpExp63.png]] <center>'''Figure 13: '''</center> [[File:ImpExp64.png]] <center>'''Figure 14 '''</center> IF you render in Blender Internal after setting the base.obj to receive [[File:ImpExp65.png]] <center>'''Figure 15: '''</center> [[File:ImpExp66.png]] <center>'''Figure 16: '''</center> == Preparing for Render with Blender Cycles Renderer == ** TO BE WRITTEN ** == Working with Skeletons in Blender == At present, most MakeHuman skeletons import well into Blender. To do animation based on .BVH motion capture files, use the MakeHuman Blender tool named MakeWalk. This too is described elsewhere on the Wiki. The tool is designed to import .BVH files from the Carnegie-Mellon collection (CMU-BVH) and the female files of the Ohio State University, Advanced Computing Center for Arts and Design collection (ACCAD-BVH) [http://accad.osu.edu/research/mocap/mocap_data.htm]. It is worth noting explicitly that the male ACCAD files use a BVH format that does not currently work well inside Blender with MakeWalk. == Installing the Unofficial MHX2 plugin for MakeHuman and Blender == ** TO BE WRITTEN ** == Using the Unofficial MHX2 plugin for MakeHuman and Blender == ** TO BE WRITTEN ** 3217557fcd9e6f4cb14468221f399fa4e0b51db8 458 457 2015-08-18T13:17:53Z Robbaer 12 /* Installing the Unofficial MHX2 plugin for MakeHuman and Blender */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == The appearance of the MakeHuman model in the Blender Internal Renderer will depend on a number of things that will include transparency settings for materials, choice of lighting type, and shadow settings. We will illustrate this by first changing the default point light to a hemi light. Right click on the point lamp in the viewport and in the right properties panel select the lamp tab and choose hemi (Figure 4). [[File:ImpExp55a.png]] <center>'''Figure 4'''</center> To make transparent objects (eyes, eyebrows, eyelashes, and hair) render properly in the Blender Internal render engine, we need to change some settings on the material tab of each object and the material tab of each object. We will start with the material tab. The two panels that require adjustment are the transparency and shadow panels. Start by selecting the material tab in the properties panel (figure 5). [[File:ImpExp55.png]] <center>'''Figure 5'''</center> '''Step 1.''' Right click on one of the eyes in the 3D viewport to select them. In the transparency panel, set both the alpha and specular sliders to 0 (Figure 6). '''Step 2.''' In the shadow panel, check 'Receive tranparent' (figure 7) <table> <tr><td>[[File:ImpExp56.png]]</td><td>[[File:ImpExp57.png]]</td> <tr><td><center>'''Figure 6'''</center></td><td><center>'''Figure 7'''</center></td></tr> </table> Now go to the texture tab of the properties editor (checkered tab) and open the Influence panel (Figure 8). [[File:ImpExp58.png]] <center>'''Figure 8: '''</center> '''Step 3.''' On the influence panel check alpha (Figure 9). Leave the value at its default of 1.0. [[File:ImpExp59.png]] <center>'''Figure 9: '''</center> After completing these three steps, the eyes should be transparent (Figure 10) [[File:ImpExp60.png]] <center>'''Figure 10: '''</center> Repeating steps 1-3, in turn, for the eyebrows, eyelashes and hair, respectively, should produce results similar to the panels of Figure 11. [[File:ImpExp61.png]] <center>'''Figure 11: '''</center> When rendered with the Blender internal engine the image should look similar to the original human that was exported. [[File:ImpExp62.png]] <center>'''Figure 12: '''</center> However, if you now click on the hemi lamp in the scene and return it back into point lamp (as it was by default), we are now faced with additional shadow problems. In this example, the point lamp is the single source of illumination. Note that, depending where your point lamp is located, it may be necessary to turn up the point lamp intensity to produce a bright enough render. The hard shadows from this lamp produce unreal darkening shadows of the eyelashes and eyelids when rendered with Blender Internal engine. The look is unlikely to be usable for any usual purpose (Figure 13) [[File:ImpExp63.png]] <center>'''Figure 13: '''</center> [[File:ImpExp64.png]] <center>'''Figure 14 '''</center> IF you render in Blender Internal after setting the base.obj to receive [[File:ImpExp65.png]] <center>'''Figure 15: '''</center> [[File:ImpExp66.png]] <center>'''Figure 16: '''</center> == Preparing for Render with Blender Cycles Renderer == ** TO BE WRITTEN ** == Working with Skeletons in Blender == At present, most MakeHuman skeletons import well into Blender. To do animation based on .BVH motion capture files, use the MakeHuman Blender tool named MakeWalk. This too is described elsewhere on the Wiki. The tool is designed to import .BVH files from the Carnegie-Mellon collection (CMU-BVH) and the female files of the Ohio State University, Advanced Computing Center for Arts and Design collection (ACCAD-BVH) [http://accad.osu.edu/research/mocap/mocap_data.htm]. It is worth noting explicitly that the male ACCAD files use a BVH format that does not currently work well inside Blender with MakeWalk. == Installing the Unofficial MHX2 plugin for MakeHuman and Blender == ** TO BE WRITTEN ** == Using the Unofficial MHX2 plugin for MakeHuman and Blender == 8b369d4c7bc20791959bedc71e58986eda7b6eec 457 456 2015-08-18T13:17:30Z Robbaer 12 /* Installing the Unofficial MHX2 plugin for MakeHuman and Blender */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == The appearance of the MakeHuman model in the Blender Internal Renderer will depend on a number of things that will include transparency settings for materials, choice of lighting type, and shadow settings. We will illustrate this by first changing the default point light to a hemi light. Right click on the point lamp in the viewport and in the right properties panel select the lamp tab and choose hemi (Figure 4). [[File:ImpExp55a.png]] <center>'''Figure 4'''</center> To make transparent objects (eyes, eyebrows, eyelashes, and hair) render properly in the Blender Internal render engine, we need to change some settings on the material tab of each object and the material tab of each object. We will start with the material tab. The two panels that require adjustment are the transparency and shadow panels. Start by selecting the material tab in the properties panel (figure 5). [[File:ImpExp55.png]] <center>'''Figure 5'''</center> '''Step 1.''' Right click on one of the eyes in the 3D viewport to select them. In the transparency panel, set both the alpha and specular sliders to 0 (Figure 6). '''Step 2.''' In the shadow panel, check 'Receive tranparent' (figure 7) <table> <tr><td>[[File:ImpExp56.png]]</td><td>[[File:ImpExp57.png]]</td> <tr><td><center>'''Figure 6'''</center></td><td><center>'''Figure 7'''</center></td></tr> </table> Now go to the texture tab of the properties editor (checkered tab) and open the Influence panel (Figure 8). [[File:ImpExp58.png]] <center>'''Figure 8: '''</center> '''Step 3.''' On the influence panel check alpha (Figure 9). Leave the value at its default of 1.0. [[File:ImpExp59.png]] <center>'''Figure 9: '''</center> After completing these three steps, the eyes should be transparent (Figure 10) [[File:ImpExp60.png]] <center>'''Figure 10: '''</center> Repeating steps 1-3, in turn, for the eyebrows, eyelashes and hair, respectively, should produce results similar to the panels of Figure 11. [[File:ImpExp61.png]] <center>'''Figure 11: '''</center> When rendered with the Blender internal engine the image should look similar to the original human that was exported. [[File:ImpExp62.png]] <center>'''Figure 12: '''</center> However, if you now click on the hemi lamp in the scene and return it back into point lamp (as it was by default), we are now faced with additional shadow problems. In this example, the point lamp is the single source of illumination. Note that, depending where your point lamp is located, it may be necessary to turn up the point lamp intensity to produce a bright enough render. The hard shadows from this lamp produce unreal darkening shadows of the eyelashes and eyelids when rendered with Blender Internal engine. The look is unlikely to be usable for any usual purpose (Figure 13) [[File:ImpExp63.png]] <center>'''Figure 13: '''</center> [[File:ImpExp64.png]] <center>'''Figure 14 '''</center> IF you render in Blender Internal after setting the base.obj to receive [[File:ImpExp65.png]] <center>'''Figure 15: '''</center> [[File:ImpExp66.png]] <center>'''Figure 16: '''</center> == Preparing for Render with Blender Cycles Renderer == ** TO BE WRITTEN ** == Working with Skeletons in Blender == At present, most MakeHuman skeletons import well into Blender. To do animation based on .BVH motion capture files, use the MakeHuman Blender tool named MakeWalk. This too is described elsewhere on the Wiki. The tool is designed to import .BVH files from the Carnegie-Mellon collection (CMU-BVH) and the female files of the Ohio State University, Advanced Computing Center for Arts and Design collection (ACCAD-BVH) [http://accad.osu.edu/research/mocap/mocap_data.htm]. It is worth noting explicitly that the male ACCAD files use a BVH format that does not currently work well inside Blender with MakeWalk. == Installing the Unofficial MHX2 plugin for MakeHuman and Blender == ** TO BE WRITTEN ** == Using the Unofficial MHX2 plugin for MakeHuman and Blender == 5d4c1c10394f3a951edc5d72a7b8092dcde5290e 456 455 2015-08-18T13:10:32Z Robbaer 12 wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == The appearance of the MakeHuman model in the Blender Internal Renderer will depend on a number of things that will include transparency settings for materials, choice of lighting type, and shadow settings. We will illustrate this by first changing the default point light to a hemi light. Right click on the point lamp in the viewport and in the right properties panel select the lamp tab and choose hemi (Figure 4). [[File:ImpExp55a.png]] <center>'''Figure 4'''</center> To make transparent objects (eyes, eyebrows, eyelashes, and hair) render properly in the Blender Internal render engine, we need to change some settings on the material tab of each object and the material tab of each object. We will start with the material tab. The two panels that require adjustment are the transparency and shadow panels. Start by selecting the material tab in the properties panel (figure 5). [[File:ImpExp55.png]] <center>'''Figure 5'''</center> '''Step 1.''' Right click on one of the eyes in the 3D viewport to select them. In the transparency panel, set both the alpha and specular sliders to 0 (Figure 6). '''Step 2.''' In the shadow panel, check 'Receive tranparent' (figure 7) <table> <tr><td>[[File:ImpExp56.png]]</td><td>[[File:ImpExp57.png]]</td> <tr><td><center>'''Figure 6'''</center></td><td><center>'''Figure 7'''</center></td></tr> </table> Now go to the texture tab of the properties editor (checkered tab) and open the Influence panel (Figure 8). [[File:ImpExp58.png]] <center>'''Figure 8: '''</center> '''Step 3.''' On the influence panel check alpha (Figure 9). Leave the value at its default of 1.0. [[File:ImpExp59.png]] <center>'''Figure 9: '''</center> After completing these three steps, the eyes should be transparent (Figure 10) [[File:ImpExp60.png]] <center>'''Figure 10: '''</center> Repeating steps 1-3, in turn, for the eyebrows, eyelashes and hair, respectively, should produce results similar to the panels of Figure 11. [[File:ImpExp61.png]] <center>'''Figure 11: '''</center> When rendered with the Blender internal engine the image should look similar to the original human that was exported. [[File:ImpExp62.png]] <center>'''Figure 12: '''</center> However, if you now click on the hemi lamp in the scene and return it back into point lamp (as it was by default), we are now faced with additional shadow problems. In this example, the point lamp is the single source of illumination. Note that, depending where your point lamp is located, it may be necessary to turn up the point lamp intensity to produce a bright enough render. The hard shadows from this lamp produce unreal darkening shadows of the eyelashes and eyelids when rendered with Blender Internal engine. The look is unlikely to be usable for any usual purpose (Figure 13) [[File:ImpExp63.png]] <center>'''Figure 13: '''</center> [[File:ImpExp64.png]] <center>'''Figure 14 '''</center> IF you render in Blender Internal after setting the base.obj to receive [[File:ImpExp65.png]] <center>'''Figure 15: '''</center> [[File:ImpExp66.png]] <center>'''Figure 16: '''</center> == Preparing for Render with Blender Cycles Renderer == ** TO BE WRITTEN ** == Working with Skeletons in Blender == At present, most MakeHuman skeletons import well into Blender. To do animation based on .BVH motion capture files, use the MakeHuman Blender tool named MakeWalk. This too is described elsewhere on the Wiki. The tool is designed to import .BVH files from the Carnegie-Mellon collection (CMU-BVH) and the female files of the Ohio State University, Advanced Computing Center for Arts and Design collection (ACCAD-BVH) [http://accad.osu.edu/research/mocap/mocap_data.htm]. It is worth noting explicitly that the male ACCAD files use a BVH format that does not currently work well inside Blender with MakeWalk. == Installing the Unofficial MHX2 plugin for MakeHuman and Blender == == Using the Unofficial MHX2 plugin for MakeHuman and Blender == 0c3de4ceec6d251073bbdc55d93700909f79f6c8 455 453 2015-08-17T14:41:42Z Robbaer 12 /* Preparing for Render with Blender Internal Renderer */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == The appearance of the MakeHuman model in the Blender Internal Renderer will depend on a number of things that will include transparency settings for materials, choice of lighting type, and shadow settings. We will illustrate this by first changing the default point light to a hemi light. Right click on the point lamp in the viewport and in the right properties panel select the lamp tab and choose hemi (Figure 4). [[File:ImpExp55a.png]] <center>'''Figure 4'''</center> To make transparent objects (eyes, eyebrows, eyelashes, and hair) render properly in the Blender Internal render engine, we need to change some settings on the material tab of each object and the material tab of each object. We will start with the material tab. The two panels that require adjustment are the transparency and shadow panels. Start by selecting the material tab in the properties panel (figure 5). [[File:ImpExp55.png]] <center>'''Figure 5'''</center> '''Step 1.''' Right click on one of the eyes in the 3D viewport to select them. In the transparency panel, set both the alpha and specular sliders to 0 (Figure 6). '''Step 2.''' In the shadow panel, check 'Receive tranparent' (figure 7) <table> <tr><td>[[File:ImpExp56.png]]</td><td>[[File:ImpExp57.png]]</td> <tr><td><center>'''Figure 6'''</center></td><td><center>'''Figure 7'''</center></td></tr> </table> Now go to the texture tab of the properties editor (checkered tab) and open the Influence panel (Figure 8). [[File:ImpExp58.png]] <center>'''Figure 8: '''</center> '''Step 3.''' On the influence panel check alpha (Figure 9). Leave the value at its default of 1.0. [[File:ImpExp59.png]] <center>'''Figure 9: '''</center> After completing these three steps, the eyes should be transparent (Figure 10) [[File:ImpExp60.png]] <center>'''Figure 10: '''</center> Repeating steps 1-3, in turn, for the eyebrows, eyelashes and hair, respectively, should produce results similar to the panels of Figure 11. [[File:ImpExp61.png]] <center>'''Figure 11: '''</center> == Preparing for Render with Blender Cycles Renderer == 91ee064085bad162f1903871e185ce15858d8f30 453 452 2015-08-17T14:35:24Z Robbaer 12 /* Preparing for Render with Blender Internal Renderer */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == The appearance of the MakeHuman model in the Blender Internal Renderer will depend on a number of things that will include transparency settings for materials, choice of lighting type, and shadow settings. We will illustrate this by first changing the default point light to a hemi light. Right click on the point lamp in the viewport and in the right properties panel select the lamp tab and choose hemi (Figure 4). [[File:ImpExp55a.png]] <center>'''Figure 4'''</center> To make transparent objects (eyes, eyebrows, eyelashes, and hair) render properly in the Blender Internal render engine, we need to change some settings on the material tab of each object and the material tab of each object. We will start with the material tab. The two panels that require adjustment are the transparency and shadow panels. Start by selecting the material tab in the properties panel (figure 5). [[File:ImpExp55.png]] <center>'''Figure 5'''</center> '''Step 1.''' Right click on one of the eyes in the 3D viewport to select them. In the transparency panel, set both the alpha and specular sliders to 0 (Figure 6). '''Step 2.''' In the shadow panel, check 'Receive tranparent' (figure 7) <table> <tr><td>[[File:ImpExp56.png]]</td><td>[[File:ImpExp57.png]]</td> <tr><td><center>'''Figure 6'''</center></td><td><center>'''Figure 7'''</center></td></tr> </table> Now go to the texture tab of the properties editor (checkered tab) and open the Influence panel (Figure 8). [[File:ImpExp58.png]] <center>'''Figure 8: '''</center> '''Step 3.''' On the influence panel check alpha (Figure 9). Leave the value at its default of 1.0. [[File:ImpExp59.png]] <center>'''Figure 9: '''</center> After completing these three steps, the eyes should be transparent (Figure 10) [[File:ImpExp60.png]] <center>'''Figure 10: '''</center> Repeating steps 1-3, in turn, for the eyebrows, eyelashes and hair, respectively, should produce results similar to the panels of Figure 11. [[File:ImpExp61.png]] <center>'''Figure 11: '''</center> 82012792393412fde191b0082955d28811bc257a 452 451 2015-08-17T14:19:12Z Robbaer 12 /* Preparing for Render with Blender Internal Renderer */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == The appearance of the MakeHuman model in the Blender Internal Renderer will depend on a number of things that will include transparency settings for materials, choice of lighting type, and shadow settings. We will illustrate this by first changing the default point light to a hemi light. Right click on the point lamp in the viewport and in the right properties panel select the lamp tab and choose hemi (Figure 4). [[File:ImpExp55a.png]] <center>'''Figure 4'''</center> To make transparent objects (eyes, eyebrows, eyelashes, and hair) render properly in the Blender Internal render engine, we first need to make changes to thr transparency and shadow panels of the material properties tab. Start by selecting the material tab in the properties panel on the right (figure 5). [[File:ImpExp55.png]] <center>'''Figure 5'''</center> Right click on one of the eyes in the 3D viewport to select them. In the transparency panel, set both the alpha and specular sliders to 0 (Figure 6). In the shadow panel, check 'Receive tranparent' (figure 7) <table> <tr><td>[[File:ImpExp56.png]]</td><td>[[File:ImpExp57.png]]</td> <tr><td><center>'''Figure 6'''</center></td><td><center>'''Figure 7'''</center></td></tr> </table> Now go to the texture tab of the properties editor (checkered tab) and open the Influence panel (Figure 8). [[File:ImpExp58.png]] <center>'''Figure 8: '''</center> On the influence panel check alpha (Figure 9). Leave the value at its default of 1.0. [[File:ImpExp59.png]] <center>'''Figure 9: '''</center> [[File:ImpExp60.png]] <center>'''Figure 10: '''</center> [[File:ImpExp61.png]] <center>'''Figure 11: '''</center> dd989f6183fc59c18031d44b4a94732d817bb525 451 450 2015-08-17T14:10:31Z Robbaer 12 /* Preparing for Render with Blender Internal Renderer */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == The appearance of the MakeHuman model in the Blender Internal Renderer will depend on a number of things that will include transparency settings for materials, choice of lighting type, and shadow settings. We will illustrate this by first changing the default point light to a hemi light. Right click on the point lamp in the viewport and in the right properties panel select the lamp tab and choose hemi (Figure 4). [[File:ImpExp55a.png]] <center>'''Figure 4'''</center> To make transparent objects (eyes, eybrows, eyelashes, and hair) render properly in the Blender Internal render engine, we first need to make changes to thr tranparency and shadow panels of the material properties tab. Start by selecting the material tab in the properties panel on the right (figure 5). [[File:ImpExp55.png]] <center>'''Figure 5'''</center> Right click on one of the eyes in the 3D viewport to select them. In the transparency panel, set both the alpha and specular sliders to 0 (Figure 6). In the shadow panel, check 'Receive tranparent' (figure 7) <table> <tr><td>[[File:ImpExp56.png]]</td><td>[[File:ImpExp57.png]]</td> <tr><td><center>'''Figure 6'''</center></td><td><center>'''Figure 7'''</center></td>,/tr> </table> [[File:ImpExp57.png]] <center>'''Figure 8: '''</center> [[File:ImpExp58.png]] <center>'''Figure 9: '''</center> [[File:ImpExp59.png]] <center>'''Figure 10: '''</center> [[File:ImpExp60.png]] <center>'''Figure 11: '''</center> dc3871ae9833da2ab44601084fa984bef3f8d8c6 450 449 2015-08-17T14:03:58Z Robbaer 12 /* Preparing for Render with Blender Internal Renderer */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == The appearance of the MakeHuman model in the Blender Internal Renderer will depend on a number of things that will include transparency settings for materials, choice of lighting type, and shadow settings. We will illustrate this by first changing the default point light to a hemi light. Right click on the point lamp in the viewport and in the right properties panel select the lamp tab and choose hemi (Figure 4). [[File:ImpExp55a.png]] <center>'''Figure 4'''</center> To make transparent objects (eyes, eybrows, eyelashes, and hair) render properly in the Blender Internal render engine, we first need to make changes to thr tranparency and shadow panels of the material properties tab. Start by selecting the material tab in the properties panel on the right (figure 5). [[File:ImpExp55.png]] <center>'''Figure 5'''</center> Right click on one of the eyes in the 3D viewport to select them. In the transparency panel, set both the alpha and specular sliders to 0 (Figure 6). In the shadow panel, check 'Receive tranparent' (figure 7) [[File:ImpExp56.png]] [[File:ImpExp57.png]] <center>'''Figure 6''' '''Figure 7'''</center> [[File:ImpExp57.png]] <center>'''Figure 8: '''</center> [[File:ImpExp58.png]] <center>'''Figure 9: '''</center> [[File:ImpExp59.png]] <center>'''Figure 10: '''</center> [[File:ImpExp60.png]] <center>'''Figure 11: '''</center> ab2243b8a07bc7d181f6a12a16f0ee2af6ed5aa3 449 448 2015-08-17T13:49:09Z Robbaer 12 /* Preparing for Render with Blender Internal Renderer */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == The appearance of the MakeHuman model in the Blender Internal Renderer will depend on a number of things that will include transparency settings for materials, choice of lighting type, and shadow settings. We will illustrate this by first changing the default point light to a hemi light. Right click on the point lamp in the viewport and in the right properties panel select the lamp tab and choose hemi ( [[File:ImpExp55a.png]] <center>'''Figure 4'''</center> [[File:ImpExp55.png]] <center>'''Figure 5'''</center> [[File:ImpExp56.png]] <center>'''Figure 6'''</center> [[File:ImpExp57.png]] <center>'''Figure 7: '''</center> 7a011629ab2497859a9b8dbd2ae7cc8049a28523 448 447 2015-08-17T13:48:11Z Robbaer 12 /* Preparing for Render with Blender Internal Renderer */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == The appearance of the MakeHuman model in the Blender Internal Renderer will depend on a number of things that will include transparency settings for materials, choice of lighting type, and shadow settings. We will illustrate this by first changing the default point light to a hemi light. Right click on the point lamp in the viewport and in the right properties panel select the lamp tab and choose hemi ( [[File:ImpExp55a.png]] <center>'''Figure 3'''</center> [[File:ImpExp55.png]] <center>'''Figure 4'''</center> [[File:ImpExp56.png]] <center>'''Figure 5'''</center> [[File:ImpExp57.png]] <center>'''Figure 6: '''</center> 5582bb208a5e70b828aa1fcc67fade7c4f532307 447 446 2015-08-17T13:24:46Z Robbaer 12 /* Importing a MakeHuman Collada File */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what you will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> == Preparing for Render with Blender Internal Renderer == [[File:ImpExp56.png]] <center>'''Figure 4'''</center> [[File:ImpExp57.png]] <center>'''Figure 5'''</center> [[File:ImpExp55.png]] <center>'''Figure 6: Imported file as viewed in Blender 3D viepowt with Object mode and solid shading'''</center> 04ebced5b407c6acb4055705e4423c2c30a42b4d 446 445 2015-08-17T13:23:54Z Robbaer 12 /* Preparing for Render with Blender Internal Renderer */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what yo will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. == Preparing for Render with Blender Internal Renderer == [[File:ImpExp56.png]] <center>'''Figure 4'''</center> [[File:ImpExp57.png]] <center>'''Figure 5'''</center> [[File:ImpExp55.png]] <center>'''Figure 6: Imported file as viewed in Blender 3D viepowt with Object mode and solid shading'''</center> c11c4fa0e7d40b78b5a6784117deacd34f652625 445 444 2015-08-17T13:22:11Z Robbaer 12 /* Importing a MakeHuman Collada File */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what yo will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. == Preparing for Render with Blender Internal Renderer == [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> [[File:ImpExp56.png]] <center>'''Figure 4'''</center> [[File:ImpExp57.png]] <center>'''Figure 5'''</center> [[File:ImpExp55.png]] <center>'''Figure 6: Imported file as viewed in Blender 3D viepowt with Object mode and solid shading'''</center> 57c8c775070ceff9988df55e48569502197167a7 444 442 2015-08-17T13:20:37Z Robbaer 12 /* Importing a MakeHuman Collada File */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check 'Draw all Edges' and 'Transparency' in the bottom row. The benefit of this step for improving trasparent assets will depend on exactly how you imported the file, the lighting, and possibly other settings. What you see in the viewport is close to what yo will see if you choose Render | OpenGL Render from the Info editor at the top of the screen. [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> [[File:ImpExp56.png]] <center>'''Figure 4'''</center> [[File:ImpExp57.png]] <center>'''Figure 5'''</center> [[File:ImpExp55.png]] <center>'''Figure 6: Imported file as viewed in Blender 3D viepowt with Object mode and solid shading'''</center> 51b249a553f4c14fc66b805b4a5a9cb57c66c3cd 442 441 2015-08-17T13:01:55Z Robbaer 12 /* Importing a MakeHuman Collada File */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> In some cases, you might gain additional benefit in displaying materials for the eyes by going to the Object data tab (cube). This is located on the far right properties panel. For each of the transparent assets (eyes, eyelashes, eyebrows, and hair) select the Display panel and check Transparency [[File:ImpExp54.png]] <center>'''Figure 3: Object data'''</center> [[File:ImpExp56.png]] <center>'''Figure 4'''</center> [[File:ImpExp57.png]] <center>'''Figure 5'''</center> [[File:ImpExp55.png]] <center>'''Figure 6: Imported file as viewed in Blender 3D viepowt with Object mode and solid shading'''</center> 64e5b006d4b82799f59311e46289998b340b1245 441 439 2015-08-17T12:52:25Z Robbaer 12 /* Importing a MakeHuman Collada File */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottomof the left, T-tool panel will generally not need to be altered. Once imported the file is likely to appear gray in the 3D viewport when in object mode and shading set to solid (Figure 1, left panel). If shading is set to rendered with blender internal (BI) selected in the render drop down menu, the image will show the materials for many assets, but the eyes, eyebrows, eyelashes, and hair which contain transparent texture maps will not render properly. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and "solid" or "render" mode shading'''</center> More often if we wish to select objects in the scene we will set the shading mode to 'texture' instead of 'render'. By default the model will appear gray/white in texture mode by default. To improve this, bring up the N-tool panel by typing N with the cursor located over the 3D viewport or by selecting View | Properties from the 3D menu. On the toolbar, locate the shading panel and click on 'Multitexture' to change the setting to 'GLSL'. The image should now show non-transparent materials properly (Figure 2). [[File:ImpExp53.png]] <center>'''Figure 2'''</center> [[File:ImpExp55.png]] <center>'''Figure 3'''</center> [[File:ImpExp56.png]] <center>'''Figure 4'''</center> [[File:ImpExp57.png]] <center>'''Figure 5'''</center> [[File:ImpExp55.png]] <center>'''Figure 6: Imported file as viewed in Blender 3D viepowt with Object mode and solid shading'''</center> 8b3107b1e68dc7304ae8162344fdaadda75e8eb8 439 436 2015-08-17T00:55:26Z Robbaer 12 /* Importing a MakeHuman Collada File */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottom left tool panel should generally not be altered. Once imported the file is likely to appear gray in the 3D viewport. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and solid shading'''</center> [[File:ImpExp53.png]] <center>'''Figure 2'''</center> [[File:ImpExp55.png]] <center>'''Figure 3'''</center> [[File:ImpExp56.png]] <center>'''Figure 4'''</center> [[File:ImpExp57.png]] <center>'''Figure 5'''</center> [[File:ImpExp55.png]] <center>'''Figure 6: Imported file as viewed in Blender 3D viepowt with Object mode and solid shading'''</center> 2a3fb19c0e90afb409bb176e9ed43e28c73d1290 436 435 2015-08-17T00:39:46Z Robbaer 12 /* Importing a MakeHuman Collada File */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottom left tool panel should generally not be altered. Once imported the file is likely to appear gray in the 3D viewport. [[File:ImpExp52.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and solid shading'''</center> [[File:ImpExp53.png]] [[File:ImpExp54.png]] <center>'''Figure 2'''</center> [[File:ImpExp55.png]] <center>'''Figure 3'''</center> [[File:ImpExp56.png]] <center>'''Figure 4'''</center> [[File:ImpExp57.png]] <center>'''Figure 5'''</center> [[File:ImpExp55.png]] <center>'''Figure 6: Imported file as viewed in Blender 3D viepowt with Object mode and solid shading'''</center> 4d54dd6e1dd715ffedc07599ebc4eb2b5450d393 435 434 2015-08-17T00:31:47Z Robbaer 12 /* Importing a MakeHuman Collada File */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottom left tool panel should generally not be altered. Once imported the file is likely to appear gray in the 3D viewport. [[File:ImpExp50.png]] <center>'''Figure 1: Imported file as viewed in Blender 3D viepowt with Object mode and solid shading'''</center> [[File:ImpExp51.png]] <center>'''Figure 2'''</center> [[File:ImpExp52.png]] <center>'''Figure 3'''</center> [[File:ImpExp53.png]] <center>'''Figure 4'''</center> [[File:ImpExp54.png]] <center>'''Figure 5: Imported file as viewed in Blender 3D viepowt with Object mode and solid shading'''</center> [[File:ImpExp55.png]] <center>'''Figure 6: Imported file as viewed in Blender 3D viepowt with Object mode and solid shading'''</center> e5cb50af1aa38172a422089400d3c80acd189230 434 433 2015-08-17T00:26:17Z Robbaer 12 /* Importing a MakeHuman Collada File */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == The collada file is imported into Blender using the File | Import menu and choosing collada. The default settings at the bottom left tool panel should generally not be altered. Once imported the file is likely to appear gray in the 3D viewport. Figure 1. Imported file cad0a06f9ae101a94b321ba1ae141aea2dc10363 433 352 2015-08-17T00:20:59Z Robbaer 12 /* Introduction */ wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using collada (.dae) format. When exporting for subsequent import into blender, the best choice of export scales is usually meters. == Importing a MakeHuman Collada File == f7a38f54ae1f09aa478549a7f2c63c8338668f1c 352 351 2015-08-02T21:41:16Z Robbaer 12 wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using Collada (.dae) format. == Importing a MakeHuman Collada File == d6690f057f469f953d035399d5b6d440d6924a43 351 2015-08-02T21:39:59Z Robbaer 12 Created page with "== Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting..." wikitext text/x-wiki == Introduction == We will use the file created in the “Illustrating the Export Process for Subsequent Import” section. The MakeHuman export settings used when targeting Blender import should include setting the scale units to meters. Blender is capable of importing either Collada (.dae) format or Autodesk FBX format files. The import results and handling are quite similar regardless of which you choose to use, and both will require similar fixes for transparent assets on the eyes, eyebrows, eyelashes, and hair. Collada files are text based, and thus, are often quite large. Makehuman assets with textures will be exported with those textures saved in a folder named "textures" in the same folder as the parent folder. By default, on Windows If you move the collada file to a new computer or directory, you must move the "textures" folder to that same folder. By default the exported file will be found in ~/makehuman/v1/exports/ (where ~ is the user home directory). Blender can import only binary FBX files at present, so ideally, binary would be checked for MakeHuman FBX export. <nowiki>[RWB Note: As of this writing there are still some issues with direct FBX binary export, but those are expected to be repaired going forward. In the meantime, a viable workaround for those wanting to use FBX format is to export an ASCII FBX file, convert it with the Autodesk FBX converter, and import it into Blender]</nowiki>. Because of the ASCII --> binary issues that currently exist with the FBX format, we will describe moving assets from MakeHuman to Blender using Collada (.dae) format. cb6cbc2b0b8f0542580bd020100e0e2fccdebe59 Releases 0 216 1960 1928 2020-12-27T15:12:43Z Joepal 14 wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120mac|1.2.0 for MacOS]] (released 2020-12-27) * [[Releases:120|1.2.0 final]] (released 2020-11-06) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) == Old alphas and betas == * [[Releases:120b2|1.2.0 beta 2]] (released 2020-07-27) * [[Releases:120b1|1.2.0 beta 1]] (released 2020-05-03) * [[Releases:120a4|1.2.0 alpha 4]] (released 2019-12-15) * [[Releases:120a3|1.2.0 alpha 3]] (released 2019-03-19) * [[Releases:120a2|1.2.0 alpha 2]] (released 2018-12-10) * [[Releases:120a1|1.2.0 alpha 1]] (released 2018-11-20) 28c301de7d190abf89614384e25da790f4f697ff 1928 1927 2020-11-06T12:37:16Z Joepal 14 wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120|1.2.0 final]] (released 2020-11-06) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) == Old alphas and betas == * [[Releases:120b2|1.2.0 beta 2]] (released 2020-07-27) * [[Releases:120b1|1.2.0 beta 1]] (released 2020-05-03) * [[Releases:120a4|1.2.0 alpha 4]] (released 2019-12-15) * [[Releases:120a3|1.2.0 alpha 3]] (released 2019-03-19) * [[Releases:120a2|1.2.0 alpha 2]] (released 2018-12-10) * [[Releases:120a1|1.2.0 alpha 1]] (released 2018-11-20) ed53aebc65186ec28efa43b6d992288965694474 1927 1887 2020-11-06T12:36:40Z Joepal 14 wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120|1.2.0 final]] (released 2020-11-06) * [[Releases:120b2|1.2.0 beta 2]] (released 2020-07-27) * [[Releases:120b1|1.2.0 beta 1]] (released 2020-05-03) * [[Releases:120a4|1.2.0 alpha 4]] (released 2019-12-15) * [[Releases:120a3|1.2.0 alpha 3]] (released 2019-03-19) * [[Releases:120a2|1.2.0 alpha 2]] (released 2018-12-10) * [[Releases:120a1|1.2.0 alpha 1]] (released 2018-11-20) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) 90ee339273f682cf1b0d63a69c40d73ebc2e4bb6 1887 1878 2020-10-25T11:51:21Z Joepal 14 /* Releases in the 12x series */ wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120|1.2.0 final]] (not yet released) * [[Releases:120b2|1.2.0 beta 2]] (released 2020-07-27) * [[Releases:120b1|1.2.0 beta 1]] (released 2020-05-03) * [[Releases:120a4|1.2.0 alpha 4]] (released 2019-12-15) * [[Releases:120a3|1.2.0 alpha 3]] (released 2019-03-19) * [[Releases:120a2|1.2.0 alpha 2]] (released 2018-12-10) * [[Releases:120a1|1.2.0 alpha 1]] (released 2018-11-20) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) 7bc43c30763e5349e8b0bbc300753ffe8e41f46e 1878 1877 2020-09-26T09:42:32Z Joepal 14 wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120rc1|1.2.0 release candidate 1]] (not yet released) * [[Releases:120b2|1.2.0 beta 2]] (released 2020-07-27) * [[Releases:120b1|1.2.0 beta 1]] (released 2020-05-03) * [[Releases:120a4|1.2.0 alpha 4]] (released 2019-12-15) * [[Releases:120a3|1.2.0 alpha 3]] (released 2019-03-19) * [[Releases:120a2|1.2.0 alpha 2]] (released 2018-12-10) * [[Releases:120a1|1.2.0 alpha 1]] (released 2018-11-20) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) 90d94162b7588eddca85cd8a75e6fd11a953a5ff 1877 1845 2020-09-26T09:42:19Z Joepal 14 /* Releases in the 12x series */ wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120rc|1.2.0 release candidate 1]] (not yet released) * [[Releases:120b2|1.2.0 beta 2]] (released 2020-07-27) * [[Releases:120b1|1.2.0 beta 1]] (released 2020-05-03) * [[Releases:120a4|1.2.0 alpha 4]] (released 2019-12-15) * [[Releases:120a3|1.2.0 alpha 3]] (released 2019-03-19) * [[Releases:120a2|1.2.0 alpha 2]] (released 2018-12-10) * [[Releases:120a1|1.2.0 alpha 1]] (released 2018-11-20) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) 4136b6714b1bbaa59f6d7032a87305569483a33c 1845 1791 2020-07-27T11:24:24Z Joepal 14 wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120b2|1.2.0 beta 2]] (released 2020-07-27) * [[Releases:120b1|1.2.0 beta 1]] (released 2020-05-03) * [[Releases:120a4|1.2.0 alpha 4]] (released 2019-12-15) * [[Releases:120a3|1.2.0 alpha 3]] (released 2019-03-19) * [[Releases:120a2|1.2.0 alpha 2]] (released 2018-12-10) * [[Releases:120a1|1.2.0 alpha 1]] (released 2018-11-20) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) e1c22b88762c64839ecf5d802c653089b178fa85 1791 1788 2020-05-22T09:46:58Z Joepal 14 /* Releases in the 12x series */ wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120b2|1.2.0 beta 2]] (not yet released) * [[Releases:120b1|1.2.0 beta 1]] (released 2020-05-03) * [[Releases:120a4|1.2.0 alpha 4]] (released 2019-12-15) * [[Releases:120a3|1.2.0 alpha 3]] (released 2019-03-19) * [[Releases:120a2|1.2.0 alpha 2]] (released 2018-12-10) * [[Releases:120a1|1.2.0 alpha 1]] (released 2018-11-20) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) fc2134e5c8d1c1ffb99c4b53dbef5d87a6c7ec2c 1788 1620 2020-05-03T12:46:39Z Joepal 14 /* Releases in the 12x series */ wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120b1|1.2.0 beta 1]] (released 2020-05-03) * [[Releases:120a4|1.2.0 alpha 4]] (released 2019-12-15) * [[Releases:120a3|1.2.0 alpha 3]] (released 2019-03-19) * [[Releases:120a2|1.2.0 alpha 2]] (released 2018-12-10) * [[Releases:120a1|1.2.0 alpha 1]] (released 2018-11-20) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) ec720fdc94026ed17472a74fb7110da4b0e47492 1620 1588 2019-12-02T08:23:51Z Joepal 14 /* Releases in the 12x series */ wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120b1|1.2.0 beta 1]] (not yet released) * [[Releases:120a4|1.2.0 alpha 4]] (to be released in december) * [[Releases:120a3|1.2.0 alpha 3]] (released 2019-03-19) * [[Releases:120a2|1.2.0 alpha 2]] (released 2018-12-10) * [[Releases:120a1|1.2.0 alpha 1]] (released 2018-11-20) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) 407bb52443dad55ab46d0adf8a39bde7da5d799b 1588 1586 2019-04-07T17:20:57Z Joepal 14 /* Releases in the 12x series */ wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120b1|1.2.0 beta 1]] (not yet released) * [[Releases:120a3|1.2.0 alpha 3]] (released 2019-03-19) * [[Releases:120a2|1.2.0 alpha 2]] (released 2018-12-10) * [[Releases:120a1|1.2.0 alpha 1]] (released 2018-11-20) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) 4e5ff9f7eae66b968233686703aad97ced6f80cc 1586 1570 2019-04-06T20:14:36Z Polylearn 80 year fix wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120a3|1.2.0 alpha 3]] (released 2019-03-19) * [[Releases:120a2|1.2.0 alpha 2]] (released 2018-12-10) * [[Releases:120a1|1.2.0 alpha 1]] (released 2018-11-20) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) e88ddc37c09e1bde973bd6b1773361ab8b50b112 1570 1545 2019-03-19T17:15:18Z Joepal 14 /* Releases in the 12x series */ wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120a3|1.2.0 alpha 3]] (released 2018-03-19) * [[Releases:120a2|1.2.0 alpha 2]] (released 2018-12-10) * [[Releases:120a1|1.2.0 alpha 1]] (released 2018-11-20) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) 0e1fc9a02ed08771b6cbcff9a1a06c933e069f4a 1545 1542 2018-12-18T08:11:47Z Joepal 14 /* Releases in the 12x series */ wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120a3|1.2.0 alpha 3]] (not yet released) * [[Releases:120a2|1.2.0 alpha 2]] (released 2018-12-10) * [[Releases:120a1|1.2.0 alpha 1]] (released 2018-11-20) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) 05ac38eeaba49189ab7cdbad676e5986af21f4fa 1542 1528 2018-12-10T12:34:21Z Joepal 14 /* Releases in the 12x series */ wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120a2|1.2.0 alpha 2]] (released 2018-12-10) * [[Releases:120a1|1.2.0 alpha 1]] (released 2018-11-20) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) cf4a4150d1219361dde982ed02ddfc9cc01cb68c 1528 1527 2018-11-29T08:41:36Z Joepal 14 /* Releases in the 12x series */ wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120a2|1.2.0 alpha 2]] (not yet released) * [[Releases:120a1|1.2.0 alpha 1]] (released 2018-11-20) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) 23c692146c1be7a270fda112d946734d1a1a19ae 1527 1525 2018-11-29T08:41:19Z Joepal 14 /* Releases in the 12x series */ wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120a2|1.2.0 alpha 2]] (not yet released) * [[Releases:120a1|1.2.0 alpha 1]] Released 2018-11-20 == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) 0b637d41aeef85350703ff4e9640a128b3483aff 1525 1484 2018-11-29T08:39:31Z Joepal 14 wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120a2|1.2.0 alpha 2]] (not yet released) * [[Releases:120a1|1.2.0 alpha 1]] (not yet released) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) a4062de5691edcfdd66b63a8d86054b0e6202770 1484 1328 2018-11-05T10:10:23Z Joepal 14 wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 12x series == Releases in this series is called "MakeHuman community" (contrary to just "MakeHuman" in the 1.1.x series), as they also bundle community content and community plugins. * [[Releases:120a1|1.2.0 alpha 1]] (not yet released) == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) 3fc960b96c0307168a158d7261a9ce863c277514 1328 1296 2017-03-04T08:53:22Z Joepal 14 /* Releases in the 11x series */ wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 11x series == * [[Releases:111|1.1.1]] (released 2016-03-05) * [[Releases:110|1.1.0]] (released 2016-05-14) d4fb8f2d84bb8ccce8adb3be23425e3962f6f4df 1296 664 2017-02-05T11:28:49Z Joepal 14 wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 11x series == * [[Releases:110|1.1.0]] (released 2016-05-14) * [[Releases:111|1.1.1]] (to be released february-ish) 577e0185eededf2f6a39625eb63f857917534ece 664 618 2016-05-14T14:25:01Z Joepal 14 wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 11x series == * [[Releases:110|1.1.0]] (released 2016-05-14) 1da22771bd8e499ec375e3f05adcae2031a0296f 618 617 2016-04-15T09:38:40Z Joepal 14 wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 11x series == * [[Releases:110|1.1.0]] (preliminary, currently in RC stage) 3ff1f760c064041708e76f098aef4fa1720c4255 617 2016-04-15T09:38:14Z Joepal 14 Created page with "Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to i..." wikitext text/x-wiki Note that this page was started at the release of 1.1.0 and does not contain information about historical releases. If anyone want to bother adding these, they're welcome to it. == Releases in the 11x series == * [Releases:110|1.1.0] (preliminary, currently in RC stage) 21449613053287412e82a86a03190f1a00641eda Releases:110 0 217 665 663 2016-05-16T13:07:18Z Robbaer 12 /* Errata */ wikitext text/x-wiki These are the final release notes for 1.1.0, which was released 2016-05-14. == Highlights == See also the [http://www.makehumancommunity.org/w/images/7/7a/Infographic_110.png release infographic]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system with auto-rigging, support for T-pose export, and initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/392 #392] - There are numerous issues with the BHV export * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * Drag and drop of .mhm files in makehuman * Improved text support for long right panel labels * Nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * Gradient background * Allow disabling/enabling grid * Tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation * Removed export for old mhx, MD5 and skel formats === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed * Removed specific rigs intended for commercial third part systems. These have been deferred to the user repos. === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings 822fee2320650b62a128ccc61d29559790664e22 663 656 2016-05-14T14:24:27Z Joepal 14 wikitext text/x-wiki These are the final release notes for 1.1.0, which was released 2016-05-14. == Highlights == See also the [http://www.makehumancommunity.org/w/images/7/7a/Infographic_110.png release infographic]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system with auto-rigging, support for T-pose export, and initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/392 #392] - There are numerous issues with the BHV export * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * Drag and drop of .mhm files in makehuman * Improved text support for long right panel labels * Nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * Gradient background * Allow disabling/enabling grid * Tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation * Removed export for old mhx, MD5 and skel formats === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed * Removed specific rigs intended for commercial third part systems. These have been deferred to the user repos. === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings 3dabef38cce2e019b9163b3071bf5b95c844e072 656 655 2016-05-12T11:25:13Z Joepal 14 Protected "[[Releases:110]]": Release notes are frozen ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) wikitext text/x-wiki These are the final release notes for 1.1.0, which was released 2016-05-14. == Highlights == See also the [http://www.makehumancommunity.org/w/images/7/7a/Infographic_110.png release infographic]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system with auto-rigging, support for T-pose export, and initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/392 #392] - There are numerous issues with the BHV export * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/983 #983] - Some sliders are still missing icons (this has no effect on functionality, it just a visual glitch) * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * Drag and drop of .mhm files in makehuman * Improved text support for long right panel labels * Nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * Gradient background * Allow disabling/enabling grid * Tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation * Removed export for old mhx, MD5 and skel formats === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed * Removed specific rigs intended for commercial third part systems. These have been deferred to the user repos. === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings eaf6234db67e130a8697cb7b3a529de2b5209ee9 655 654 2016-05-12T11:20:47Z Joepal 14 /* Pose Animate */ wikitext text/x-wiki These are the final release notes for 1.1.0, which was released 2016-05-14. == Highlights == See also the [http://www.makehumancommunity.org/w/images/7/7a/Infographic_110.png release infographic]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system with auto-rigging, support for T-pose export, and initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/392 #392] - There are numerous issues with the BHV export * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/983 #983] - Some sliders are still missing icons (this has no effect on functionality, it just a visual glitch) * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * Drag and drop of .mhm files in makehuman * Improved text support for long right panel labels * Nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * Gradient background * Allow disabling/enabling grid * Tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation * Removed export for old mhx, MD5 and skel formats === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed * Removed specific rigs intended for commercial third part systems. These have been deferred to the user repos. === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings eaf6234db67e130a8697cb7b3a529de2b5209ee9 654 653 2016-05-12T11:20:27Z Joepal 14 /* Pose Animate */ wikitext text/x-wiki These are the final release notes for 1.1.0, which was released 2016-05-14. == Highlights == See also the [http://www.makehumancommunity.org/w/images/7/7a/Infographic_110.png release infographic]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system with auto-rigging, support for T-pose export, and initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/392 #392] - There are numerous issues with the BHV export * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/983 #983] - Some sliders are still missing icons (this has no effect on functionality, it just a visual glitch) * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * Drag and drop of .mhm files in makehuman * Improved text support for long right panel labels * Nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * Gradient background * Allow disabling/enabling grid * Tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation * Removed export for old mhx, MD5 and skel formats === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed * Dropped support for specific rigs intended for commercial third part systems. These have been deferred to the user repos. === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings 27be57c7507401e3ecda99f216d195b8d994717f 653 652 2016-05-12T11:18:27Z Joepal 14 /* Errata */ wikitext text/x-wiki These are the final release notes for 1.1.0, which was released 2016-05-14. == Highlights == See also the [http://www.makehumancommunity.org/w/images/7/7a/Infographic_110.png release infographic]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system with auto-rigging, support for T-pose export, and initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/392 #392] - There are numerous issues with the BHV export * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/983 #983] - Some sliders are still missing icons (this has no effect on functionality, it just a visual glitch) * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * Drag and drop of .mhm files in makehuman * Improved text support for long right panel labels * Nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * Gradient background * Allow disabling/enabling grid * Tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation * Removed export for old mhx, MD5 and skel formats === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings aeb503bd684ee174683c7a41252a5afa8f11c677 652 651 2016-05-12T11:17:23Z Joepal 14 wikitext text/x-wiki These are the final release notes for 1.1.0, which was released 2016-05-14. == Highlights == See also the [http://www.makehumancommunity.org/w/images/7/7a/Infographic_110.png release infographic]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system with auto-rigging, support for T-pose export, and initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/392 #392] - There are numerous issues with the BHV export * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/983 #983] - Some sliders are still missing icons (this has no effect on functionality, it just a visual glitch) * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import * [http://bugtracker.makehumancommunity.org/issues/1013 #1013] - Some target files are different between makeclothes and makehuman == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * Drag and drop of .mhm files in makehuman * Improved text support for long right panel labels * Nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * Gradient background * Allow disabling/enabling grid * Tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation * Removed export for old mhx, MD5 and skel formats === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings eefea5df9f8a5d58102e959f65753dba51d3b0bb 651 646 2016-05-12T11:16:06Z Joepal 14 wikitext text/x-wiki These are the final release notes for 1.1.0, which was released 2016-05-14. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system with auto-rigging, support for T-pose export, and initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/392 #392] - There are numerous issues with the BHV export * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/983 #983] - Some sliders are still missing icons (this has no effect on functionality, it just a visual glitch) * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import * [http://bugtracker.makehumancommunity.org/issues/1013 #1013] - Some target files are different between makeclothes and makehuman == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * Drag and drop of .mhm files in makehuman * Improved text support for long right panel labels * Nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * Gradient background * Allow disabling/enabling grid * Tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation * Removed export for old mhx, MD5 and skel formats === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings f353ac4b12a6732e655d67bcc70a289c653801a6 646 643 2016-05-09T08:29:32Z Joepal 14 wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system with auto-rigging, support for T-pose export, and initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/392 #392] - There are numerous issues with the BHV export * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/983 #983] - Some sliders are still missing icons (this has no effect on functionality, it just a visual glitch) * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import * [http://bugtracker.makehumancommunity.org/issues/1013 #1013] - Some target files are different between makeclothes and makehuman == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * Drag and drop of .mhm files in makehuman * Improved text support for long right panel labels * Nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * Gradient background * Allow disabling/enabling grid * Tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation * Removed export for old mhx, MD5 and skel formats === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings 9164b14de93f72d3705fae421414b6c1ad088521 643 642 2016-04-19T03:01:38Z Robbaer 12 /* File-Export */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system with auto-rigging, support for T-pose export, and initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * Drag and drop of .mhm files in makehuman * Improved text support for long right panel labels * Nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * Gradient background * Allow disabling/enabling grid * Tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation * Removed export for old mhx, MD5 and skel formats === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings 8bf3d78e93bca01aa7b17017bc664187634bbe29 642 641 2016-04-19T02:04:49Z Robbaer 12 /* UI */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system with auto-rigging, support for T-pose export, and initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * Drag and drop of .mhm files in makehuman * Improved text support for long right panel labels * Nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * Gradient background * Allow disabling/enabling grid * Tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings 73ec63f14fe5cb5fa90525aee7362b92084e401e 641 640 2016-04-19T02:03:44Z Robbaer 12 /* Detailed list of changes */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system with auto-rigging, support for T-pose export, and initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * drag and drop of .mhm files in makehuman * Improved text support for long right panel labels * nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * gradient background * allow disabling/enabling grid * tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings e3468a926b42a991e84ea7ddaf83bac6da1eba8c 640 639 2016-04-19T01:47:10Z Robbaer 12 /* Highlights */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system with auto-rigging, support for T-pose export, and initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * gradient background * allow disabling/enabling grid * drag and drop of .mhm files in makehuman * tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings ba5f6ea0fd20aa3a1270f3ee623f74eddfd468dc 639 638 2016-04-19T01:46:30Z Robbaer 12 /* Highlights */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system with auto-rigging, including support for T-pose export and initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * gradient background * allow disabling/enabling grid * drag and drop of .mhm files in makehuman * tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings 18f9a8dedd85b761c504dba175799226b5ab5576 638 637 2016-04-19T01:42:19Z Robbaer 12 /* Highlights */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system including support for T-pose export * Extended pose library with auto-rigging, including auto weight remapping with initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * gradient background * allow disabling/enabling grid * drag and drop of .mhm files in makehuman * tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings 5fa8cefe364eed246f86b4c00b6d4b71f350d636 637 636 2016-04-19T01:40:38Z Robbaer 12 /* Highlights */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system including support for T-pose export ** Extended pose library with auto-rigging, including auto weight remapping with initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * gradient background * allow disabling/enabling grid * drag and drop of .mhm files in makehuman * tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings a7b5c663a418cc5fbdbfff3e786f686eb790f2e0 636 635 2016-04-19T01:14:09Z Robbaer 12 /* Highlights */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system including support for T-pose export * Extended pose library with auto-rigging, including auto weight remapping with initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * gradient background * allow disabling/enabling grid * drag and drop of .mhm files in makehuman * tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings 80675c14b59c1047eb6da90f8909f35ec83de6bc 635 634 2016-04-19T01:13:18Z Robbaer 12 /* Highlights */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system including support for T-pose export ** Extended pose library with auto-rigging, including auto weight remapping with initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * gradient background * allow disabling/enabling grid * drag and drop of .mhm files in makehuman * tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings a7b5c663a418cc5fbdbfff3e786f686eb790f2e0 634 633 2016-04-19T01:10:51Z Robbaer 12 /* Highlights */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * New pose system including support for T-pose export * Extended pose library with auto-rigging, including auto weight remapping with initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * gradient background * allow disabling/enabling grid * drag and drop of .mhm files in makehuman * tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings 5fa8cefe364eed246f86b4c00b6d4b71f350d636 633 632 2016-04-19T01:08:35Z Robbaer 12 /* Highlights */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Many bugfixes and stability fixes * Many targets improved and minor modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * Mesh can be exported in T-pose * Extended pose library with auto-rigging, including auto weight remapping with initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * gradient background * allow disabling/enabling grid * drag and drop of .mhm files in makehuman * tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings b40f87291c90dbb025da6340a49db88612ce117b 632 630 2016-04-19T01:06:51Z Robbaer 12 /* Highlights */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Many bugfixes and stability fixes * Many improved targets, fixed and modeling corrections * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * Mesh can be exported in T-pose * Extended pose library with auto-rigging, including auto weight remapping with initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * gradient background * allow disabling/enabling grid * drag and drop of .mhm files in makehuman * tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings 37a2db1b5d05917191163b734d1e5e9db18e407b 630 629 2016-04-17T11:40:59Z Joepal 14 /* Detailed list of changes */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Many bugfixes and stability fixes * Many targets improved, fixed modeling mistakes * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * Mesh can be exported in T-pose * Extended pose library with auto-rigging, including auto weight remapping with initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0. The full list of changes (the commit list) [https://bitbucket.org/MakeHuman/makehuman/commits/branch/stable can be found at BitBucket]. === UI === * nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * gradient background * allow disabling/enabling grid * drag and drop of .mhm files in makehuman * tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings dd068e4edb71924228b5073b0bbfa40655e231f8 629 628 2016-04-17T11:38:59Z Joepal 14 /* Errata */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Many bugfixes and stability fixes * Many targets improved, fixed modeling mistakes * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * Mesh can be exported in T-pose * Extended pose library with auto-rigging, including auto weight remapping with initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * [http://bugtracker.makehumancommunity.org/issues/899 #899] - FBX export dislikes non-ascii characters * [http://bugtracker.makehumancommunity.org/issues/945 #945] - Increasing eye bag slider breaks armature * [http://bugtracker.makehumancommunity.org/issues/1001 #1001] - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0 === UI === * nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * gradient background * allow disabling/enabling grid * drag and drop of .mhm files in makehuman * tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings 0b3442bd9f82b9ee05592f873bae46fa8f6a042d 628 627 2016-04-17T11:37:20Z Joepal 14 wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Many bugfixes and stability fixes * Many targets improved, fixed modeling mistakes * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * Mesh can be exported in T-pose * Extended pose library with auto-rigging, including auto weight remapping with initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * #899 - FBX export dislikes non-ascii characters * #945 - Increasing eye bag slider breaks armature * #1001 - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0 === UI === * nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) * gradient background * allow disabling/enabling grid * drag and drop of .mhm files in makehuman * tag filters in all libraries === File-Export === * Add support for binary FBX exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions * Allow mixing body pose and face pose, if face pose is set override face bones of body pose * Support modeling while mesh is posed === System/code === * windows DLL dependency fix * improvements and caching in proxy libraries for faster asset loading * binary format for proxy files for faster loading and more compact data * new fully data-driven modifier system * rename of targets and modifiers for more consistency * new skeleton API is much more understandable * a lot of in-code documentation added * many code cleanups and improvements * refactors to improve re-usability of code and facilitate plugin development * reduction of coupling between components * makehuman can be started with a .mhm file passed as commandline argument === Settings === * Add the ability to automatically return MakeHuman to the default settings d1955be80d754bd29c30cc4e30a15319782f317c 627 626 2016-04-17T11:30:54Z Joepal 14 /* Detailed list of changes */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * Mesh can be exported in T-pose * Extended pose library with auto-rigging, including auto weight remapping with initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * #899 - FBX export dislikes non-ascii characters * #945 - Increasing eye bag slider breaks armature * #1001 - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0 === UI === * nicer looking application icons by using SVG vector graphics (looks better on OSX retina displays) === File-Export === * Add support for binary FBX exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions === Settings === * Add the ability to automatically return MakeHuman to the default settings cefa70f6efe38d5a5324fecca1cf0e49911b6976 626 625 2016-04-15T13:56:41Z Robbaer 12 /* Pose Animate */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * Mesh can be exported in T-pose * Extended pose library with auto-rigging, including auto weight remapping with initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * #899 - FBX export dislikes non-ascii characters * #945 - Increasing eye bag slider breaks armature * #1001 - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0 === File-Export === * Add binary fbx exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system) * Design basic rigs for new rigging system to support CMU animation and facial posing * Add a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions === Settings === * Add the ability to automatically return MakeHuman to the default settings 06070143a0bb93a9c7868b1ad5597b0aca16d38b 625 624 2016-04-15T13:51:49Z Robbaer 12 /* Important notes */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * Mesh can be exported in T-pose * Extended pose library with auto-rigging, including auto weight remapping with initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. In addition, there is now a large online area for community-designed assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * #899 - FBX export dislikes non-ascii characters * #945 - Increasing eye bag slider breaks armature * #1001 - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0 === File-Export === * Add binary fbx exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system?) * Design basic rigs for new rigging system to support CMU animation and facial posing * Addd a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions === Settings === * Add the ability to automatically return MakeHuman to the default settings e68b347d3f1a274c7e3464d747ccaa3156ee479d 624 623 2016-04-15T13:49:27Z Robbaer 12 /* Important notes */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * Mesh can be exported in T-pose * Extended pose library with auto-rigging, including auto weight remapping with initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. Version 1.0.2 MHM files should be possible to open, but deprecated proxies and assets may not be available. MHM files made with earlier, unsupported nightly builds may produce very unexpected results. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, a small set of robust, full body clothing choices is supplied by default. There is a large online area for additional assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * #899 - FBX export dislikes non-ascii characters * #945 - Increasing eye bag slider breaks armature * #1001 - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0 === File-Export === * Add binary fbx exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system?) * Design basic rigs for new rigging system to support CMU animation and facial posing * Addd a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions === Settings === * Add the ability to automatically return MakeHuman to the default settings 91dd33effcd11735da1b072e7e64b8effa243700 623 622 2016-04-15T13:38:13Z Robbaer 12 /* Highlights */ wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * Mesh can be exported in T-pose * Extended pose library with auto-rigging, including auto weight remapping with initial support for special poses like high heel shoes * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. MHM files should be possible to import but might look strange. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, there is a large online area for assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * #899 - FBX export dislikes non-ascii characters * #945 - Increasing eye bag slider breaks armature * #1001 - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0 === File-Export === * Add binary fbx exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system?) * Design basic rigs for new rigging system to support CMU animation and facial posing * Addd a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions === Settings === * Add the ability to automatically return MakeHuman to the default settings 656069547cb891da422bea7373d931fdebe8cd2d 622 621 2016-04-15T10:23:48Z Joepal 14 wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * Mesh can be exported in T-pose * Exended pose library with autoriggint, including auto weight remapping and special poses (for example foot pose with high heel shoes) * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies * FBX export now supports binary FBX and should work for most third-part applications which support FBX == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. MHM files should be possible to import but might look strange. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, there is a large online area for assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * #899 - FBX export dislikes non-ascii characters * #945 - Increasing eye bag slider breaks armature * #1001 - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0 === File-Export === * Add binary fbx exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system?) * Design basic rigs for new rigging system to support CMU animation and facial posing * Addd a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions === Settings === * Add the ability to automatically return MakeHuman to the default settings 45e298b6e0987b49700067454a34283ece19773e 621 619 2016-04-15T10:07:41Z Joepal 14 wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == See also the [[:File:Infographic 110.png|release infographic]]. * Completely new skeleton and posing system, with support for pose loading from BVH, and support for custom weight and proxies * Mesh can be exported in T-pose * Exended pose library with autoriggint, including auto weight remapping and special poses (for example foot pose with high heel shoes) * New skin library with age variation * New expression system now based on a face bone rig, including a library with facial expressions. * Improved topologies/proxies == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. MHM files should be possible to import but might look strange. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, there is a large online area for assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. '''Most information about MH, and services around MH, has been moved:''' The server/domain setup has been changed for various legal reasons. The main homepage http://www.makehuman.org is now a skeleton page which mostly include download links. Other services such as forum, bugtracker, wiki and so on has been moved to http://www.makehumancommunity.org. Some links might still not have been updated. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * #899 - FBX export dislikes non-ascii characters * #945 - Increasing eye bag slider breaks armature * #1001 - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0 === File-Export === * Add binary fbx exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system?) * Design basic rigs for new rigging system to support CMU animation and facial posing * Addd a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions === Settings === * Add the ability to automatically return MakeHuman to the default settings 4894de31b8c1c2ac5a092516f51fa53a21240094 619 2016-04-15T09:55:20Z Joepal 14 Created page with "These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == == Important notes == If you are currently using 1.0.2, there are some t..." wikitext text/x-wiki These are preliminary release notes. 1.1.0 is currently in release candidate mode. == Highlights == == Important notes == If you are currently using 1.0.2, there are some things that may be confusing when upgrading to 1.1.0. '''Many assets are incompatible:''' If you have a large set of manually added assets such as clothes and targets, please be aware that these may not work as expected with the new release. Targets should mostly work. MHM files should be possible to import but might look strange. In general, you should test your assets with the new release before trusting everything works as expected. '''New philosophy in which assets are included per default:''' Previously all existing assets were included with the default distribution. This is no longer so. Instead, there is a large online area for assets, to which everyone is welcome to upload their creations. Some previously included assets have been removed from the default distribution in favor of this area. The online area can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html '''MHX has been deprecated, MHX2 is a plugin:''' The old MHX format is deprecated. While it still remains in Blender's code base, users are strongly discouraged from using it. The successor is MHX2, which is a plugin which has to be installed for both MakeHuman and Blender (you will most likely want to install exactly the same version in both). More information can be found in [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. == Errata == A few issues have been pushed until later releases. We are aware of these and will fix them later. * #899 - FBX export dislikes non-ascii characters * #945 - Increasing eye bag slider breaks armature * #1001 - Collada export produces (skeleton) warnings on Maya import == Detailed list of changes == This is a semi-structured list of changes between 1.0.2 and 1.1.0 === File-Export === * Add binary fbx exporter * Removed export for old mhx, MD5 and skel formats * Added support for optional export of helper geometry and facial pose units * Added support for specifying bone orientation === Modeling === * Improved labeling and consistency of modelling sliders * Add random model generation * Added nipple point and nipple size sliders * Added head fat slider * Added scale depth of parietal side slider * Added additional sliders for shaping neck and double chin * Added eye bag sliders * Added support for laugh lines and dimples * Add additional sliders controlling chin shape * Break cheek support into left/right sections * Add additional sliders to control pectoral and dorsal muscle * Add additional control of waist position * Add sliders controlling navel prominence and position * Added sliders to control shoulder muscle mass * Add additional sliders controlling upper arm shape * Additional sliders to control size and muscularity of upper and lower legs * Additional slider to control lower leg height * Add separate measure control for knee === Geometries === * Drop genital proxy support (these have been deferred to the user contributed assets area) * Improve clothes tagging system * Include default clothing outfits that clothe upper and lower body without mesh intersections * Include more and improved hair styles * Increase the number and richness of default topologies to include generic and muscle phenotypes * Add additional eyelash choice === Materials === * Extend included skin materials to middle age and older individuals * Extend the available choices for eye color === Pose Animate === * Redesign the entire rigging system for improved mesh control and pose support (2 skeleton system?) * Design basic rigs for new rigging system to support CMU animation and facial posing * Addd a pose tab with selectable poses including a T pose * Add an expressions tab with 32 selectable facial expressions === Settings === * Add the ability to automatically return MakeHuman to the default settings 98a71cb88d03f1c7a75bd79a6814f2b3c59b42da Releases:111 0 516 1334 1331 2017-03-04T17:54:58Z Joepal 14 wikitext text/x-wiki These are the release notes for version 1.1.1, which was released in March 2017. This release is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings (from recognized and valid codepages, see known issues below) on windows 7/8/10, for example when having a unicode file system, but a cp850-encoded filename. This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == Useful extras == In [http://download.tuxfamily.org/makehuman/releases/1.1.1 the release directory] on tuxfamily, you will also find two zip files with extras that you may be interested in installing: * '''blender_plugins_for_1.1.1.zip''': These are blender plugins related to MakeHuman. This is what was called "blendertools" earlier (maketarget, makeclothes, makewalk), but now also includes the latest version of MHX2. * '''makehuman_plugins_for_1.1.1.zip''': These are extras for MakeHuman as such. The zip contains the MakeHuman side of MHX2, the asset downloader plugin, the asset editor plugin, and the MHAPI dependency. == Known issues == While we believe we have now got a grip on all ''normal'' cases where non-ASCII characters are used in file names, it is still possible to break MakeHuman by copy/pasting characters from another codepage than the one windows is installed with. For example: if you have an US-english windows version and unzip MH in a folder named ру́сскийязы́к, chances are MH won't even start. However, any file name that you are able to write on the keyboard (as opposed from copying from the web) should now work. Inside MakeHuman the use of unicode characters is more permissive. It is possible to save MakeHuman models in folders and with filenames containing characters that are not in the primary codepage. However, in case of doubt, we would recommend using only ASCII-characters, respectively characters from your active code page, for filenames. If you plan to save files with users from another locale, it is prudent to stick with ASCII names whenever possible. Because of the cost, the release version of MakeHuman 1.1.1 is not code-signed. This means that some virus checkers, and the Windows OS may issue a warning on your initial start-up. This should be safe to ignore if you downloaded your copy of MakeHuman directly from the official download site. If you obtained your copy elsewhere please use due diligence. A long standing bug, [http://bugtracker.makehumancommunity.org/issues/1054 #1054], was not possible to fix in time for the release. This causes shaders to glitch and look corrup on linux machines under the following conditions: 1. the machine runs on an integrated Intel graphics chipset and 2. the machine uses a newer graphics driver. This is known to affect Ubuntu 16.04, while older Ubuntu versions (such as 14.04) are not affected. For now, the workaround is to run MakeHuman with the parameter "--noshaders". For more info, see the [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?|the appropriate FAQ item]]. == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #716: Translation choices * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * Bug #1057: ppa produced overwrite errorserrors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Bug #1088: Test cases for unicode issues * Bug #1094: Update copyright to 2017 * Bug #1104: MakeWalk code has a trivial typo. * Bug #1108: Replace splash screen * Bug #1109: Investigate PPA errors * Bug #1110: Update the README file. * Bug #1111: Test Build r2066 (708f2b6d9545) issues * Bug #1112: v1.1.1 can't load mhm created with v1.1.0 * Bug #1113: Link Help>About MakeHuman>Website to community * Bug #1120: Error in language master file * Bug #1124: PPA: the package description for makehuman-bodyparts is "test test" * Bug #1126: PPA: makehuman-bodyparts should have "replaces makehuman-data" * Bug #1135: File chooser in backgrounds tab does not populate when UI language set to russian * Bug #1138: Missing bitbucket Item? * Bug #1139: Missing comma in languages/master.json * Feature #98: Regression suit to test the exported files. * Feature #211: Conforming to debian python policy * Feature #696: Increased support for rigid proxy assets * Feature #1093: Easy way to copy version number to clipboard for bug reporting * Feature #1107: Make sure it's possible to save all kinds of filenames on windows 7a5deea4078880389b4bf6bed592974276122e5e 1331 1330 2017-03-04T09:36:04Z Joepal 14 /* Known issues */ wikitext text/x-wiki These are the release notes for version 1.1.1, which was released in March 2017. This release is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings (from recognized and valid codepages, see known issues below) on windows 7/8/10, for example when having a unicode file system, but a cp850-encoded filename. This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == Known issues == While we believe we have now got a grip on all ''normal'' cases where non-ASCII characters are used in file names, it is still possible to break MakeHuman by copy/pasting characters from another codepage than the one windows is installed with. For example: if you have an US-english windows version and unzip MH in a folder named ру́сскийязы́к, chances are MH won't even start. However, any file name that you are able to write on the keyboard (as opposed from copying from the web) should now work. Inside MakeHuman the use of unicode characters is more permissive. It is possible to save MakeHuman models in folders and with filenames containing characters that are not in the primary codepage. However, in case of doubt, we would recommend using only ASCII-characters, respectively characters from your active code page, for filenames. If you plan to save files with users from another locale, it is prudent to stick with ASCII names whenever possible. Because of the cost, the release version of MakeHuman 1.1.1 is not code-signed. This means that some virus checkers, and the Windows OS may issue a warning on your initial start-up. This should be safe to ignore if you downloaded your copy of MakeHuman directly from the official download site. If you obtained your copy elsewhere please use due diligence. A long standing bug, [http://bugtracker.makehumancommunity.org/issues/1054 #1054], was not possible to fix in time for the release. This causes shaders to glitch and look corrup on linux machines under the following conditions: 1. the machine runs on an integrated Intel graphics chipset and 2. the machine uses a newer graphics driver. This is known to affect Ubuntu 16.04, while older Ubuntu versions (such as 14.04) are not affected. For now, the workaround is to run MakeHuman with the parameter "--noshaders". For more info, see the [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?|the appropriate FAQ item]]. == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #716: Translation choices * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * Bug #1057: ppa produced overwrite errorserrors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Bug #1088: Test cases for unicode issues * Bug #1094: Update copyright to 2017 * Bug #1104: MakeWalk code has a trivial typo. * Bug #1108: Replace splash screen * Bug #1109: Investigate PPA errors * Bug #1110: Update the README file. * Bug #1111: Test Build r2066 (708f2b6d9545) issues * Bug #1112: v1.1.1 can't load mhm created with v1.1.0 * Bug #1113: Link Help>About MakeHuman>Website to community * Bug #1120: Error in language master file * Bug #1124: PPA: the package description for makehuman-bodyparts is "test test" * Bug #1126: PPA: makehuman-bodyparts should have "replaces makehuman-data" * Bug #1135: File chooser in backgrounds tab does not populate when UI language set to russian * Bug #1138: Missing bitbucket Item? * Bug #1139: Missing comma in languages/master.json * Feature #98: Regression suit to test the exported files. * Feature #211: Conforming to debian python policy * Feature #696: Increased support for rigid proxy assets * Feature #1093: Easy way to copy version number to clipboard for bug reporting * Feature #1107: Make sure it's possible to save all kinds of filenames on windows e89fa384d2e7c0fc157eff739356d3980ad88e71 1330 1329 2017-03-04T09:29:03Z Joepal 14 wikitext text/x-wiki These are the release notes for version 1.1.1, which was released in March 2017. This release is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings (from recognized and valid codepages, see known issues below) on windows 7/8/10, for example when having a unicode file system, but a cp850-encoded filename. This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == Known issues == While we believe we have now got a grip on all ''normal'' cases where non-ASCII characters are used in file names, it is still possible to break MakeHuman by copy/pasting characters from another codepage than the one windows is installed with. For example: if you have an US-english windows version and unzip MH in a folder named ру́сскийязы́к, chances are MH won't even start. However, any file name that you are able to write on the keyboard (as opposed from copying from the web) should now work. Inside MakeHuman the use of unicode characters is more permissive. It is possible to save MakeHuman models in folders and with filenames containing characters that are not in the primary codepage. However, in case of doubt, we would recommend using only ASCII-characters, respectively characters from your active code page, for filenames. If you plan to save files with users from another locale, it is prudent to stick with ASCII names whenever possible. Because of the cost, the release version of MakeHuman 1.1.1 is not code-signed. This means that some virus checkers, and the Windows OS may issue a warning on your initial start-up. This should be safe to ignore if you downloaded your copy of MakeHuman directly from the official download site. If you obtained your copy elsewhere please use due diligence. == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #716: Translation choices * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * Bug #1057: ppa produced overwrite errorserrors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Bug #1088: Test cases for unicode issues * Bug #1094: Update copyright to 2017 * Bug #1104: MakeWalk code has a trivial typo. * Bug #1108: Replace splash screen * Bug #1109: Investigate PPA errors * Bug #1110: Update the README file. * Bug #1111: Test Build r2066 (708f2b6d9545) issues * Bug #1112: v1.1.1 can't load mhm created with v1.1.0 * Bug #1113: Link Help>About MakeHuman>Website to community * Bug #1120: Error in language master file * Bug #1124: PPA: the package description for makehuman-bodyparts is "test test" * Bug #1126: PPA: makehuman-bodyparts should have "replaces makehuman-data" * Bug #1135: File chooser in backgrounds tab does not populate when UI language set to russian * Bug #1138: Missing bitbucket Item? * Bug #1139: Missing comma in languages/master.json * Feature #98: Regression suit to test the exported files. * Feature #211: Conforming to debian python policy * Feature #696: Increased support for rigid proxy assets * Feature #1093: Easy way to copy version number to clipboard for bug reporting * Feature #1107: Make sure it's possible to save all kinds of filenames on windows ccc4fd2b30f9d2222db8b98b2ac1d3ef7b04eb34 1329 1320 2017-03-04T09:26:45Z Joepal 14 wikitext text/x-wiki These are the release notes for version 1.1.1, which was released in February 2017. This release is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings (from recognized and valid codepages, see known issues below) on windows 7/8/10, for example when having a unicode file system, but a cp850-encoded filename. This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == Known issues == While we believe we have now got a grip on all ''normal'' cases where non-ASCII characters are used in file names, it is still possible to break MakeHuman by copy/pasting characters from another codepage than the one windows is installed with. For example: if you have an US-english windows version and unzip MH in a folder named ру́сскийязы́к, chances are MH won't even start. However, any file name that you are able to write on the keyboard (as opposed from copying from the web) should now work. Inside MakeHuman the use of unicode characters is more permissive. It is possible to save MakeHuman models in folders and with filenames containing characters that are not in the primary codepage. However, in case of doubt, we would recommend using only ASCII-characters, respectively characters from your active code page, for filenames. If you plan to save files with users from another locale, it is prudent to stick with ASCII names whenever possible. Because of the cost, the release version of MakeHuman 1.1.1 is not code-signed. This means that some virus checkers, and the Windows OS may issue a warning on your initial start-up. This should be safe to ignore if you downloaded your copy of MakeHuman directly from the official download site. If you obtained your copy elsewhere please use due diligence. == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #716: Translation choices * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * Bug #1057: ppa produced overwrite errorserrors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Bug #1088: Test cases for unicode issues * Bug #1094: Update copyright to 2017 * Bug #1104: MakeWalk code has a trivial typo. * Bug #1108: Replace splash screen * Bug #1109: Investigate PPA errors * Bug #1110: Update the README file. * Bug #1111: Test Build r2066 (708f2b6d9545) issues * Bug #1112: v1.1.1 can't load mhm created with v1.1.0 * Bug #1113: Link Help>About MakeHuman>Website to community * Bug #1120: Error in language master file * Bug #1124: PPA: the package description for makehuman-bodyparts is "test test" * Bug #1126: PPA: makehuman-bodyparts should have "replaces makehuman-data" * Bug #1135: File chooser in backgrounds tab does not populate when UI language set to russian * Bug #1138: Missing bitbucket Item? * Bug #1139: Missing comma in languages/master.json * Feature #98: Regression suit to test the exported files. * Feature #211: Conforming to debian python policy * Feature #696: Increased support for rigid proxy assets * Feature #1093: Easy way to copy version number to clipboard for bug reporting * Feature #1107: Make sure it's possible to save all kinds of filenames on windows 693d19120c60d7bb2b97f8766fd5c93723fe24a1 1320 1319 2017-02-16T10:34:26Z Joepal 14 /* All fixes */ wikitext text/x-wiki These are the release notes for version 1.1.1, which was released in February 2017. This release is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings (from recognized and valid codepages, see known issues below) on windows 7/8/10, for example when having a unicode file system, but a cp850-encoded filename. This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == Known issues == While we believe we have now got a grip on all ''normal'' cases where non-ASCII characters are used in file names, it is still possible to break MakeHuman by copy/pasting characters from another codepage than the one windows is installed with. For example: if you have an US-english windows version and unzip MH in a folder named ру́сскийязы́к, chances are MH won't even start. However, any file name that you are able to write on the keyboard (as opposed from copying from the web) should now work. Inside MakeHuman the use of unicode characters is more permissive. It is possible to save MakeHuman models in folders and with filenames containing characters that are not in the primary codepage. However, in case of doubt, we would recommend using only ASCII-characters, respectively characters from your active code page, for filenames. If you plan to save files with users from another locale, it is prudent to stick with ASCII names whenever possible. Because of the cost, the release version of MakeHuman 1.1.1 is not code-signed. This means that some virus checkers, and the Windows OS may issue a warning on your initial start-up. This should be safe to ignore if you downloaded your copy of MakeHuman directly from the official download site. If you obtained your copy elsewhere please use due diligence. == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting 930b581cc221841b419c8b8f501e081b46cf6c1b 1319 1318 2017-02-15T14:23:26Z Robbaer 12 wikitext text/x-wiki These are the release notes for version 1.1.1, which was released in February 2017. This release is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings (from recognized and valid codepages, see known issues below) on windows 7/8/10, for example when having a unicode file system, but a cp850-encoded filename. This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == Known issues == While we believe we have now got a grip on all ''normal'' cases where non-ASCII characters are used in file names, it is still possible to break MakeHuman by copy/pasting characters from another codepage than the one windows is installed with. For example: if you have an US-english windows version and unzip MH in a folder named ру́сскийязы́к, chances are MH won't even start. However, any file name that you are able to write on the keyboard (as opposed from copying from the web) should now work. Inside MakeHuman the use of unicode characters is more permissive. It is possible to save MakeHuman models in folders and with filenames containing characters that are not in the primary codepage. However, in case of doubt, we would recommend using only ASCII-characters, respectively characters from your active code page, for filenames. If you plan to save files with users from another locale, it is prudent to stick with ASCII names whenever possible. Because of the cost, the release version of MakeHuman 1.1.1 is not code-signed. This means that some virus checkers, and the Windows OS may issue a warning on your initial start-up. This should be safe to ignore if you downloaded your copy of MakeHuman directly from the official download site. If you obtained your copy elsewhere please use due diligence. == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * ''Bug #954: Possible problem in default rig weights'' * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug ''#1034: Malassigned / malformed vertices in the armpit'' * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * ''Bug #1054: Ubuntu 16.04 and mesa drivers'' * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting 4476566b38303936df12eb03fcaa9a057ac71615 1318 1317 2017-02-15T14:21:23Z Robbaer 12 /* Known issues */ wikitext text/x-wiki These are the [preliminary] release notes for version 1.1.1, which [will probably be] released in February 2017. This release is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings (from recognized and valid codepages, see known issues below) on windows 7/8/10, for example when having a unicode file system, but a cp850-encoded filename. This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == Known issues == While we believe we have now got a grip on all ''normal'' cases where non-ASCII characters are used in file names, it is still possible to break MakeHuman by copy/pasting characters from another codepage than the one windows is installed with. For example: if you have an US-english windows version and unzip MH in a folder named ру́сскийязы́к, chances are MH won't even start. However, any file name that you are able to write on the keyboard (as opposed from copying from the web) should now work. Inside MakeHuman the use of unicode characters is more permissive. It is possible to save MakeHuman models in folders and with filenames containing characters that are not in the primary codepage. However, in case of doubt, we would recommend using only ASCII-characters, respectively characters from your active code page, for filenames. If you plan to save files with users from another locale, it is prudent to stick with ASCII names whenever possible. Because of the cost, the release version of MakeHuman 1.1.1 is not code-signed. This means that some virus checkers, and the Windows OS may issue a warning on your initial start-up. This should be safe to ignore if you downloaded your copy of MakeHuman directly from the official download site. If you obtained your copy elsewhere please use due diligence. == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * ''Bug #954: Possible problem in default rig weights'' * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug ''#1034: Malassigned / malformed vertices in the armpit'' * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * ''Bug #1054: Ubuntu 16.04 and mesa drivers'' * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting 754e3c419c500006c8e03d5666dfba718e1d91e6 1317 1316 2017-02-15T14:16:48Z Robbaer 12 /* Known issues */ wikitext text/x-wiki These are the [preliminary] release notes for version 1.1.1, which [will probably be] released in February 2017. This release is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings (from recognized and valid codepages, see known issues below) on windows 7/8/10, for example when having a unicode file system, but a cp850-encoded filename. This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == Known issues == While we believe we have now got a grip on all ''normal'' cases where non-ASCII characters are used in file names, it is still possible to break MakeHuman by copy/pasting characters from another codepage than the one windows is installed with. For example: if you have an US-english windows version and unzip MH in a folder named ру́сскийязы́к, chances are MH won't even start. However, any file name that you are able to write on the keyboard (as opposed from copying from the web) should now work. Inside MakeHuman the use of unicode characters is more permissive. It is possible to save MakeHuman models in folders and with filenames containing characters that are not in the primary codepage. However, in case of doubt, we would recommend using only ASCII-characters, respectively characters from your active code page, for filenames. If you plan to save files with users from another locale, it is prudent to stick with ASCII names whenever possible. The release version of MakeHuman 1.1.1 is not code-signed which means that some virus checkers and Windows OS may issue a warning on your initial start-up. This should be safe to ignore if you got your copy of MakeHuman directly from the official download site. If you obtained your copy elsewhere please use due diligence. == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * ''Bug #954: Possible problem in default rig weights'' * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug ''#1034: Malassigned / malformed vertices in the armpit'' * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * ''Bug #1054: Ubuntu 16.04 and mesa drivers'' * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting 145e8606460a32e6576b4e66744662fa14db5ada 1316 1315 2017-02-15T14:15:37Z Robbaer 12 /* Known issues */ wikitext text/x-wiki These are the [preliminary] release notes for version 1.1.1, which [will probably be] released in February 2017. This release is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings (from recognized and valid codepages, see known issues below) on windows 7/8/10, for example when having a unicode file system, but a cp850-encoded filename. This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == Known issues == While we believe we have now got a grip on all ''normal'' cases where non-ASCII characters are used in file names, it is still possible to break MakeHuman by copy/pasting characters from another codepage than the one windows is installed with. For example: if you have an US-english windows version and unzip MH in a folder named ру́сскийязы́к, chances are MH won't even start. However, any file name that you are able to write on the keyboard (as opposed from copying from the web) should now work. Inside MakeHuman the use of unicode characters is more permissive. It is possible to save MakeHuman models in folders and with filenames containing characters that are not in the primary codepage. However, in case of doubt, we would recommend using only ASCII-characters, respectively characters from your active code page, for filenames. If you plan to save files with users from another locale, it is prudent to stick with ASCII names whenever possible. The release version of MakeHuman 1.1.1 is not code-signed which means that some virus checkers and Windows OS may issue a warning on your initial start-up. This should be safe to ignore if you got your copy of MakeHuman directly from the official download site. == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * ''Bug #954: Possible problem in default rig weights'' * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug ''#1034: Malassigned / malformed vertices in the armpit'' * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * ''Bug #1054: Ubuntu 16.04 and mesa drivers'' * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting 33032def310db51d13307687dcb54f4b1a60ad6d 1315 1314 2017-02-15T14:12:29Z Robbaer 12 /* Known issues */ wikitext text/x-wiki These are the [preliminary] release notes for version 1.1.1, which [will probably be] released in February 2017. This release is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings (from recognized and valid codepages, see known issues below) on windows 7/8/10, for example when having a unicode file system, but a cp850-encoded filename. This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == Known issues == While we believe we have now got a grip on all ''normal'' cases where non-ASCII characters are used in file names, it is still possible to break MakeHuman by copy/pasting characters from another codepage than the one windows is installed with. For example: if you have an US-english windows version and unzip MH in a folder named ру́сскийязы́к, chances are MH won't even start. However, any file name that you are able to write on the keyboard (as opposed from copying from the web) should now work. Inside MakeHuman the use of unicode characters is more permissive. It is possible to save MakeHuman models in folders and with filenames containing characters that are not in the primary codepage. However, in case of doubt, we would recommend using only ASCII-characters, respectively characters from your active code page, for filenames. If you plan to save files with users from another locale, it is prudent to stick with ASCII names whenever possible. == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * ''Bug #954: Possible problem in default rig weights'' * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug ''#1034: Malassigned / malformed vertices in the armpit'' * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * ''Bug #1054: Ubuntu 16.04 and mesa drivers'' * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting 617821c702270ca0cf83714375cf48bb15606b07 1314 1313 2017-02-15T14:06:12Z Robbaer 12 /* Highlights */ wikitext text/x-wiki These are the [preliminary] release notes for version 1.1.1, which [will probably be] released in February 2017. This release is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings (from recognized and valid codepages, see known issues below) on windows 7/8/10, for example when having a unicode file system, but a cp850-encoded filename. This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == Known issues == While we believe we have now got a grip on all ''normal'' cases where non-ASCII characters are used in file names, it is still possible to break MakeHuman by copy/pasting characters from another codepage than the one windows is installed with. For example: if you have an US-english windows version and unzip MH in a folder named ру́сскийязы́к, chances are MH won't even start. However, any file name you are able to write on the keyboard (as opposed from copying from the web) should now work. Inside MakeHuman the usage of unicode characters is more permissive. It is possible to safe MakeHuman models in folders and with filenames containing characters that are not in the primary codepage. However, in case of doubt, we would recommend using only ASCII-characters, respectively characters from your active code page, for filenames. == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * ''Bug #954: Possible problem in default rig weights'' * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug ''#1034: Malassigned / malformed vertices in the armpit'' * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * ''Bug #1054: Ubuntu 16.04 and mesa drivers'' * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting d712bf2d6b2ee6da112cf407dc283bbc948596fe 1313 1312 2017-02-15T12:17:38Z Aranuvir 17 /* Known issues */ wikitext text/x-wiki These are the [preliminary] release notes for version 1.1.1, which [will probably be] released in February 2017. This release is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings (from recognized and valid codepages, see known issues below) on windows 7, for example when having a unicode file system, but a cp850-encoded filename. This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == Known issues == While we believe we have now got a grip on all ''normal'' cases where non-ASCII characters are used in file names, it is still possible to break MakeHuman by copy/pasting characters from another codepage than the one windows is installed with. For example: if you have an US-english windows version and unzip MH in a folder named ру́сскийязы́к, chances are MH won't even start. However, any file name you are able to write on the keyboard (as opposed from copying from the web) should now work. Inside MakeHuman the usage of unicode characters is more permissive. It is possible to safe MakeHuman models in folders and with filenames containing characters that are not in the primary codepage. However, in case of doubt, we would recommend using only ASCII-characters, respectively characters from your active code page, for filenames. == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * ''Bug #954: Possible problem in default rig weights'' * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug ''#1034: Malassigned / malformed vertices in the armpit'' * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * ''Bug #1054: Ubuntu 16.04 and mesa drivers'' * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting 6b1e864f738a8bd648276bd9cb7bb7404d08e0f5 1312 1307 2017-02-15T11:16:06Z Aranuvir 17 /* Known issues */ wikitext text/x-wiki These are the [preliminary] release notes for version 1.1.1, which [will probably be] released in February 2017. This release is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings (from recognized and valid codepages, see known issues below) on windows 7, for example when having a unicode file system, but a cp850-encoded filename. This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == Known issues == While we believe we have now got a grip on all ''normal'' cases where non-ASCII characters are used in file names, it is still possible to break MakeHuman by copy/pasting characters from another codepage than the one windows is installed with. For example: if you have an US-english windows version and unzip MH in a folder named ру́сскийязы́к, chances are MH won't even start. However, any file name you are able to write on the keyboard (as opposed from copying from the web) should now work. Inside MakeHuman the usage of unicode characters is more permissive. It was possible to safe MakeHuman models in folders and with filenames containing characters that are not in the primary codepage. But in case of doubt we would recommend using only ASCII-characters, respectively characters from your active code page, for filenames. == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * ''Bug #954: Possible problem in default rig weights'' * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug ''#1034: Malassigned / malformed vertices in the armpit'' * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * ''Bug #1054: Ubuntu 16.04 and mesa drivers'' * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting 2196b7adb00fdc2278e8f37485f4a8db3dc44a9c 1307 1306 2017-02-08T09:49:58Z Joepal 14 /* All fixes */ wikitext text/x-wiki These are the [preliminary] release notes for version 1.1.1, which [will probably be] released in February 2017. This release is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings (from recognized and valid codepages, see known issues below) on windows 7, for example when having a unicode file system, but a cp850-encoded filename. This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == Known issues == While we believe we have now got a grip on all ''normal'' cases where non-ascii characters are used in file names, it is still possible to break MakeHuman by copy/pasting characters from another codepage than the one windows is installed with. For example: if you have an US-english windows version and unzip MH in a folder named ру́сскийязы́к, chances are MH won't even start. However, any file name you are able to write on the keyboard (as opposed from copying from the web) should now work. == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * ''Bug #954: Possible problem in default rig weights'' * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug ''#1034: Malassigned / malformed vertices in the armpit'' * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * ''Bug #1054: Ubuntu 16.04 and mesa drivers'' * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting b7a7e6eea041db0610c4062f9d0bd3d4a8f0d37a 1306 1305 2017-02-08T09:34:27Z Joepal 14 wikitext text/x-wiki These are the [preliminary] release notes for version 1.1.1, which [will probably be] released in February 2017. This release is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings (from recognized and valid codepages, see known issues below) on windows 7, for example when having a unicode file system, but a cp850-encoded filename. This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == Known issues == While we believe we have now got a grip on all ''normal'' cases where non-ascii characters are used in file names, it is still possible to break MakeHuman by copy/pasting characters from another codepage than the one windows is installed with. For example: if you have an US-english windows version and unzip MH in a folder named ру́сскийязы́к, chances are MH won't even start. However, any file name you are able to write on the keyboard (as opposed from copying from the web) should now work. == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * Bug #954: Possible problem in default rig weights * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug #1034: Malassigned / malformed vertices in the armpit * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * Bug #1054: Ubuntu 16.04 and mesa drivers * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting 3084305ca774ddb8e05d2e332df9fd9a47716903 1305 1304 2017-02-06T16:12:54Z Robbaer 12 wikitext text/x-wiki These are the [preliminary] release notes for version 1.1.1, which [will probably be] released in February 2017. This release is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings on windows 7 (for example having a unicode file system, but a cp850-encoded filename). This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * Bug #954: Possible problem in default rig weights * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug #1034: Malassigned / malformed vertices in the armpit * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * Bug #1054: Ubuntu 16.04 and mesa drivers * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting bc2bb49adf29bcefbf81a9f1e154567686107d0a 1304 1303 2017-02-06T16:12:15Z Robbaer 12 wikitext text/x-wiki These are the [preliminary] release notes for version 1.1.1, which [will probably be] released in February 2017. This is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings on windows 7 (for example having a unicode file system, but a cp850-encoded filename). This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * Bug #954: Possible problem in default rig weights * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug #1034: Malassigned / malformed vertices in the armpit * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * Bug #1054: Ubuntu 16.04 and mesa drivers * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting c20024990d95aec226d0fac274c536dc9f629379 1303 1302 2017-02-06T16:11:41Z Robbaer 12 wikitext text/x-wiki These are the [preliminary] release notes for version 1.1.1, which will [probably be] released in February 2017. This is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings on windows 7 (for example having a unicode file system, but a cp850-encoded filename). This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * Bug #954: Possible problem in default rig weights * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug #1034: Malassigned / malformed vertices in the armpit * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * Bug #1054: Ubuntu 16.04 and mesa drivers * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting caf65cd4d8260c1160731cf9a18a43ee52b37482 1302 1301 2017-02-06T16:09:16Z Robbaer 12 wikitext text/x-wiki These are the preliminary release notes for version 1.1.1, which will probably be released during February 2017. This is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings on windows 7 (for example having a unicode file system, but a cp850-encoded filename). This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * The release provides more consist management of undo and restore defaults * Fix for glitches in the male formal suit (thanks to CallHarvey3d) * Fix for glitches in the male worksuit (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * Bug #954: Possible problem in default rig weights * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug #1034: Malassigned / malformed vertices in the armpit * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * Bug #1054: Ubuntu 16.04 and mesa drivers * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting 65c8eab497065fa48d782d62c3c4fa27d2452f29 1301 1300 2017-02-06T15:36:11Z Robbaer 12 wikitext text/x-wiki These are the preliminary release notes for version 1.1.1, which will probably be released during February 2017. This is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash when using certain non-ASCII characters in filenames or usernames (in certain locales) on Windows platforms. == Highlights == * It should now be possible to mix encodings on windows 7 (for example having a unicode file system, but a cp850-encoded filename). This will solve crashes when the user name or the installation path contains latin1 characters such as åäöüñé. * The UI will no longer crash when using translations. * More consist management of undo and restore defaults * Glitches with the male formal suit have been fixed (thanks to CallHarvey3d) * Glitches with the male worksuit have been fixed (thanks to marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticeable downside. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * Bug #954: Possible problem in default rig weights * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug #1034: Malassigned / malformed vertices in the armpit * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * Bug #1054: Ubuntu 16.04 and mesa drivers * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting eaf8683bd5e4c831adf97289303564930ffc3b3d 1300 1299 2017-02-06T15:31:18Z Robbaer 12 wikitext text/x-wiki These are the preliminary release notes for version 1.1.1, which will probably be released during February 2017. This is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash with certain non-ASCII characters in certain locales on Windows platforms. == Highlights == * It should now be possible to mix encodings on windows 7 (for example having a unicode file system, but a cp850-encoded filename). This will solve crashes when the user name or the installation path contain latin1 characters such as åäöüñé. * The UI will no longer crash when using any translation. * More consist management of undo and restore defaults * Glitches with the male formal suit have been fixed (thanks CallHarvey3d) * Glitches with the male worksuit have been fixed (thanks marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticable downsides. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * Bug #954: Possible problem in default rig weights * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug #1034: Malassigned / malformed vertices in the armpit * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * Bug #1054: Ubuntu 16.04 and mesa drivers * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting 62269213100e2da309b522b78f9979d3089517cb 1299 1298 2017-02-06T15:30:47Z Robbaer 12 wikitext text/x-wiki These are the preliminary release notes for version 1.1.1, which will probably be released during February. This is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash with certain non-ASCII characters in certain locales on Windows platforms. == Highlights == * It should now be possible to mix encodings on windows 7 (for example having a unicode file system, but a cp850-encoded filename). This will solve crashes when the user name or the installation path contain latin1 characters such as åäöüñé. * The UI will no longer crash when using any translation. * More consist management of undo and restore defaults * Glitches with the male formal suit have been fixed (thanks CallHarvey3d) * Glitches with the male worksuit have been fixed (thanks marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticable downsides. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * Bug #954: Possible problem in default rig weights * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug #1034: Malassigned / malformed vertices in the armpit * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * Bug #1054: Ubuntu 16.04 and mesa drivers * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting 5b3f29f460cb1f5e2346df6525842cfef20a53b3 1298 1297 2017-02-05T12:28:48Z Joepal 14 wikitext text/x-wiki These are the preliminary release notes for version 1.1.1, which will probably be released during february. This is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash on various windows platforms. == Highlights == * It should now be possible to mix encodings on windows 7 (for example having a unicode file system, but a cp850-encoded filename). This will solve crashes when the user name or the installation path contain latin1 characters such as åäöüñé. * The UI will no longer crash when using any translation. * More consist management of undo and restore defaults * Glitches with the male formal suit have been fixed (thanks CallHarvey3d) * Glitches with the male worksuit have been fixed (thanks marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticable downsides. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == All fixes == * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * Bug #954: Possible problem in default rig weights * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug #1034: Malassigned / malformed vertices in the armpit * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * Bug #1054: Ubuntu 16.04 and mesa drivers * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting 2654d570a00b918754effc39ee58924e5e1bbb95 1297 2017-02-05T12:28:29Z Joepal 14 Created page with "These are the preliminary release notes for version 1.1.1, which will probably be released during february. This is primarily a bug fix release where the major effort has bee..." wikitext text/x-wiki These are the preliminary release notes for version 1.1.1, which will probably be released during february. This is primarily a bug fix release where the major effort has been spent on addressing the unicode issues which made MakeHuman crash on various windows platforms. == Highlights == * It should now be possible to mix encodings on windows 7 (for example having a unicode file system, but a cp850-encoded filename). This will solve crashes when the user name or the installation path contain latin1 characters such as åäöüñé. * The UI will no longer crash when using any translation. * More consist management of undo and restore defaults * Glitches with the male formal suit have been fixed (thanks CallHarvey3d) * Glitches with the male worksuit have been fixed (thanks marco_105) == Upgrading == In general, it should be possible to replace the 1.1.0 release with the 1.1.1 release without any noticable downsides. If you use the male worksuit, please note that it has had its UV layout redone from scratch (so third part textures relying on the old UV layout will no longer work). == All fixes * Bug #78: "Restore Default" button in settings * Bug #195: "Undo" does not actually undo many commands * Bug #354: Add package_name + date in window title * Bug #662: New malesuit01 needs minor UV touch-up * Bug #718: Alternative distribution for windows * Bug #764: SVG not supported on windows (but doesn't crash) * Bug #771: Consistent handling of binary/ascii export choice * Bug #831: Worksuit texture touch-up * Bug #945: increasing eye bag slider breaks armature * Bug #954: Possible problem in default rig weights * Bug #981: Makeclothes doesn't like eyes * Bug #983: Modeling Face Mouth features slider images * Bug #1004: RC and recent HG builds - file loader does not populate * Bug #1027: MH 1.1.0 - Windows 10 PreRelease Build - File list Exceptions * Bug #1028: MH 1.1.x - clean up / document status of genitals * Bug #1029: Unicode in MH path still causing trouble * Bug #1034: Malassigned / malformed vertices in the armpit * Bug #1037: Using any translation crashes parts of the GUI * Bug #1043: Possible issue in module3d * Bug #1051: Assymetric foot vertex groups * Bug #1053: Help About * Bug #1054: Ubuntu 16.04 and mesa drivers * Bug #1057: ppa produced overwrite errors * Bug #1066: material_editor unicode warning MH 1.1.0 release * Bug #1070: Sort filters dysfunctional - MH 1.1.0 * Bug #1073: Error loading a bvh pose created in Blender * Bug #1076: MacOS Sierra - MakeHuman 1.1.0 data directory not loading * Bug #1083: _cat_data["bodyproportion"] or _cat_data["bodyproportions"]? * Feature #1093: Easy way to copy version number to clipboard for bug reporting fe1d30d92166f4379a526621e24b92585b7ed941 Releases:120 0 666 1926 1921 2020-11-06T12:36:16Z Joepal 14 wikitext text/x-wiki These are the release notes for 1.2.0, which was released 2020-11-06. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular need to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt. * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect. * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) has been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials. * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure. * There is a new Mass production functionality for generating large sets of randomized characters. * Improved internationalization support for non-ASCII characters (backported). * Plugins in user space. * Plugins activation at runtime. * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions. * Tags for models (with configurable tag count). * Show Name Tags instead of file names in the file loader. * Saving model as target. * Real weight estimation. * Configurable location for the home folder. * MHX2 is bundled in the default installation. * Save thumbnails directly from the internal render engine. * There is a new installer for windows. * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds). === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration: Makehuman plugin for Blender (MPFB) === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details, see author publishing and license information and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === There is now functionality available for randomizing large sets of characters. This includes varying body shape and gender, as well as randomizing which clothes the characters are equiped with. An introduction to this functionality can be found at https://www.youtube.com/watch?v=jRHnJX-TdT4 (in the video it is stated that the plugin can be downloaded separately, but it is now included in the MakeHuman distribution). === Upgraded toolset for creating assets === The toolchain for creating MakeHuman assets have been upgraded: * MakeClothes and MakeTarget have been rewritten from scratch and been made compatible with Blender 2.80 and later. They are now called MakeClothes 2 and MakeTarget 2, in order to separate them from the old versions that work with Blender 2.79 and earlier. * A new tool MakeSkin has been added. This allows creating more advanced materials than what MakeClothes can do alone. There is a video introducing this functionality at https://www.youtube.com/watch?v=0amcxq4Ik60 === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * The windows release is for 64-bit windows. 32-bit windows is no longer supported. This is because one of our core dependencies have stopped working with 32-bit windows, which makes it difficult to work around. * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. For options on getting around this, see http://www.makehumancommunity.org/wiki/FAQ:Scrolling_does_not_work * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F * On Mint you need to explicitly install the plugins as they will not be automatically installed. With the ppa enabled, run "sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange" * Toolset support for Blender 2.79 has been dropped. Tools such as MPFB, MakeClothes and MakeTarget are built for and tested with Blender 2.83 and later. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. == Where to download == To download MakeHuman Community 1.2.0, see http://www.makehumancommunity.org/content/makehuman_120.html == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums http://www.makehumancommunity.org/forum/viewforum.php?f=3. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html d8e2b11341e4834ba7f5a094ca3bacfc5454f889 1921 1919 2020-10-31T11:38:32Z Joepal 14 /* Known issues */ wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular need to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt. * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect. * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) has been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials. * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure. * There is a new Mass production functionality for generating large sets of randomized characters. * Improved internationalization support for non-ASCII characters (backported). * Plugins in user space. * Plugins activation at runtime. * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions. * Tags for models (with configurable tag count). * Show Name Tags instead of file names in the file loader. * Saving model as target. * Real weight estimation. * Configurable location for the home folder. * MHX2 is bundled in the default installation. * Save thumbnails directly from the internal render engine. * There is a new installer for windows. * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds). === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration: Makehuman plugin for Blender (MPFB) === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details, see author publishing and license information and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === There is now functionality available for randomizing large sets of characters. This includes varying body shape and gender, as well as randomizing which clothes the characters are equiped with. An introduction to this functionality can be found at https://www.youtube.com/watch?v=jRHnJX-TdT4 (in the video it is stated that the plugin can be downloaded separately, but it is now included in the MakeHuman distribution). === Upgraded toolset for creating assets === The toolchain for creating MakeHuman assets have been upgraded: * MakeClothes and MakeTarget have been rewritten from scratch and been made compatible with Blender 2.80 and later. They are now called MakeClothes 2 and MakeTarget 2, in order to separate them from the old versions that work with Blender 2.79 and earlier. * A new tool MakeSkin has been added. This allows creating more advanced materials than what MakeClothes can do alone. There is a video introducing this functionality at https://www.youtube.com/watch?v=0amcxq4Ik60 === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * The windows release is for 64-bit windows. 32-bit windows is no longer supported. This is because one of our core dependencies have stopped working with 32-bit windows, which makes it difficult to work around. * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. For options on getting around this, see http://www.makehumancommunity.org/wiki/FAQ:Scrolling_does_not_work * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F * On Mint you need to explicitly install the plugins as they will not be automatically installed. With the ppa enabled, run "sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange" * Toolset support for Blender 2.79 has been dropped. Tools such as MPFB, MakeClothes and MakeTarget are built for and tested with Blender 2.83 and later. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums http://www.makehumancommunity.org/forum/viewforum.php?f=3. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 0071718f4f705064d5892b9f26423d817f658abb 1919 1918 2020-10-31T11:33:22Z Joepal 14 /* Known issues */ wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular need to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt. * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect. * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) has been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials. * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure. * There is a new Mass production functionality for generating large sets of randomized characters. * Improved internationalization support for non-ASCII characters (backported). * Plugins in user space. * Plugins activation at runtime. * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions. * Tags for models (with configurable tag count). * Show Name Tags instead of file names in the file loader. * Saving model as target. * Real weight estimation. * Configurable location for the home folder. * MHX2 is bundled in the default installation. * Save thumbnails directly from the internal render engine. * There is a new installer for windows. * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds). === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration: Makehuman plugin for Blender (MPFB) === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details, see author publishing and license information and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === There is now functionality available for randomizing large sets of characters. This includes varying body shape and gender, as well as randomizing which clothes the characters are equiped with. An introduction to this functionality can be found at https://www.youtube.com/watch?v=jRHnJX-TdT4 (in the video it is stated that the plugin can be downloaded separately, but it is now included in the MakeHuman distribution). === Upgraded toolset for creating assets === The toolchain for creating MakeHuman assets have been upgraded: * MakeClothes and MakeTarget have been rewritten from scratch and been made compatible with Blender 2.80 and later. They are now called MakeClothes 2 and MakeTarget 2, in order to separate them from the old versions that work with Blender 2.79 and earlier. * A new tool MakeSkin has been added. This allows creating more advanced materials than what MakeClothes can do alone. There is a video introducing this functionality at https://www.youtube.com/watch?v=0amcxq4Ik60 === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * The windows release is for 64-bit windows. 32-bit windows is no longer supported. This is because one of our core dependencies have stopped working with 32-bit windows, which makes it difficult to work around. * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F * On Mint you need to explicitly install the plugins as they will not be automatically installed. With the ppa enabled, run "sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange" * Toolset support for Blender 2.79 has been dropped. Tools such as MPFB, MakeClothes and MakeTarget are built for and tested with Blender 2.83 and later. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums http://www.makehumancommunity.org/forum/viewforum.php?f=3. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 99c9f991a77f7201ac0de35599276866f37feff2 1918 1917 2020-10-31T11:14:45Z Joepal 14 /* Changes since 1.1.1 */ wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular need to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt. * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect. * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) has been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials. * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure. * There is a new Mass production functionality for generating large sets of randomized characters. * Improved internationalization support for non-ASCII characters (backported). * Plugins in user space. * Plugins activation at runtime. * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions. * Tags for models (with configurable tag count). * Show Name Tags instead of file names in the file loader. * Saving model as target. * Real weight estimation. * Configurable location for the home folder. * MHX2 is bundled in the default installation. * Save thumbnails directly from the internal render engine. * There is a new installer for windows. * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds). === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration: Makehuman plugin for Blender (MPFB) === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details, see author publishing and license information and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === There is now functionality available for randomizing large sets of characters. This includes varying body shape and gender, as well as randomizing which clothes the characters are equiped with. An introduction to this functionality can be found at https://www.youtube.com/watch?v=jRHnJX-TdT4 (in the video it is stated that the plugin can be downloaded separately, but it is now included in the MakeHuman distribution). === Upgraded toolset for creating assets === The toolchain for creating MakeHuman assets have been upgraded: * MakeClothes and MakeTarget have been rewritten from scratch and been made compatible with Blender 2.80 and later. They are now called MakeClothes 2 and MakeTarget 2, in order to separate them from the old versions that work with Blender 2.79 and earlier. * A new tool MakeSkin has been added. This allows creating more advanced materials than what MakeClothes can do alone. There is a video introducing this functionality at https://www.youtube.com/watch?v=0amcxq4Ik60 === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F * On Mint you need to explicitly install the plugins as they will not be automatically installed. With the ppa enabled, run "sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange" * Toolset support for Blender 2.79 has been dropped. Tools such as MPFB, MakeClothes and MakeTarget are built for and tested with Blender 2.83 and later. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums http://www.makehumancommunity.org/forum/viewforum.php?f=3. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 3f7088708c9de296df846ee30eaa3385042c832b 1917 1916 2020-10-31T11:14:23Z Joepal 14 /* Changes since 1.1.1 */ wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular need to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt. * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect. * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) has been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials. * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure. * There is a new Mass production functionality for generating large sets of randomized characters. * Improved internationalization support for non-ASCII characters (backported). * Plugins in user space. * Plugins activation at runtime. * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions. * Tags for models (with configurable tag count). * Show Name Tags instead of file names in the file loader. * Saving model as target. * Real weight estimation. * Configurable location for the home folder. * MHX2 is bundled in the default installation. * Save thumbnails directly from the internal render engine. * There is a new installer for windows. * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds). === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration: "Makehuman plugin for Blender" or "MPFB" === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details, see author publishing and license information and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === There is now functionality available for randomizing large sets of characters. This includes varying body shape and gender, as well as randomizing which clothes the characters are equiped with. An introduction to this functionality can be found at https://www.youtube.com/watch?v=jRHnJX-TdT4 (in the video it is stated that the plugin can be downloaded separately, but it is now included in the MakeHuman distribution). === Upgraded toolset for creating assets === The toolchain for creating MakeHuman assets have been upgraded: * MakeClothes and MakeTarget have been rewritten from scratch and been made compatible with Blender 2.80 and later. They are now called MakeClothes 2 and MakeTarget 2, in order to separate them from the old versions that work with Blender 2.79 and earlier. * A new tool MakeSkin has been added. This allows creating more advanced materials than what MakeClothes can do alone. There is a video introducing this functionality at https://www.youtube.com/watch?v=0amcxq4Ik60 === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F * On Mint you need to explicitly install the plugins as they will not be automatically installed. With the ppa enabled, run "sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange" * Toolset support for Blender 2.79 has been dropped. Tools such as MPFB, MakeClothes and MakeTarget are built for and tested with Blender 2.83 and later. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums http://www.makehumancommunity.org/forum/viewforum.php?f=3. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 45e74836ea8a650e24afc4086b2b9dd60d68fdd7 1916 1915 2020-10-26T23:05:20Z Punkduck 38 wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular need to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt. * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect. * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) has been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials. * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure. * There is a new Mass production functionality for generating large sets of randomized characters. * Improved internationalization support for non-ASCII characters (backported). * Plugins in user space. * Plugins activation at runtime. * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions. * Tags for models (with configurable tag count). * Show Name Tags instead of file names in the file loader. * Saving model as target. * Real weight estimation. * Configurable location for the home folder. * MHX2 is bundled in the default installation. * Save thumbnails directly from the internal render engine. * There is a new installer for windows. * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds). === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, Makehuman plugin for Blender or *MPFB* === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details, see author publishing and license information and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === There is now functionality available for randomizing large sets of characters. This includes varying body shape and gender, as well as randomizing which clothes the characters are equiped with. An introduction to this functionality can be found at https://www.youtube.com/watch?v=jRHnJX-TdT4 (in the video it is stated that the plugin can be downloaded separately, but it is now included in the MakeHuman distribution). === Upgraded toolset for creating assets === The toolchain for creating MakeHuman assets have been upgraded: * MakeClothes and MakeTarget have been rewritten from scratch and been made compatible with Blender 2.80 and later. They are now called MakeClothes 2 and MakeTarget 2, in order to separate them from the old versions that work with Blender 2.79 and earlier. * A new tool MakeSkin has been added. This allows creating more advanced materials than what MakeClothes can do alone. There is a video introducing this functionality at https://www.youtube.com/watch?v=0amcxq4Ik60 === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F * On Mint you need to explicitly install the plugins as they will not be automatically installed. With the ppa enabled, run "sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange" * Toolset support for Blender 2.79 has been dropped. Tools such as MPFB, MakeClothes and MakeTarget are built for and tested with Blender 2.83 and later. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums http://www.makehumancommunity.org/forum/viewforum.php?f=3. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html bf88769835e0dc98d12dfb3b7c73d7b749aefe38 1915 1914 2020-10-25T22:46:40Z Elvaerwyn 103 /* Providing feedback and bug reports */ wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular need to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt. * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect. * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) has been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials. * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure. * There is a new Mass production functionality for generating large sets of randomized characters. * Improved internationalization support for non-ASCII characters (backported). * Plugins in user space. * Plugins activation at runtime. * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions. * Tags for models (with configurable tag count). * Show Name Tags instead of file names in the file loader. * Saving model as target. * Real weight estimation. * Configurable location for the home folder. * MHX2 is bundled in the default installation. * Save thumbnails directly from the internal render engine. * There is a new installer for windows. * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds). === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, Makehuman plugin for Blender or *MPFB* === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details, see author publishing and license information and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === There is now functionality available for randomizing large sets of characters. This includes varying body shape and gender, as well as randomizing which clothes the characters are equiped with. An introduction to this functionality can be found at https://www.youtube.com/watch?v=jRHnJX-TdT4 (in the video it is stated that the plugin can be downloaded separately, but it is now included in the MakeHuman distribution). === Upgraded toolset for creating assets === The toolchain for creating MakeHuman assets have been upgraded: * MakeClothes and MakeSkin have been rewritten from scratch and been made compatible with Blender 2.80 and later. They are now called MakeClothes 2 and MakeSkin 2, in order to separate them from the old versions that work with Blender 2.79 and earlier. * A new tool MakeSkin has been added. This allows creating more advanced materials than what MakeClothes can do alone. There is a video introducing this functionality at https://www.youtube.com/watch?v=0amcxq4Ik60 === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F * On Mint you need to explicitly install the plugins as they will not be automatically installed. With the ppa enabled, run "sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange" * Toolset support for Blender 2.79 has been dropped. Tools such as MPFB, MakeClothes and MakeTarget are built for and tested with Blender 2.83 and later. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums http://www.makehumancommunity.org/forum/viewforum.php?f=3. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html d6fbf7f4dd906f7fac3c7c48ebcf305d3f959da9 1914 1913 2020-10-25T22:39:18Z Elvaerwyn 103 /* Changes since 1.1.1 */ wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular need to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt. * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect. * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) has been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials. * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure. * There is a new Mass production functionality for generating large sets of randomized characters. * Improved internationalization support for non-ASCII characters (backported). * Plugins in user space. * Plugins activation at runtime. * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions. * Tags for models (with configurable tag count). * Show Name Tags instead of file names in the file loader. * Saving model as target. * Real weight estimation. * Configurable location for the home folder. * MHX2 is bundled in the default installation. * Save thumbnails directly from the internal render engine. * There is a new installer for windows. * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds). === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, Makehuman plugin for Blender or *MPFB* === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details, see author publishing and license information and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === There is now functionality available for randomizing large sets of characters. This includes varying body shape and gender, as well as randomizing which clothes the characters are equiped with. An introduction to this functionality can be found at https://www.youtube.com/watch?v=jRHnJX-TdT4 (in the video it is stated that the plugin can be downloaded separately, but it is now included in the MakeHuman distribution). === Upgraded toolset for creating assets === The toolchain for creating MakeHuman assets have been upgraded: * MakeClothes and MakeSkin have been rewritten from scratch and been made compatible with Blender 2.80 and later. They are now called MakeClothes 2 and MakeSkin 2, in order to separate them from the old versions that work with Blender 2.79 and earlier. * A new tool MakeSkin has been added. This allows creating more advanced materials than what MakeClothes can do alone. There is a video introducing this functionality at https://www.youtube.com/watch?v=0amcxq4Ik60 === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F * On Mint you need to explicitly install the plugins as they will not be automatically installed. With the ppa enabled, run "sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange" * Toolset support for Blender 2.79 has been dropped. Tools such as MPFB, MakeClothes and MakeTarget are built for and tested with Blender 2.83 and later. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 06aa88b2f576096fe7ec6fc2c9362b340266aacc 1913 1912 2020-10-25T22:36:23Z Elvaerwyn 103 /* Assets can now be downloaded from within MakeHuman */ wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular need to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt. * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect. * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) has been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials. * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure. * There is a new randomization functionality for generating large sets of randomized characters. * Improved internationalization support for non-ASCII characters (backported). * Plugins in user space. * Plugins activation at runtime. * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions. * Tags for models (with configurable tag count). * Show Name Tags instead of file names in the file loader. * Saving model as target. * Real weight estimation. * Configurable location for the home folder. * MHX2 is bundled in the default installation. * Save thumbnails directly from the internal render engine. * There is a new installer for windows. * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds). === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, Makehuman plugin for Blender or *MPFB* === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details, see author publishing and license information and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === There is now functionality available for randomizing large sets of characters. This includes varying body shape and gender, as well as randomizing which clothes the characters are equiped with. An introduction to this functionality can be found at https://www.youtube.com/watch?v=jRHnJX-TdT4 (in the video it is stated that the plugin can be downloaded separately, but it is now included in the MakeHuman distribution). === Upgraded toolset for creating assets === The toolchain for creating MakeHuman assets have been upgraded: * MakeClothes and MakeSkin have been rewritten from scratch and been made compatible with Blender 2.80 and later. They are now called MakeClothes 2 and MakeSkin 2, in order to separate them from the old versions that work with Blender 2.79 and earlier. * A new tool MakeSkin has been added. This allows creating more advanced materials than what MakeClothes can do alone. There is a video introducing this functionality at https://www.youtube.com/watch?v=0amcxq4Ik60 === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F * On Mint you need to explicitly install the plugins as they will not be automatically installed. With the ppa enabled, run "sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange" * Toolset support for Blender 2.79 has been dropped. Tools such as MPFB, MakeClothes and MakeTarget are built for and tested with Blender 2.83 and later. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 5b3b6de3595869f4017e06ada4fdc60f4dbb2497 1912 1911 2020-10-25T22:28:43Z Elvaerwyn 103 /* The new Blender integration, MPFB */ wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular need to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt. * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect. * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) has been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials. * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure. * There is a new randomization functionality for generating large sets of randomized characters. * Improved internationalization support for non-ASCII characters (backported). * Plugins in user space. * Plugins activation at runtime. * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions. * Tags for models (with configurable tag count). * Show Name Tags instead of file names in the file loader. * Saving model as target. * Real weight estimation. * Configurable location for the home folder. * MHX2 is bundled in the default installation. * Save thumbnails directly from the internal render engine. * There is a new installer for windows. * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds). === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, Makehuman plugin for Blender or *MPFB* === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === There is now functionality available for randomizing large sets of characters. This includes varying body shape and gender, as well as randomizing which clothes the characters are equiped with. An introduction to this functionality can be found at https://www.youtube.com/watch?v=jRHnJX-TdT4 (in the video it is stated that the plugin can be downloaded separately, but it is now included in the MakeHuman distribution). === Upgraded toolset for creating assets === The toolchain for creating MakeHuman assets have been upgraded: * MakeClothes and MakeSkin have been rewritten from scratch and been made compatible with Blender 2.80 and later. They are now called MakeClothes 2 and MakeSkin 2, in order to separate them from the old versions that work with Blender 2.79 and earlier. * A new tool MakeSkin has been added. This allows creating more advanced materials than what MakeClothes can do alone. There is a video introducing this functionality at https://www.youtube.com/watch?v=0amcxq4Ik60 === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F * On Mint you need to explicitly install the plugins as they will not be automatically installed. With the ppa enabled, run "sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange" * Toolset support for Blender 2.79 has been dropped. Tools such as MPFB, MakeClothes and MakeTarget are built for and tested with Blender 2.83 and later. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html a930540b687344022205916a70ddc3ee8472a4b9 1911 1910 2020-10-25T22:22:51Z Elvaerwyn 103 wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular need to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt. * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect. * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) has been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials. * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure. * There is a new randomization functionality for generating large sets of randomized characters. * Improved internationalization support for non-ASCII characters (backported). * Plugins in user space. * Plugins activation at runtime. * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions. * Tags for models (with configurable tag count). * Show Name Tags instead of file names in the file loader. * Saving model as target. * Real weight estimation. * Configurable location for the home folder. * MHX2 is bundled in the default installation. * Save thumbnails directly from the internal render engine. * There is a new installer for windows. * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds). === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, MPFB === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === There is now functionality available for randomizing large sets of characters. This includes varying body shape and gender, as well as randomizing which clothes the characters are equiped with. An introduction to this functionality can be found at https://www.youtube.com/watch?v=jRHnJX-TdT4 (in the video it is stated that the plugin can be downloaded separately, but it is now included in the MakeHuman distribution). === Upgraded toolset for creating assets === The toolchain for creating MakeHuman assets have been upgraded: * MakeClothes and MakeSkin have been rewritten from scratch and been made compatible with Blender 2.80 and later. They are now called MakeClothes 2 and MakeSkin 2, in order to separate them from the old versions that work with Blender 2.79 and earlier. * A new tool MakeSkin has been added. This allows creating more advanced materials than what MakeClothes can do alone. There is a video introducing this functionality at https://www.youtube.com/watch?v=0amcxq4Ik60 === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F * On Mint you need to explicitly install the plugins as they will not be automatically installed. With the ppa enabled, run "sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange" * Toolset support for Blender 2.79 has been dropped. Tools such as MPFB, MakeClothes and MakeTarget are built for and tested with Blender 2.83 and later. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 940663b2e9b9c16bc542cb1bddc2cb4b63208047 1910 1907 2020-10-25T22:17:45Z Elvaerwyn 103 wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular need to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) has been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, MPFB === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === There is now functionality available for randomizing large sets of characters. This includes varying body shape and gender, as well as randomizing which clothes the characters are equiped with. An introduction to this functionality can be found at https://www.youtube.com/watch?v=jRHnJX-TdT4 (in the video it is stated that the plugin can be downloaded separately, but it is now included in the MakeHuman distribution). === Upgraded toolset for creating assets === The toolchain for creating MakeHuman assets have been upgraded: * MakeClothes and MakeSkin have been rewritten from scratch and been made compatible with Blender 2.80 and later. They are now called MakeClothes 2 and MakeSkin 2, in order to separate them from the old versions that work with Blender 2.79 and earlier. * A new tool MakeSkin has been added. This allows creating more advanced materials than what MakeClothes can do alone. There is a video introducing this functionality at https://www.youtube.com/watch?v=0amcxq4Ik60 === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F * On Mint you need to explicitly install the plugins as they will not be automatically installed. With the ppa enabled, run "sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange" * Toolset support for Blender 2.79 has been dropped. Tools such as MPFB, MakeClothes and MakeTarget are built for and tested with Blender 2.83 and later. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html f63d8a922f491dbb0fcb38bcc5bfd5490e350493 1907 1906 2020-10-25T13:08:02Z Joepal 14 wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) has been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, MPFB === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === There is now functionality available for randomizing large sets of characters. This includes varying body shape and gender, as well as randomizing which clothes the characters are equiped with. An introduction to this functionality can be found at https://www.youtube.com/watch?v=jRHnJX-TdT4 (in the video it is stated that the plugin can be downloaded separately, but it is now included in the MakeHuman distribution). === Upgraded toolset for creating assets === The toolchain for creating MakeHuman assets have been upgraded: * MakeClothes and MakeSkin have been rewritten from scratch and been made compatible with Blender 2.80 and later. They are now called MakeClothes 2 and MakeSkin 2, in order to separate them from the old versions that work with Blender 2.79 and earlier. * A new tool MakeSkin has been added. This allows creating more advanced materials than what MakeClothes can do alone. There is a video introducing this functionality at https://www.youtube.com/watch?v=0amcxq4Ik60 === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F * On Mint you need to explicitly install the plugins as they will not be automatically installed. With the ppa enabled, run "sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange" * Toolset support for Blender 2.79 has been dropped. Tools such as MPFB, MakeClothes and MakeTarget are built for and tested with Blender 2.83 and later. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html dbbd68e8b021e0586f5b813de48487e3c59e9e01 1906 1905 2020-10-25T12:48:20Z Joepal 14 wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) has been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, MPFB === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === To be written === Upgraded toolset for creating assets === To be written === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F * On Mint you need to explicitly install the plugins as they will not be automatically installed. With the ppa enabled, run "sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange" * Toolset support for Blender 2.79 has been dropped. Tools such as MPFB, MakeClothes and MakeTarget are built for and tested with Blender 2.83 and later. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html e3deac40c179c4c7a7f206e4206f291f9bd59527 1905 1904 2020-10-25T12:42:01Z Joepal 14 /* Changes since 1.1.1 */ wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) has been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, MPFB === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Upgraded toolset for creating assets === To be written === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === To be written === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F * On Mint you need to explicitly install the plugins as they will not be automatically installed. With the ppa enabled, run "sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange" * Toolset support for Blender 2.79 has been dropped. Tools such as MPFB, MakeClothes and MakeTarget are built for and tested with Blender 2.83 and later. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html baf10603056d60430095dd0b31c661cbee4aa6b6 1904 1903 2020-10-25T12:40:59Z Joepal 14 /* Known issues */ wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) have been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, MPFB === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Upgraded toolset for creating assets === To be written === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === To be written === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F * On Mint you need to explicitly install the plugins as they will not be automatically installed. With the ppa enabled, run "sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange" * Toolset support for Blender 2.79 has been dropped. Tools such as MPFB, MakeClothes and MakeTarget are built for and tested with Blender 2.83 and later. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 6dd36afe6876f5497d0d8cce1a49454841e0c204 1903 1902 2020-10-25T12:38:50Z Joepal 14 wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) have been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, MPFB === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Upgraded toolset for creating assets === To be written === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === To be written === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F * On Mint you need to explicitly install the plugins as they will not be automatically installed. With the ppa enabled, run "sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange" == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html ed73b536c210f9be16c0e7171e5f67e7dabb7dfb 1902 1901 2020-10-25T12:36:09Z Joepal 14 /* Known issues */ wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) have been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, MPFB === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Upgraded toolset for creating assets === To be written === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === To be written === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. For potential remedies if you run into problems, see [[FAQ:MakeHuman_does_not_start]] and [[FAQ:The_interface_looks_broken]] * MakeHuman is not compatible with PyQt later than 5.12. If you have a later version than 5.12 installed, scrolling will not work. Since Ubuntu 20.10 has shipped with 5.14 (which is incompatible), we have chosen to not provide a build for Ubuntu 20.10. * There is no mac build. See http://www.makehumancommunity.org/wiki/FAQ:Is_there_a_mac_build%3F == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html d394858235f74e23ca229cbf049c9502df8eaefc 1901 1899 2020-10-25T12:32:41Z Joepal 14 wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) have been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, MPFB === [[File:Mpfbeevee.png|300px|thumb|right|One click import directly from MakeHuman, with improved skin shader]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Upgraded toolset for creating assets === To be written === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === To be written === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * The FBX export is still incompatible with some third part software. * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html a6e172fbb421349daccc61cc4627f756c190d03e 1899 1898 2020-10-25T12:26:10Z Joepal 14 wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect * The license has changed to (hopefully) be more clear and permissive. * The toolset for creating assets (MakeClothes and MakeTarget) have been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, MPFB === [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === Upgraded toolset for creating assets === To be written === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === To be written === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * The FBX export is still incompatible with some third part software. * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 7811a3ba98157ae5d30aff2a6bc6c6e031111e41 1898 1897 2020-10-25T12:24:51Z Joepal 14 wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The license has changed to (hopefully) be more clear and permissive. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect * The toolset for creating assets (MakeClothes and MakeTarget) have been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, MPFB === [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === Upgraded toolset for creating assets === To be written === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === To be written === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. <br clear=all> == Known issues == * The FBX export is still incompatible with some third part software. * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 32d2ef78d0bbb26ed2d905569b1e12e8b2af2ba8 1897 1896 2020-10-25T12:24:06Z Joepal 14 wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The license has changed to (hopefully) be more clear and permissive. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect * The toolset for creating assets (MakeClothes and MakeTarget) have been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, MPFB === [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === Upgraded toolset for creating assets === To be written === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === To be written === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Known issues == * The FBX export is still incompatible with some third part software. * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX <br clear=all> == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html a4e5e2faddc4c13e335f9e268da893b892d86688 1896 1895 2020-10-25T12:23:09Z Joepal 14 wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The license has changed to (hopefully) be more clear and permissive. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect * The toolset for creating assets (MakeClothes and MakeTarget) have been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, MPFB === [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === Upgraded toolset for creating assets === To be written === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === To be written === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Known issues == * The FBX export is still incompatible with some third part software. * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX <br clear="all"> == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html f76387175e12cb23f4aa9b0ada19fc753530f69c 1895 1894 2020-10-25T12:21:38Z Joepal 14 /* Assets can now be downloaded from within MakeHuman = */ wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The license has changed to (hopefully) be more clear and permissive. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect * The toolset for creating assets (MakeClothes and MakeTarget) have been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, MPFB === In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === Upgraded toolset for creating assets === To be written === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. === Mass produce === To be written === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Known issues == * The FBX export is still incompatible with some third part software. * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html d2acf69fdba1553e2192e31147e6d541ea44dec1 1894 1893 2020-10-25T12:21:09Z Joepal 14 /* Assets can now be downloaded from within MakeHuman = */ wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The license has changed to (hopefully) be more clear and permissive. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect * The toolset for creating assets (MakeClothes and MakeTarget) have been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, MPFB === In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === Upgraded toolset for creating assets === To be written === Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> === Mass produce === To be written === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Known issues == * The FBX export is still incompatible with some third part software. * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html c8c5d6217184137a6fb3222379b6bd5eb1af3e47 1893 1892 2020-10-25T12:19:59Z Joepal 14 /* Highlights */ wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Changes since 1.1.1 == These are the main themes of the changes since 1.1.1. See further down for more details. * The license has changed to (hopefully) be more clear and permissive. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect * The toolset for creating assets (MakeClothes and MakeTarget) have been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, MPFB === In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === Upgraded toolset for creating assets === To be written == Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> === Mass produce === To be written === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Known issues == * The FBX export is still incompatible with some third part software. * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 2edf4f80440ba0e3d9af623e756a0c80870c66d2 1892 2020-10-25T12:18:54Z Joepal 14 Created page with "These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also FAQ: Which ver..." wikitext text/x-wiki These are the release notes for 1.2.0, which is not yet released. This is the final and stable release. It is what we now recommend everyone to use. See also [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build however, there is no particular to switch to the stable release, as there have only been minor bug fixes lately. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Highlights == These are the main themes of the changes since 1.1.1. See further down for more details. * The license has changed to (hopefully) be more clear and permissive. * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * There is a completely new Blender integration, MPFB, with support for socket transfers, IK and Kinect * The toolset for creating assets (MakeClothes and MakeTarget) have been rewritten from scratch. * There is a new tool "MakeSkin" for creating materials * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) === License change === The license has changed to be more comprehensive and permissive. The full text of the new license can be found here: https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, it has been made clear that assets included with and produced by makehuman are CC0 no matter how you got hold of them. There is a description of the license change here: http://www.makehumancommunity.org/wiki/FAQ:What_changed_regarding_the_license_in_2020%3F === The upgraded codebase === The main focus of this release has been to modernize the code. In the prior version, large parts were written more than ten years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The final end of life for python 2.7 was january 1, 2020. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. === The new Blender integration, MPFB === In blender it is now possible to fetch a character directly from a running instance of MakeHuman, without having to first save/export the character to a file. [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a character with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Further, the importer supports improved skin features such as skin pores and SSS. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === Upgraded toolset for creating assets === To be written == Assets can now be downloaded from within MakeHuman === [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> === Mass produce === To be written === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Known issues == * The FBX export is still incompatible with some third part software. * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download beta 2: You can download (link to page for windows download) For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 61d73ca11a783b6cd2c1722eed80f7abcdd3a9f0 Releases:120a1 0 564 1591 1524 2019-05-10T09:40:23Z Wolgade 26 A topic called "running from source" should tell you where to get the source wikitext text/x-wiki '''It is important to understand that 1.2.0 alpha 1 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. * The initial sync for the asset downloader will take a very long time to finish, and it might look as if it finished despite the files still being processed in the background. Clicking around in the interface before you get the final message box saying that the synchronization is finished may cause a crash and terminate the synchronization. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha1-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] c27ff4efae4a9a20c7a4d35c2c4033a34e417e24 1524 1523 2018-11-22T16:27:41Z Joepal 14 /* Known issues */ wikitext text/x-wiki '''It is important to understand that 1.2.0 alpha 1 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. * The initial sync for the asset downloader will take a very long time to finish, and it might look as if it finished despite the files still being processed in the background. Clicking around in the interface before you get the final message box saying that the synchronization is finished may cause a crash and terminate the synchronization. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha1-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 92d97ad76e8e9df11beae501abb605e6fd908756 1523 1522 2018-11-22T16:25:55Z Joepal 14 /* Known issues */ wikitext text/x-wiki '''It is important to understand that 1.2.0 alpha 1 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The initial sync for the asset downloader will take a very long time to finish, and it might look as if it finished despite the files still being processed in the background. Clicking around in the interface before you get the final message box saying that the synchronization is finished may cause a crash and terminate the synchronization. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha1-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 20a8e0e0bd6ce4458140b2809ae91eef935e88c3 1522 1521 2018-11-22T16:24:07Z Joepal 14 wikitext text/x-wiki '''It is important to understand that 1.2.0 alpha 1 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The initial sync for the asset downloader will take a very long time to finish, and it might look as if it finished despite the files still being processed in the background == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha1-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 1d12672c3df744600ed88f13ef7079ff7fd7bb29 1521 1520 2018-11-22T16:22:11Z Joepal 14 /* Highlights */ wikitext text/x-wiki '''It is important to understand that 1.2.0 alpha 1 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' You can find download links at the bottom of this page. These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The initial sync for the asset downloader will take a very long time to finish, and it might look as if it finished despite the files still being processed in the background == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha1-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] b903271ae11bd82aa04b3a773d2895781fa0cc9a 1520 1519 2018-11-22T16:21:14Z Joepal 14 wikitext text/x-wiki '''It is important to understand that 1.2.0 alpha 1 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' You can find download links at the bottom of this page. These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers build of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The initial sync for the asset downloader will take a very long time to finish, and it might look as if it finished despite the files still being processed in the background == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha1-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 08411743e38306dafe11a82ea935bdf137a48c15 1519 1518 2018-11-22T10:10:44Z Joepal 14 /* Known issues */ wikitext text/x-wiki '''It is important to understand that 1.2.0 alpha 1 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers build of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The initial sync for the asset downloader will take a very long time to finish, and it might look as if it finished despite the files still being processed in the background == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] c905a96d682273103c4f40a6723a163ffed62891 1518 1517 2018-11-22T10:07:55Z Joepal 14 wikitext text/x-wiki '''It is important to understand that 1.2.0 alpha 1 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers build of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 69e14761de3d839481523b26e86efc20086073d6 1517 1516 2018-11-21T12:25:19Z Joepal 14 /* The upgraded codebase */ wikitext text/x-wiki These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers build of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 651518278b646d8c99e3ded473269e7d17653c57 1516 1515 2018-11-21T12:22:47Z Joepal 14 wikitext text/x-wiki These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers build of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts was written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 1a3bd575f391db5a1bd1c91749db8ecb5d42f6aa 1515 1514 2018-11-20T21:51:38Z Robbaer 12 wikitext text/x-wiki These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers build of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts was written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. e964fe2980c29dbf1d2bb8c1fa39af2bf05d3951 1514 1513 2018-11-20T15:59:14Z Joepal 14 /* Known issues */ wikitext text/x-wiki These notes are under construction and may be incomplete. Further, the notes do as of yet describe an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers build of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts was written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. d7338d14c68db72e9eb1a1d073397c0839bbec09 1513 1512 2018-11-20T12:49:34Z Joepal 14 /* Known issues */ wikitext text/x-wiki These notes are under construction and may be incomplete. Further, the notes do as of yet describe an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers build of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts was written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. 607ad98bfdb441d457c016006ff3c178cc1f5f83 1512 1511 2018-11-20T12:46:29Z Joepal 14 /* The upgraded codebase */ wikitext text/x-wiki These notes are under construction and may be incomplete. Further, the notes do as of yet describe an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers build of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts was written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. 99499df62dbcac01af57593ef657b1894fd1649f 1511 1510 2018-11-20T12:27:17Z Joepal 14 /* Ubuntu */ wikitext text/x-wiki These notes are under construction and may be incomplete. Further, the notes do as of yet describe an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers build of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. 434cf0377224d07db21261577a574ede43f95007 1510 1509 2018-11-20T12:24:20Z Joepal 14 /* Highlights */ wikitext text/x-wiki These notes are under construction and may be incomplete. Further, the notes do as of yet describe an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers build of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. PPAs will be provided for 18.04 and later releases. == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. 4e8d525035791ceadd8a95ffd7184a2d9a99b68c 1509 1508 2018-11-20T12:22:25Z Joepal 14 wikitext text/x-wiki These notes are under construction and may be incomplete. Further, the notes do as of yet describe an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman packages) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. PPAs will be provided for 18.04 and later releases. == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. 36629ec6a020a595d51184d161b72569b4a69d08 1508 1507 2018-11-17T11:38:45Z Aranuvir 17 /* Highlights */ wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman packages) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. PPAs will be provided for 18.04 and later releases. == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. 6eb239c89e687decffcf231aeefb01964281a1ac 1507 1506 2018-11-14T15:11:56Z Joepal 14 /* Running from source */ wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * ... (Aranuvir: can you add a list of the new features you've written?) * Improved tag sorting capabilities * MHX2 is bundled in the default installation * There is a new installer for windows == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. PPAs will be provided for 18.04 and later releases. == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. 27f314ab591f594946396e462e9e786796b76b5b 1506 1505 2018-11-14T15:10:50Z Joepal 14 /* Upgrading */ wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * ... (Aranuvir: can you add a list of the new features you've written?) * Improved tag sorting capabilities * MHX2 is bundled in the default installation * There is a new installer for windows == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGl: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. PPAs will be provided for 18.04 and later releases. == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. cb90d99c45ae3a86c1dac63ef58a2bab92945d58 1505 1504 2018-11-14T15:09:41Z Joepal 14 /* Upgrading */ wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * ... (Aranuvir: can you add a list of the new features you've written?) * Improved tag sorting capabilities * MHX2 is bundled in the default installation * There is a new installer for windows == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGl: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. PPAs will be provided for 18.04 and later releases. == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. 6f921d147683049a8c06a9fba9a430b6ba31ea5b 1504 1503 2018-11-14T14:15:47Z Joepal 14 /* Other bundled functionality */ wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * ... (Aranuvir: can you add a list of the new features you've written?) * Improved tag sorting capabilities * MHX2 is bundled in the default installation * There is a new installer for windows == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGl: Any modern version will work, including the one used for MakeHuman 1.1.x == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. 5e700bb2771efbc5c0dafe8cc0eb0f5b4674bfa6 1503 1502 2018-11-14T14:13:18Z Joepal 14 wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * ... (Aranuvir: can you add a list of the new features you've written?) * Improved tag sorting capabilities * MHX2 is bundled in the default installation * There is a new installer for windows == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGl: Any modern version will work, including the one used for MakeHuman 1.1.x == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == MHX2, maybe more bundled materials... 0bbc67413c7d011d5581f1b5ce0a9673fa9df6b0 1502 1501 2018-11-14T14:12:54Z Joepal 14 wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * ... (Aranuvir: can you add a list of the new features you've written?) * Improved tag sorting capabilities * MHX2 is bundled in the default installation * There is a new installer for windows == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGl: Any modern version will work, including the one used for MakeHuman 1.1.x == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> === A new windows installer === The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == MHX2, maybe more bundled materials... 1df70c240a4224f043541d64c6c6b43f43d5b3de 1501 1500 2018-11-14T14:09:35Z Joepal 14 /* Highlights */ wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * ... (Aranuvir: can you add a list of the new features you've written?) * Improved tag sorting capabilities * MHX2 is bundled in the default installation * There is a new installer for windows == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGl: Any modern version will work, including the one used for MakeHuman 1.1.x == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == Other bundled functionality == MHX2, maybe more bundled materials... 3881b4b2559356cc663c89998f84bbc79a0e7960 1500 1499 2018-11-14T13:53:29Z Joepal 14 /* New blender integration */ wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * ... (Aranuvir: can you add a list of the new features you've written?) * Improved tag sorting capabilities * MHX2 is bundled in the default installation == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGl: Any modern version will work, including the one used for MakeHuman 1.1.x == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == Other bundled functionality == MHX2, maybe more bundled materials... 69e63281db60c5fee6401fc06eaf9445b7b7c364 1499 1498 2018-11-14T13:51:15Z Joepal 14 /* Highlights */ wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * ... (Aranuvir: can you add a list of the new features you've written?) * Improved tag sorting capabilities * MHX2 is bundled in the default installation == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGl: Any modern version will work, including the one used for MakeHuman 1.1.x == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == Other bundled functionality == MHX2, maybe more bundled materials... 623ea6cf481b6ccab538b913bc568ace1e7492cf 1498 1497 2018-11-14T13:50:12Z Joepal 14 /* Upgrading */ wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to make bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * ... (Aranuvir: can you add a list of the new features you've written?) * Improved tag sorting capabilities * MHX2 is bundled in the default installation == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGl: Any modern version will work, including the one used for MakeHuman 1.1.x == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == Other bundled functionality == MHX2, maybe more bundled materials... 580c428aede0111e2026ef5b97d90f12dc5976a9 1497 1496 2018-11-14T13:41:55Z Joepal 14 /* Highlights */ wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to make bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported?) * ... (Aranuvir: can you add a list of the new features you've written?) * Improved tag sorting capabilities * MHX2 is bundled in the default installation == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code == Upgrading == To be written == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == Other bundled functionality == MHX2, maybe more bundled materials... 8b03881308f154036e0c176372aa88788b0ed7e2 1496 1493 2018-11-14T13:41:06Z Joepal 14 wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to make bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration (socket transfer) * Improved internationalization support for non-ASCII characters (backported?) * ... (Aranuvir: can you add a list of the new features you've written?) * Improved tag sorting capabilities * MHX2 is bundled in the default installation == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code == Upgrading == To be written == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == Other bundled functionality == MHX2, maybe more bundled materials... f919e1eb9c37ffd0e4e234c484b74e0f02e4933a 1493 1492 2018-11-14T13:26:06Z Joepal 14 /* Asset downloader */ wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to make bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration (socket transfer) * Improved internationalization support for non-ASCII characters (backported?) * ... (Aranuvir: can you add a list of the new features you've written?) * Improved tag sorting capabilities * MHX2 is bundled in the default installation == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code == Upgrading == To be written == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == To be written == Bundled functionality == MHX2, maybe more bundled materials... fba2823cbfeeb40363c9178ea728b64a8d2c152a 1492 1489 2018-11-14T13:24:30Z Joepal 14 /* Asset downloader */ wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to make bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration (socket transfer) * Improved internationalization support for non-ASCII characters (backported?) * ... (Aranuvir: can you add a list of the new features you've written?) * Improved tag sorting capabilities * MHX2 is bundled in the default installation == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code == Upgrading == To be written == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. == New blender integration == To be written == Bundled functionality == MHX2, maybe more bundled materials... 11623379e67f1460c985ebb64cbeb39916a317cf 1489 1488 2018-11-10T18:23:06Z Robbaer 12 wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to make bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration (socket transfer) * Improved internationalization support for non-ASCII characters (backported?) * ... (Aranuvir: can you add a list of the new features you've written?) * Improved tag sorting capabilities * MHX2 is bundled in the default installation == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code == Upgrading == To be written == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == To be written == New blender integration == To be written == Bundled functionality == MHX2, maybe more bundled materials... 5555af97ee9943cb0490d5f8da234bd930e19bc6 1488 1487 2018-11-10T18:22:04Z Robbaer 12 wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving a larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to make bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration (socket transfer) * Improved internationalization support for non-ASCII characters (backported?) * ... (Aranuvir: can you add a list of the new features you've written?) * Improved tag sorting capabilities * MHX2 is bundled in the default installation == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code == Upgrading == To be written == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == To be written == New blender integration == To be written == Bundled functionality == MHX2, maybe more bundled materials... f0e1d5953be48f2ef46beb30b37b83ac6aee392b 1487 1486 2018-11-10T18:14:19Z Robbaer 12 wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to make MakeHuman an integrated part in a larger community that provides integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to make bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration (socket transfer) * Improved internationalization support for non-ASCII characters (backported?) * ... (Aranuvir: can you add a list of the new features you've written?) * Improved tag sorting capabilities * MHX2 is bundled in the default installation == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code == Upgrading == To be written == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == To be written == New blender integration == To be written == Bundled functionality == MHX2, maybe more bundled materials... 656e4f90c3a20cdb93d26c830f936ce2a3e5a056 1486 1485 2018-11-05T10:28:19Z Joepal 14 wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to make MakeHuman an integrated part in a larger community that provides third part assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to make bring it up to date with modern versions of Python and Qt * Third part assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new blender integration (socket transfer) * ... (Aranuvir: can you add a list of the new features you've written?) * MHX2 is bundled in the default installation == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code == Upgrading == To be written == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == To be written == New blender integration == To be written == Bundled functionality == MHX2, maybe more bundled materials... deaf58d04d0b3562d1aaef959486ca4f1714b72b 1485 2018-11-05T10:21:05Z Joepal 14 Created page with "These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated de..." wikitext text/x-wiki These notes are under construction and may be incomplete "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to make MakeHuman an integrated part in a larger community that provides third part assets and extended functionality. == Highlights == * The codebase has received a major overhaul to make bring it up to date with modern versions of Python and Qt * Third part assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new blender integration (socket transfer) * ... (Aranuvir: can you add a list of the new features you've written?) * MHX2 is bundled in the default installation == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code == Upgrading == To be written == The upgraded codebase == Information about the upgrade and the new base requirements... == Asset downloader == To be written == New blender integration == To be written == Bundled functionality == MHX2, maybe more bundled materials... bb301a67b1e4bc2efe30616836a8107305cb147a Releases:120a2 0 568 1592 1547 2019-05-10T09:42:00Z Wolgade 26 /* Running from source */ wikitext text/x-wiki MakeHuman Community 1.2.0-alpha2 was released 2018-12-10. '''It is important to understand that 1.2.0 alpha 2 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Where to download == You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] The following are the changes since version 1.1.1. == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. 8f792e727c8399b3b89e131e9690c2d24996a6ac 1547 1543 2018-12-18T09:33:01Z Robbaer 12 wikitext text/x-wiki MakeHuman Community 1.2.0-alpha2 was released 2018-12-10. '''It is important to understand that 1.2.0 alpha 2 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Where to download == You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] The following are the changes since version 1.1.1. == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. e1ca4a90dfbc767f79a75d8a1553b8b2e31f2462 1543 1541 2018-12-10T12:34:47Z Joepal 14 /* Where to download */ wikitext text/x-wiki MakeHuman Community 1.2.0-alpha2 was released 2018-12-10. '''It is important to understand that 1.2.0 alpha 2 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 1f2d6ed10dccc767780040d0d4cab4298df39270 1541 1540 2018-12-10T11:49:53Z Joepal 14 wikitext text/x-wiki MakeHuman Community 1.2.0-alpha2 was released 2018-12-10. '''It is important to understand that 1.2.0 alpha 2 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == (alpha 2 has not yet been released, these links might be broken) You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha1-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] ed2eb1cddd8aba8923a45e7231f42a07602f3403 1540 1539 2018-12-10T11:22:03Z Joepal 14 /* Changes since alpha 1 */ wikitext text/x-wiki (alpha 2 has not been released yet, these notes are work in progress) '''It is important to understand that 1.2.0 alpha 2 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == (alpha 2 has not yet been released, these links might be broken) You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha1-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 9733374e2d3a7d56bbaadb6f47074b069419c306 1539 1538 2018-12-10T11:19:06Z Joepal 14 /* Changes since alpha 1 */ wikitext text/x-wiki (alpha 2 has not been released yet, these notes are work in progress) '''It is important to understand that 1.2.0 alpha 2 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 1 == The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == (alpha 2 has not yet been released, these links might be broken) You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha1-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 9e2b1c0692ea6e70d891a29df2f172d3b6c53055 1538 1537 2018-12-09T14:18:35Z Joepal 14 /* Changes since alpha 1 */ wikitext text/x-wiki (alpha 2 has not been released yet, these notes are work in progress) '''It is important to understand that 1.2.0 alpha 2 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 1 == The following are fixes made since the release of 1.2.0 alpha 1: * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == (alpha 2 has not yet been released, these links might be broken) You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha1-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] ddfc9c4666a004917f209ce480f4784c97c8a0ef 1537 1533 2018-12-06T09:50:00Z Joepal 14 /* Changes since alpha 1 */ wikitext text/x-wiki (alpha 2 has not been released yet, these notes are work in progress) '''It is important to understand that 1.2.0 alpha 2 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 1 == The following are fixes made since the release of 1.2.0 alpha 1: * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == (alpha 2 has not yet been released, these links might be broken) You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha1-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] f8d72088c1bfe04bc5d1c6fbfcd698f0e89dde14 1533 1532 2018-11-30T11:04:08Z Joepal 14 /* Known issues */ wikitext text/x-wiki (alpha 2 has not been released yet, these notes are work in progress) '''It is important to understand that 1.2.0 alpha 2 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 1 == The following are fixes made since the release of 1.2.0 alpha 1: * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == (alpha 2 has not yet been released, these links might be broken) You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha1-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 6976bae95196c34ddfee50a7d6cf8b1f9738553a 1532 1531 2018-11-30T10:57:53Z Joepal 14 /* Changes since alpha 1 */ wikitext text/x-wiki (alpha 2 has not been released yet, these notes are work in progress) '''It is important to understand that 1.2.0 alpha 2 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 1 == The following are fixes made since the release of 1.2.0 alpha 1: * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. * The initial sync for the asset downloader will take a very long time to finish, and it might look as if it finished despite the files still being processed in the background. Clicking around in the interface before you get the final message box saying that the synchronization is finished may cause a crash and terminate the synchronization. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == (alpha 2 has not yet been released, these links might be broken) You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha1-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 85c18056261a60a409175dd727a0390d3d698ec9 1531 1530 2018-11-29T09:24:02Z Joepal 14 /* Changes since alpha 1 */ wikitext text/x-wiki (alpha 2 has not been released yet, these notes are work in progress) '''It is important to understand that 1.2.0 alpha 2 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 1 == The following are fixes made since the release of 1.2.0 alpha 1: * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. * The initial sync for the asset downloader will take a very long time to finish, and it might look as if it finished despite the files still being processed in the background. Clicking around in the interface before you get the final message box saying that the synchronization is finished may cause a crash and terminate the synchronization. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == (alpha 2 has not yet been released, these links might be broken) You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha1-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] f16b16867d85246b476b5b46d93e55dd6141626d 1530 1529 2018-11-29T08:48:15Z Joepal 14 wikitext text/x-wiki (alpha 2 has not been released yet, these notes are work in progress) '''It is important to understand that 1.2.0 alpha 2 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 1 == The following are fixes made since the release of 1.2.0 alpha 1: * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. * The initial sync for the asset downloader will take a very long time to finish, and it might look as if it finished despite the files still being processed in the background. Clicking around in the interface before you get the final message box saying that the synchronization is finished may cause a crash and terminate the synchronization. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == (alpha 2 has not yet been released, these links might be broken) You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha1-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 573ce0aab5dc8e28f4b2eceb722e289dfb49a5b7 1529 1526 2018-11-29T08:46:37Z Joepal 14 wikitext text/x-wiki '''It is important to understand that 1.2.0 alpha 2 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 1 == The following are fixes made since the release of 1.2.0 alpha 1: * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. * The initial sync for the asset downloader will take a very long time to finish, and it might look as if it finished despite the files still being processed in the background. Clicking around in the interface before you get the final message box saying that the synchronization is finished may cause a crash and terminate the synchronization. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == (alpha 2 has not yet been released, these links might be broken) You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha1-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 8913245e95e8bf6f2fd5ee5b117e5669d7b9dadd 1526 2018-11-29T08:40:11Z Joepal 14 Created page with "'''It is important to understand that 1.2.0 alpha 1 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least re..." wikitext text/x-wiki '''It is important to understand that 1.2.0 alpha 1 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. * The initial sync for the asset downloader will take a very long time to finish, and it might look as if it finished despite the files still being processed in the background. Clicking around in the interface before you get the final message box saying that the synchronization is finished may cause a crash and terminate the synchronization. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == (alpha 2 has not yet been released, these links might be broken) You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha1-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] b32a3ea3a13f416e52c0b2ce544d99dd49b4fe94 Releases:120a3 0 570 1593 1587 2019-05-10T09:42:57Z Wolgade 26 /* Running from source */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 was released 2019-03-19 '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * MASS PRODUCE: The "mass produce" plugin has been added. It allows randomizing large sets of characters automatically (see [https://www.youtube.com/watch?v=jRHnJX-TdT4 this youtube video]). Note that when installing from PPA, you will have to install this explicitly. The package is named makehuman-community-plugins-massproduce. * ASSET DOWNLOADER: It is now possible to download a single screenshot from the details panel * ASSET DOWNLOADER: If the server for some reason protests (throws a 404 or similar), a sensible error message will now be shown to the user * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * NEW BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there are still some (seldomly used) parts of the program that may cause problems with some intel cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Users are recommended to ''not'' use ubuntu's version of blender. * The new blender importer requires at least blender 2.79. It will not work with versions earlier than 2.79. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == The Mass Produce plugin == A new plugin is now bundled per default: The "mass produce" plugin. This allows rapidly generating large sets of randomized characters. The functionality is demonstrated in a youtube video: {{#ev:youtube|jRHnJX-TdT4}} == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 3. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha3-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 962356cfe7d8c22292816438d1e0138accb0dccf 1587 1583 2019-04-06T20:15:09Z Polylearn 80 year fix wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 was released 2019-03-19 '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * MASS PRODUCE: The "mass produce" plugin has been added. It allows randomizing large sets of characters automatically (see [https://www.youtube.com/watch?v=jRHnJX-TdT4 this youtube video]). Note that when installing from PPA, you will have to install this explicitly. The package is named makehuman-community-plugins-massproduce. * ASSET DOWNLOADER: It is now possible to download a single screenshot from the details panel * ASSET DOWNLOADER: If the server for some reason protests (throws a 404 or similar), a sensible error message will now be shown to the user * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * NEW BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there are still some (seldomly used) parts of the program that may cause problems with some intel cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Users are recommended to ''not'' use ubuntu's version of blender. * The new blender importer requires at least blender 2.79. It will not work with versions earlier than 2.79. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == The Mass Produce plugin == A new plugin is now bundled per default: The "mass produce" plugin. This allows rapidly generating large sets of randomized characters. The functionality is demonstrated in a youtube video: {{#ev:youtube|jRHnJX-TdT4}} == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 3. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha3-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html dd21de20803369d2b0e6d0a6835893c7811cf347 1583 1582 2019-03-20T15:52:28Z Joepal 14 /* Upgrading */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 was released 2018-03-19 '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * MASS PRODUCE: The "mass produce" plugin has been added. It allows randomizing large sets of characters automatically (see [https://www.youtube.com/watch?v=jRHnJX-TdT4 this youtube video]). Note that when installing from PPA, you will have to install this explicitly. The package is named makehuman-community-plugins-massproduce. * ASSET DOWNLOADER: It is now possible to download a single screenshot from the details panel * ASSET DOWNLOADER: If the server for some reason protests (throws a 404 or similar), a sensible error message will now be shown to the user * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * NEW BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there are still some (seldomly used) parts of the program that may cause problems with some intel cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Users are recommended to ''not'' use ubuntu's version of blender. * The new blender importer requires at least blender 2.79. It will not work with versions earlier than 2.79. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == The Mass Produce plugin == A new plugin is now bundled per default: The "mass produce" plugin. This allows rapidly generating large sets of randomized characters. The functionality is demonstrated in a youtube video: {{#ev:youtube|jRHnJX-TdT4}} == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 3. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha3-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 9b04f43334362f8fd61a4cbc53960ddebb5505df 1582 1581 2019-03-20T15:49:41Z Joepal 14 /* Known issues */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 was released 2018-03-19 '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * MASS PRODUCE: The "mass produce" plugin has been added. It allows randomizing large sets of characters automatically (see [https://www.youtube.com/watch?v=jRHnJX-TdT4 this youtube video]). Note that when installing from PPA, you will have to install this explicitly. The package is named makehuman-community-plugins-massproduce. * ASSET DOWNLOADER: It is now possible to download a single screenshot from the details panel * ASSET DOWNLOADER: If the server for some reason protests (throws a 404 or similar), a sensible error message will now be shown to the user * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * NEW BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there are still some (seldomly used) parts of the program that may cause problems with some intel cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Users are recommended to ''not'' use ubuntu's version of blender. * The new blender importer requires at least blender 2.79. It will not work with versions earlier than 2.79. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == The Mass Produce plugin == A new plugin is now bundled per default: The "mass produce" plugin. This allows rapidly generating large sets of randomized characters. The functionality is demonstrated in a youtube video: {{#ev:youtube|jRHnJX-TdT4}} == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 3. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha3-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 41832addab0883794a04cd6cdc10d1ddacaa41c5 1581 1580 2019-03-20T15:48:12Z Joepal 14 /* Highlights */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 was released 2018-03-19 '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * MASS PRODUCE: The "mass produce" plugin has been added. It allows randomizing large sets of characters automatically (see [https://www.youtube.com/watch?v=jRHnJX-TdT4 this youtube video]). Note that when installing from PPA, you will have to install this explicitly. The package is named makehuman-community-plugins-massproduce. * ASSET DOWNLOADER: It is now possible to download a single screenshot from the details panel * ASSET DOWNLOADER: If the server for some reason protests (throws a 404 or similar), a sensible error message will now be shown to the user * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * NEW BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there are still some (seldomly used) parts of the program that may cause problems with some intel cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Users are recommended to ''not'' use ubuntu's version of blender. * The new blender importer requires blender 2.79. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == The Mass Produce plugin == A new plugin is now bundled per default: The "mass produce" plugin. This allows rapidly generating large sets of randomized characters. The functionality is demonstrated in a youtube video: {{#ev:youtube|jRHnJX-TdT4}} == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 3. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha3-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 38918516ec81ae7a2d570bf65f35e29a21c01da5 1580 1577 2019-03-20T15:36:56Z Joepal 14 wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 was released 2018-03-19 '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * MASS PRODUCE: The "mass produce" plugin has been added. It allows randomizing large sets of characters automatically (see [https://www.youtube.com/watch?v=jRHnJX-TdT4 this youtube video]). Note that when installing from PPA, you will have to install this explicitly. The package is named makehuman-community-plugins-massproduce. * ASSET DOWNLOADER: It is now possible to download a single screenshot from the details panel * ASSET DOWNLOADER: If the server for some reason protests (throws a 404 or similar), a sensible error message will now be shown to the user * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * NEW BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there are still some (seldomly used) parts of the program that may cause problems with some intel cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Users are recommended to ''not'' use ubuntu's version of blender. * The new blender importer requires blender 2.79. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == The Mass Produce plugin == A new plugin is now bundled per default: The "mass produce" plugin. This allows rapidly generating large sets of randomized characters. The functionality is demonstrated in a youtube video: {{#ev:youtube|jRHnJX-TdT4}} == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 3. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha3-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 86f303be60e16ba69dda51af5f205709e391974d 1577 1576 2019-03-19T20:08:46Z Joepal 14 /* Where to download */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 was released 2018-03-19 '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * MASS PRODUCE: The "mass produce" plugin has been added. It allows randomizing large sets of characters automatically (see [https://www.youtube.com/watch?v=jRHnJX-TdT4 this youtube video]). Note that when installing from PPA, you will have to install this explicitly. The package is named makehuman-community-plugins-massproduce. * ASSET DOWNLOADER: It is now possible to download a single screenshot from the details panel * ASSET DOWNLOADER: If the server for some reason protests (throws a 404 or similar), a sensible error message will now be shown to the user * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * NEW BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there are still some (seldomly used) parts of the program that may cause problems with some intel cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Users are recommended to ''not'' use ubuntu's version of blender. * The new blender importer requires blender 2.79. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 3. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha3-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html dccb14badef2b53f62db0bf7b1a5e006034e3cec 1576 1575 2019-03-19T17:35:25Z Joepal 14 /* Where to download */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 was released 2018-03-19 '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * MASS PRODUCE: The "mass produce" plugin has been added. It allows randomizing large sets of characters automatically (see [https://www.youtube.com/watch?v=jRHnJX-TdT4 this youtube video]). Note that when installing from PPA, you will have to install this explicitly. The package is named makehuman-community-plugins-massproduce. * ASSET DOWNLOADER: It is now possible to download a single screenshot from the details panel * ASSET DOWNLOADER: If the server for some reason protests (throws a 404 or similar), a sensible error message will now be shown to the user * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * NEW BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there are still some (seldomly used) parts of the program that may cause problems with some intel cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Users are recommended to ''not'' use ubuntu's version of blender. * The new blender importer requires blender 2.79. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == THERE IS CURRENTLY A PROBLEM WITH THE BUILD, WAIT A BIT BEFORE DOWNLOADING You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha3-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 8109f24303260130ac235ca311d7e752c659c5aa 1575 1574 2019-03-19T17:26:38Z Joepal 14 /* Known issues */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 was released 2018-03-19 '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * MASS PRODUCE: The "mass produce" plugin has been added. It allows randomizing large sets of characters automatically (see [https://www.youtube.com/watch?v=jRHnJX-TdT4 this youtube video]). Note that when installing from PPA, you will have to install this explicitly. The package is named makehuman-community-plugins-massproduce. * ASSET DOWNLOADER: It is now possible to download a single screenshot from the details panel * ASSET DOWNLOADER: If the server for some reason protests (throws a 404 or similar), a sensible error message will now be shown to the user * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * NEW BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there are still some (seldomly used) parts of the program that may cause problems with some intel cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Users are recommended to ''not'' use ubuntu's version of blender. * The new blender importer requires blender 2.79. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha3-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 98d7bc52de1a87eb3a4e39e5f22fe3f5f990241c 1574 1573 2019-03-19T17:21:21Z Joepal 14 /* Changes since alpha 2 */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 was released 2018-03-19 '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * MASS PRODUCE: The "mass produce" plugin has been added. It allows randomizing large sets of characters automatically (see [https://www.youtube.com/watch?v=jRHnJX-TdT4 this youtube video]). Note that when installing from PPA, you will have to install this explicitly. The package is named makehuman-community-plugins-massproduce. * ASSET DOWNLOADER: It is now possible to download a single screenshot from the details panel * ASSET DOWNLOADER: If the server for some reason protests (throws a 404 or similar), a sensible error message will now be shown to the user * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * NEW BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha3-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 123f617947e5dc0861b9dbe9af0c37556f2c83f7 1573 1572 2019-03-19T17:18:18Z Joepal 14 /* Providing feedback and bug reports */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 was released 2018-03-19 '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * MASS PRODUCE: The "mass produce" plugin has been added. It allows randomizing large sets of characters automatically (see [https://www.youtube.com/watch?v=jRHnJX-TdT4 this youtube video]) * ASSET DOWNLOADER: It is now possible to download a single screenshot from the details panel * ASSET DOWNLOADER: If the server for some reason protests (throws a 404 or similar), a sensible error message will now be shown to the user * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * NEW BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha3-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html ba3bc2185e96a16a83fa4aafeb846924627b198b 1572 1571 2019-03-19T17:17:17Z Joepal 14 /* Where to download */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 was released 2018-03-19 '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * MASS PRODUCE: The "mass produce" plugin has been added. It allows randomizing large sets of characters automatically (see [https://www.youtube.com/watch?v=jRHnJX-TdT4 this youtube video]) * ASSET DOWNLOADER: It is now possible to download a single screenshot from the details panel * ASSET DOWNLOADER: If the server for some reason protests (throws a 404 or similar), a sensible error message will now be shown to the user * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * NEW BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha3-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] bcd67c16d412c30e204f444e1caf2d5867eab1bf 1571 1564 2019-03-19T17:16:37Z Joepal 14 wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 was released 2018-03-19 '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * MASS PRODUCE: The "mass produce" plugin has been added. It allows randomizing large sets of characters automatically (see [https://www.youtube.com/watch?v=jRHnJX-TdT4 this youtube video]) * ASSET DOWNLOADER: It is now possible to download a single screenshot from the details panel * ASSET DOWNLOADER: If the server for some reason protests (throws a 404 or similar), a sensible error message will now be shown to the user * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * NEW BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 5209c6c76e9cce0a5e278b41ec9bde64daaa8435 1564 1563 2019-03-04T09:20:45Z Aranuvir 17 /* Changes since alpha 2 */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 has not yet been released. '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * MASS PRODUCE: The "mass produce" plugin has been added. It allows randomizing large sets of characters automatically (see [https://www.youtube.com/watch?v=jRHnJX-TdT4 this youtube video]) * ASSET DOWNLOADER: It is now possible to download a single screenshot from the details panel * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * NEW BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] af9c32d41a515c22388c8a73495fa26460c52b91 1563 1562 2019-03-03T17:59:07Z Joepal 14 /* Changes since alpha 2 */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 has not yet been released. '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * MASS PRODUCE: The "mass produce" plugin has been added. It allows randomizing large sets of characters automatically (see [https://www.youtube.com/watch?v=jRHnJX-TdT4 this youtube video]) * ASSET DOWNLOADER: It is now possible to download a single screenshot from the details panel * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * NEW BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode (mhx2 integration is still missing). * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] a3e8e2ead39816c700c17ba3db34e51a004d1bc8 1562 1561 2019-03-03T17:58:31Z Joepal 14 /* Changes since alpha 2 */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 has not yet been released. '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * MASS PRODUCE: The "mass produce" plugin has been added. It allows randomizing large sets of characters automatically (see [https://www.youtube.com/watch?v=jRHnJX-TdT4 this youtube video]) * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * NEW BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode (mhx2 integration is still missing). * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 1ae93af3bbfe614749c314e5392954db9818e118 1561 1560 2019-02-12T14:28:38Z Aranuvir 17 /* Changes since alpha 2 */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 has not yet been released. '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * New BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode (mhx2 integration is still missing). * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 592c9fd62c4f1fcbbbd7d0206a555b6c5a59e2a6 1560 1559 2019-02-12T14:28:05Z Aranuvir 17 /* Changes since alpha 2 */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 has not yet been released. '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * CORE: It is possible to prevent values on rescan of custom target folders. * CORE: The rig loading tab, now recurses on subfolders, allowing to better organize the data. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * New BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode (mhx2 integration is still missing). * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] c3f38addc15bd2ee46e9ef214635aab863070241 1559 1558 2019-02-12T14:17:58Z Aranuvir 17 /* Changes since alpha 2 */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 has not yet been released. '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * New BLENDER INTEGRATION: It is now possible to define a viewport color in mhmat files {keys: viewPortColor, viewPortAlpha}, which will affect the object appearance in Blender's solid view mode (mhx2 integration is still missing). * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 6781e1fce1be50f739362229f7f9b63a4ce01dfc 1558 1557 2019-02-12T14:07:01Z Aranuvir 17 /* Highlights */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 has not yet been released. '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 43f316059c3d55f340f90df959494c4716c49793 1557 1556 2019-01-23T18:01:05Z Joepal 14 /* Changes since alpha 2 */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 has not yet been released. '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that prevented makehuman from starting (or not showing any 3d models) on some AMD cards has been fixed * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 6c8419d2a18dccf39aa48cf7b74d89917d70b49a 1556 1554 2019-01-23T17:59:03Z Joepal 14 wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 has not yet been released. '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline should now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * CORE: A crash in proxy loading when using symlinks for makehuman home has been fixed * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy * NEW BLENDER INTEGRATION: The management of transparency was slightly improved, particularly for eevee * NEW BLENDER INTEGRATION: Reduced the time it takes to import bone weights for a rigged character, by some 60% * SOCKET / NEW BLENDER INTEGRATION: It is now possible to configure host and port, meaning blender and makehuman can reside on different computers * SOCKET / NEW BLENDER INTEGRATION: the "Allow connections" checkbox will remember its state across makehuman restarts (meaning the socket server will autostart if it was running when you last closed MH) == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 5b7703aadabdfaa9263ea75bb467d57799445eec 1554 1551 2019-01-05T12:30:30Z Joepal 14 /* Changes since alpha 2 */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 has not yet been released. '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * CORE: The whole pipeline show now gracefully accept tri meshes (in for example clothes). Note that mixed tri/quad meshes are still not supported: they need to be either tri or quad. * CORE: Further measures have been taken to force all IO to be utf-8 on all platforms. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 11d73564567dfe60cc01c56aee931799aaace505 1551 1550 2018-12-27T14:33:49Z Joepal 14 /* Changes since alpha 2 */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 has not yet been released. '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * CORE: A crash that arose when a mesh could not be loaded (for any reason, such as the file not existing) has been worked around. * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * NEW BLENDER INTEGRATION: Now works with blender 2.80 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') * NEW BLENDER INTEGRATION: Now correctly sets up material nodes for normal maps. * NEW BLENDER INTEGRATION: The code was refactored to get a structure that is a bit less messy == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 11b8e5dd4a68bed80c33704fffea133e522ee385 1550 1549 2018-12-21T12:53:26Z Joepal 14 /* Changes since alpha 2 */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 has not yet been released. '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * MODELING: The random functionality have been improved by ensuring symmetry in more body parts. * LANGUAGE: A spelling mistake ("symmmetry") has been corrected in most/all language files * BLENDER: The new blender integration now works with blender 2.8 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] e7edffa987c500ea645417124b35fb455d6ec968 1549 1548 2018-12-21T12:52:51Z Joepal 14 /* Changes since alpha 2 */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 has not yet been released. '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * The random functionality have been improved by ensuring symmetry in more body parts. * A spelling mistake ("symmmetry") has been corrected in most/all language files * The new blender integration now works with blender 2.8 ('''note that contrary to blender 2.79, the "makehuman" tab is on the "n" shelf rather than the "t" shelf''') == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 9a4bbc61395a083f541a6161f0d4933a61a9cb1c 1548 1546 2018-12-21T12:52:07Z Joepal 14 /* Changes since alpha 2 */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 has not yet been released. '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * The random functionality have been improved by ensuring symmetry in more body parts. * A spelling mistake ("symmmetry") has been corrected in most/all language files * The new blender integration now works with blender 2.8 (note that contrary to blender 2.79, the makehuman tab is on the "n" shelf rather than the "t" shelf) == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] e8388e13d7d2cf07d3acd6a7946920aca24a8971 1546 2018-12-18T08:14:33Z Joepal 14 Created page with "MakeHuman Community 1.2.0 alpha3 has not yet been released. '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave st..." wikitext text/x-wiki MakeHuman Community 1.2.0 alpha3 has not yet been released. '''It is important to understand that 1.2.0 alpha 3 is an alpha release. This means that things ''will'' behave strangely. Before downloading the build, you should at least read the "known issues" section in these notes.''' These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 2 == * The random functionality have been improved by ensuring symmetry in more body parts. * A spelling mistake ("symmmetry") has been corrected in most/all language files == Changes since alpha 1 == Note that the graphics card issue has ''not'' been addressed yet. So if alpha 1 did not work for you, alpha 2 will not either. The following are fixes made since the release of 1.2.0 alpha 1: * LINUX: makehuman root is now ~/Documents/makehuman/v1py3 (or whatever your platform name for "Documents" is, it is fetched from the XDG configuration) rather than ~/makehuman/v1py3. This is the standard used on other platforms, but it will mean that you will have to manually move data you want to keep from the old location to the new. * UI: Core MakeHuman assets now have a tag "MakeHumanTM", making it easier to only show bundled assets when many third-part assets have been downloaded * MATERIALS: Core assets will now also look in user directories for extra materials * ASSET DOWNLOADER: When downloading materials that belong to a core asset, these will now be placed so they show up as materials for said asset * ASSET DOWNLOADER: It is now possible to filter materials to show only those belonging to a core asset * ASSET DOWNLOADER: Drastically reduced the size of the initial download * ASSET DOWNLOADER: Provide better visual feedback so it doesn't look as if the system hanged * ASSET DOWNLOADER: Made downloading screenshots for assets optional * PPA: Remove strong dependency on blender. We recommend against using Ubuntu's version of blender since it's broken in many ways. * PPA: Specify minimum allowed versions of central dependencies. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities, including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * There are still graphics card incompatibilities in the OpenGL code. '''On several graphics cards you may get no visible output whatsoever''', rendering the application unusable. If this happens, please report what operating system and what graphics card you are using so we can investigate it further. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Investigations are pending. * The new blender importer requires blender 2.79. It will not work in earlier versions of blender and will not (yet) work in blender 2.80. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == As alpha 3 has not yet been released, these links are for alpha 2. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha2-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal bug trackers are here: * For MakeHuman as such: [http://bugtracker.makehumancommunity.org/ http://bugtracker.makehumancommunity.org/] * For the asset downloader: [https://github.com/makehumancommunity/community-plugins-assetdownload/issues https://github.com/makehumancommunity/community-plugins-assetdownload/issues] * For the makehuman side of the new blender integration: [https://github.com/makehumancommunity/community-plugins-socket/issues https://github.com/makehumancommunity/community-plugins-socket/issues] * For the blender side of the new blender integration: [https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues https://github.com/makehumancommunity/makehuman-plugin-for-blender/issues] * For issues specific to MHX2: [https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues?status=new&status=open https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange/issues] 730a6a2d98a2078795f553add33cfddf23cc09fb Releases:120a4 0 573 1630 1629 2019-12-16T15:05:01Z Joepal 14 wikitext text/x-wiki MakeHuman Community 1.2.0 alpha 4 was released 2019-12-16. The following are the release notes. Alpha 4 is the last planned alpha. Next release will be a beta. All in all, most of the code should now be almost as it is supposed to look for a release, but the latest changes to adress graphics card problems is extensive enough that we think an extra alpha release is merited (instead of the originally planned beta 1). The notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 3 == * CORE: Additional sources of graphics card errors were corrected * CORE: There is now a fallback layer to adress some graphics card compatibility issues, primarily related to rendering * CORE: Expressions are now found even when placed in subdirectories * CORE: Sorting of assets in lists is now case insensitive * USER PLUGINS: Fixed a bug where a user plugin could sometimes not be loaded * PLUGINS: Many plugins are ''not'' bundled with this release, as they are changing rapidly and we think it is better that users pick the latest versions from http://www.makehumancommunity.org/content/plugins.html ** MHAPI: Is bundled and preinstalled ** SOCKET: Is bundled and preinstalled (this is the makehuman part of the new blender integration) ** ASSET DOWNLOADER: Is bundled and preinstalled ** MASS PRODUCE: Not bundled ** MAKEHUMAN PLUGIN FOR BLENDER (MPFB): Not bundled (this is the blender side of the new blender integration) ** MAKETARGET: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MAKECLOTHES: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MHX2 (makehuman side): Is bundled and preinstalled ** MHX2 (blender side): Not bundled * ASSET DOWNLOADER: Downloaded materials for third-part assets will now be placed correctly in the target asset's directory, and will show up in the material chooser for that asset. * WINDOWS: A shortcut will now be added to the desktop during installation Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * WINDOWS: When using "install for all users", makehuman might fail to start. "Install just for me" should work. * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 4. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha4-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html ad21d4dd5a2259cb779919d38c16ef2f60b93583 1629 1628 2019-12-16T10:12:22Z Joepal 14 wikitext text/x-wiki MakeHuman Community 1.2.0 alpha 4 was released 2019-12-15. The following are the release notes. Alpha 4 is the last planned alpha. Next release will be a beta. All in all, most of the code should now be almost as it is supposed to look for a release, but the latest changes to adress graphics card problems is extensive enough that we think an extra alpha release is merited (instead of the originally planned beta 1). The notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 3 == * CORE: Additional sources of graphics card errors were corrected * CORE: There is now a fallback layer to adress some graphics card compatibility issues, primarily related to rendering * CORE: Expressions are now found even when placed in subdirectories * CORE: Sorting of assets in lists is now case insensitive * USER PLUGINS: Fixed a bug where a user plugin could sometimes not be loaded * PLUGINS: Many plugins are ''not'' bundled with this release, as they are changing rapidly and we think it is better that users pick the latest versions from http://www.makehumancommunity.org/content/plugins.html ** MHAPI: Is bundled and preinstalled ** SOCKET: Is bundled and preinstalled (this is the makehuman part of the new blender integration) ** ASSET DOWNLOADER: Is bundled and preinstalled ** MASS PRODUCE: Not bundled ** MAKEHUMAN PLUGIN FOR BLENDER (MPFB): Not bundled (this is the blender side of the new blender integration) ** MAKETARGET: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MAKECLOTHES: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MHX2 (makehuman side): Is bundled and preinstalled ** MHX2 (blender side): Not bundled * ASSET DOWNLOADER: Downloaded materials for third-part assets will now be placed correctly in the target asset's directory, and will show up in the material chooser for that asset. * WINDOWS: A shortcut will now be added to the desktop during installation Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * WINDOWS: When using "install for all users", makehuman might fail to start. "Install just for me" should work. * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 4. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha4-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html b651d98c40fbe2a3e49aa4a0d89e4277ffe58618 1628 1627 2019-12-15T16:15:00Z Joepal 14 /* Changes since alpha 3 */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha 4 has not yet been released. The following are work in progress release notes. Alpha 4 is the last planned alpha. Next release will be a beta. All in all, most of the code should now be almost as it is supposed to look for a release, but the latest changes to adress graphics card problems is extensive enough that we think an extra alpha release is merited (instead of the originally planned beta 1). These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 3 == * CORE: Additional sources of graphics card errors were corrected * CORE: There is now a fallback layer to adress some graphics card compatibility issues, primarily related to rendering * CORE: Expressions are now found even when placed in subdirectories * CORE: Sorting of assets in lists is now case insensitive * USER PLUGINS: Fixed a bug where a user plugin could sometimes not be loaded * PLUGINS: Many plugins are ''not'' bundled with this release, as they are changing rapidly and we think it is better that users pick the latest versions from http://www.makehumancommunity.org/content/plugins.html ** MHAPI: Is bundled and preinstalled ** SOCKET: Is bundled and preinstalled (this is the makehuman part of the new blender integration) ** ASSET DOWNLOADER: Is bundled and preinstalled ** MASS PRODUCE: Not bundled ** MAKEHUMAN PLUGIN FOR BLENDER (MPFB): Not bundled (this is the blender side of the new blender integration) ** MAKETARGET: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MAKECLOTHES: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MHX2 (makehuman side): Is bundled and preinstalled ** MHX2 (blender side): Not bundled * ASSET DOWNLOADER: Downloaded materials for third-part assets will now be placed correctly in the target asset's directory, and will show up in the material chooser for that asset. * WINDOWS: A shortcut will now be added to the desktop during installation Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 4. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha4-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 3928e6332ca98b9dfc0bb5d055a875b643561292 1627 1626 2019-12-15T15:57:49Z Joepal 14 wikitext text/x-wiki MakeHuman Community 1.2.0 alpha 4 has not yet been released. The following are work in progress release notes. Alpha 4 is the last planned alpha. Next release will be a beta. All in all, most of the code should now be almost as it is supposed to look for a release, but the latest changes to adress graphics card problems is extensive enough that we think an extra alpha release is merited (instead of the originally planned beta 1). These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 3 == * CORE: Additional sources of graphics card errors were corrected * CORE: There is now a fallback layer to adress some graphics card compatibility issues, primarily related to rendering * CORE: Expressions are now found even when placed in subdirectories * CORE: Sorting of assets in lists is now case insensitive * USER PLUGINS: Fixed a bug where a user plugin could sometimes not be loaded * PLUGINS: Many plugins are ''not'' bundled with this release, as they are changing rapidly and we think it is better that users pick the latest versions from http://www.makehumancommunity.org/content/plugins.html ** MHAPI: Is bundled and preinstalled ** SOCKET: Is bundled and preinstalled (this is the makehuman part of the new blender integration) ** ASSET DOWNLOADER: Is bundled and preinstalled ** MASS PRODUCE: Not bundled ** MAKEHUMAN PLUGIN FOR BLENDER (MPFB): Not bundled (this is the blender side of the new blender integration) ** MAKETARGET: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MAKECLOTHES: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MHX2 (makehuman side): Is bundled and preinstalled ** MHX2 (blender side): Not bundled * ASSET DOWNLOADER: Downloaded materials for third-part assets will now be placed correctly in the target asset's directory, and will show up in the material chooser for that asset. Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 4. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha4-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 57c244d0f60d56887ea5b52e04725eca1239cdb4 1626 1625 2019-12-02T08:49:25Z Joepal 14 wikitext text/x-wiki MakeHuman Community 1.2.0 alpha 4 has not yet been released. The following are work in progress release notes. Alpha 4 is the last planned alpha. Next release will be a beta. All in all, most of the code should now be almost as it is supposed to look for a release, but the latest changes to adress graphics card problems is extensive enough that we think an extra alpha release is merited (instead of the originally planned beta 1). These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 3 == * CORE: Multiple sources of graphics card errors were corrected * CORE: There is now a fallback layer to adress some graphics card compatibility issues, primarily related to rendering * CORE: Expressions are now found even when placed in subdirectories * CORE: Sorting of assets in lists is now case insensitive * USER PLUGINS: Fixed a bug where a user plugin could sometimes not be loaded * PLUGINS: Many plugins are ''not'' bundled with this release, as they are changing rapidly and we think it is better that users pick the latest versions from http://www.makehumancommunity.org/content/plugins.html ** MHAPI: Is bundled and preinstalled ** SOCKET: Is bundled and preinstalled (this is the makehuman part of the new blender integration) ** ASSET DOWNLOADER: Is bundled and preinstalled ** MASS PRODUCE: Not bundled ** MAKEHUMAN PLUGIN FOR BLENDER (MPFB): Not bundled (this is the blender side of the new blender integration) ** MAKETARGET: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MAKECLOTHES: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MHX2 (makehuman side): Is bundled and preinstalled ** MHX2 (blender side): Not bundled * ASSET DOWNLOADER: Downloaded materials for third-part assets will now be placed correctly in the target asset's directory, and will show up in the material chooser for that asset. Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 4. They will be updated once beta 1 is released. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha4-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html ba2894fe02e743cb6acc29ae27596c22ce30a1b5 1625 1624 2019-12-02T08:47:30Z Joepal 14 /* Known issues */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha 4 has not yet been released. The following are work in progress release notes. Alpha 4 is the last planned alpha. Next release will be a beta. All in all, most of the code should now be almost as it is supposed to look for a release, but the latest changes to adress graphics card problems is extensive enough that we think an extra alpha release is merited (instead of the originally planned beta 1). These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 3 == * CORE: Multiple sources of graphics card errors were corrected * CORE: There is now a fallback layer to adress some graphics card compatibility issues, primarily related to rendering * CORE: Expressions are now found even when placed in subdirectories * CORE: Sorting of assets in lists is now case insensitive * USER PLUGINS: Fixed a bug where a user plugin could sometimes not be loaded * PLUGINS: Many plugins are ''not'' bundled with this release, as they are changing rapidly and we think it is better that users pick the latest versions from http://www.makehumancommunity.org/content/plugins.html ** MHAPI: Is bundled and preinstalled ** SOCKET: Is bundled and preinstalled (this is the makehuman part of the new blender integration) ** ASSET DOWNLOADER: Is bundled and preinstalled ** MASS PRODUCE: Not bundled ** MAKEHUMAN PLUGIN FOR BLENDER (MPFB): Not bundled (this is the blender side of the new blender integration) ** MAKETARGET: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MAKECLOTHES: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MHX2 (makehuman side): Is bundled and preinstalled ** MHX2 (blender side): Not bundled * ASSET DOWNLOADER: Downloaded materials for third-part assets will now be placed correctly in the target asset's directory, and will show up in the material chooser for that asset. Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == The Mass Produce plugin == A new plugin is now bundled per default: The "mass produce" plugin. This allows rapidly generating large sets of randomized characters. The functionality is demonstrated in a youtube video: {{#ev:youtube|jRHnJX-TdT4}} == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 4. They will be updated once beta 1 is released. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha4-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 0c1f7dd159ff975c59c69d2d89aab78a7089930f 1624 1623 2019-12-02T08:44:06Z Joepal 14 /* Changes since alpha 3 */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha 4 has not yet been released. The following are work in progress release notes. Alpha 4 is the last planned alpha. Next release will be a beta. All in all, most of the code should now be almost as it is supposed to look for a release, but the latest changes to adress graphics card problems is extensive enough that we think an extra alpha release is merited (instead of the originally planned beta 1). These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 3 == * CORE: Multiple sources of graphics card errors were corrected * CORE: There is now a fallback layer to adress some graphics card compatibility issues, primarily related to rendering * CORE: Expressions are now found even when placed in subdirectories * CORE: Sorting of assets in lists is now case insensitive * USER PLUGINS: Fixed a bug where a user plugin could sometimes not be loaded * PLUGINS: Many plugins are ''not'' bundled with this release, as they are changing rapidly and we think it is better that users pick the latest versions from http://www.makehumancommunity.org/content/plugins.html ** MHAPI: Is bundled and preinstalled ** SOCKET: Is bundled and preinstalled (this is the makehuman part of the new blender integration) ** ASSET DOWNLOADER: Is bundled and preinstalled ** MASS PRODUCE: Not bundled ** MAKEHUMAN PLUGIN FOR BLENDER (MPFB): Not bundled (this is the blender side of the new blender integration) ** MAKETARGET: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MAKECLOTHES: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MHX2 (makehuman side): Is bundled and preinstalled ** MHX2 (blender side): Not bundled * ASSET DOWNLOADER: Downloaded materials for third-part assets will now be placed correctly in the target asset's directory, and will show up in the material chooser for that asset. Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there are still some (seldomly used) parts of the program that may cause problems with some intel cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == The Mass Produce plugin == A new plugin is now bundled per default: The "mass produce" plugin. This allows rapidly generating large sets of randomized characters. The functionality is demonstrated in a youtube video: {{#ev:youtube|jRHnJX-TdT4}} == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 4. They will be updated once beta 1 is released. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha4-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 806e411b3254d199c5330a8f82adaae26c7174f4 1623 1622 2019-12-02T08:39:59Z Joepal 14 /* Changes since alpha 3 */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha 4 has not yet been released. The following are work in progress release notes. Alpha 4 is the last planned alpha. Next release will be a beta. All in all, most of the code should now be almost as it is supposed to look for a release, but the latest changes to adress graphics card problems is extensive enough that we think an extra alpha release is merited (instead of the originally planned beta 1). These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 3 == * CORE: Multiple sources of graphics card errors were corrected * CORE: There is now a fallback layer to adress some graphics card compatibility issues, primarily related to rendering * PLUGINS: Many plugins are ''not'' bundled with this release, as they are changing rapidly and we think it is better that users pick the latest versions from http://www.makehumancommunity.org/content/plugins.html ** MHAPI: Is bundled and preinstalled ** SOCKET: Is bundled and preinstalled (this is the makehuman part of the new blender integration) ** ASSET DOWNLOADER: Is bundled and preinstalled ** MASS PRODUCE: Not bundled ** MAKEHUMAN PLUGIN FOR BLENDER (MPFB): Not bundled (this is the blender side of the new blender integration) ** MAKETARGET: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MAKECLOTHES: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MHX2 (makehuman side): Is bundled and preinstalled ** MHX2 (blender side): Not bundled * ASSET DOWNLOADER: Downloaded materials for third-part assets will now be placed correctly in the target asset's directory, and will show up in the material chooser for that asset. Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there are still some (seldomly used) parts of the program that may cause problems with some intel cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == The Mass Produce plugin == A new plugin is now bundled per default: The "mass produce" plugin. This allows rapidly generating large sets of randomized characters. The functionality is demonstrated in a youtube video: {{#ev:youtube|jRHnJX-TdT4}} == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 4. They will be updated once beta 1 is released. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha4-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html b3c03dfc3d93d0804395f6bd57aa2e002e09736b 1622 1621 2019-12-02T08:36:24Z Joepal 14 /* Changes since alpha 3 */ wikitext text/x-wiki MakeHuman Community 1.2.0 alpha 4 has not yet been released. The following are work in progress release notes. Alpha 4 is the last planned alpha. Next release will be a beta. All in all, most of the code should now be almost as it is supposed to look for a release, but the latest changes to adress graphics card problems is extensive enough that we think an extra alpha release is merited (instead of the originally planned beta 1). These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 3 == * CORE: Multiple sources of graphics card errors were corrected * CORE: There is now a fallback layer to adress some graphics card compatibility issues, primarily related to rendering * ASSET DOWNLOADER: Downloaded materials for third-part assets will now be placed correctly in the target asset's directory, and will show up in the material chooser for that asset. * PLUGINS: Many plugins are ''not'' bundled with this release, as they are changing rapidly and we think it is better that users pick the latest versions from http://www.makehumancommunity.org/content/plugins.html ** MHAPI: Is bundled and preinstalled ** SOCKET: Is bundled and preinstalled (this is the makehuman part of the new blender integration) ** ASSET DOWNLOADER: Is bundled and preinstalled ** MASS PRODUCE: Not bundled ** MAKEHUMAN PLUGIN FOR BLENDER (MPFB): Not bundled (this is the blender side of the new blender integration) ** MAKETARGET: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MAKECLOTHES: Not bundled. There is now separate versions for blender 2.79 and 2.8x. You should pick the one that fits your needs ** MHX2 (makehuman side): Is bundled and preinstalled ** MHX2 (blender side): Not bundled == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there are still some (seldomly used) parts of the program that may cause problems with some intel cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == The Mass Produce plugin == A new plugin is now bundled per default: The "mass produce" plugin. This allows rapidly generating large sets of randomized characters. The functionality is demonstrated in a youtube video: {{#ev:youtube|jRHnJX-TdT4}} == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 4. They will be updated once beta 1 is released. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha4-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 421266006a37e084088f32cc49abd9f1fe042b1b 1621 1619 2019-12-02T08:30:48Z Joepal 14 wikitext text/x-wiki MakeHuman Community 1.2.0 alpha 4 has not yet been released. The following are work in progress release notes. Alpha 4 is the last planned alpha. Next release will be a beta. All in all, most of the code should now be almost as it is supposed to look for a release, but the latest changes to adress graphics card problems is extensive enough that we think an extra alpha release is merited (instead of the originally planned beta 1). These notes are under construction and may be incomplete. Further, the notes describe, as of now, an alpha version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 3 == * CORE: Multiple sources of graphics card errors were corrected * CORE: There is now a fallback layer to adress some graphics card compatibility issues, primarily related to rendering * ASSET DOWNLOADER: Downloaded materials for third-part assets will now be placed correctly in the target asset's directory, and will show up in the material chooser for that asset. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there are still some (seldomly used) parts of the program that may cause problems with some intel cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == The Mass Produce plugin == A new plugin is now bundled per default: The "mass produce" plugin. This allows rapidly generating large sets of randomized characters. The functionality is demonstrated in a youtube video: {{#ev:youtube|jRHnJX-TdT4}} == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 4. They will be updated once beta 1 is released. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha4-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 47e67d855bf4bd7d2da2a9060ff4c470458df187 1619 1594 2019-12-02T08:22:52Z Joepal 14 Joepal moved page [[Releases:120b1]] to [[Releases:120a4]] without leaving a redirect: Releasing alpha 4 instead of beta 1 wikitext text/x-wiki MakeHuman Community 1.2.0 beta1 has not yet been released. The following are work in progress release notes. Beta 1 is intended to be as stable as a stable release can be, but it will not be as tested as a formal stable release will be. Thus, in most cases things should work as intended, but there might be the occasional glitch. These notes are under construction and may be incomplete. Further, the notes describe, as of now, a beta version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 3 == * ASSET DOWNLOADER: Downloaded materials for third-part assets will now be placed correctly in the target asset's directory, and will show up in the material chooser for that asset. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there are still some (seldomly used) parts of the program that may cause problems with some intel cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Users are recommended to ''not'' use ubuntu's version of blender. * The new blender importer requires at least blender 2.79. It will not work with versions earlier than 2.79. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == The Mass Produce plugin == A new plugin is now bundled per default: The "mass produce" plugin. This allows rapidly generating large sets of randomized characters. The functionality is demonstrated in a youtube video: {{#ev:youtube|jRHnJX-TdT4}} == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 3. They will be updated once beta 1 is released. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha3-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 86ddd76eb65f6bdcdfd40579d46dd79d07b7fcf2 1594 1589 2019-05-10T09:44:00Z Wolgade 26 /* Running from source */ wikitext text/x-wiki MakeHuman Community 1.2.0 beta1 has not yet been released. The following are work in progress release notes. Beta 1 is intended to be as stable as a stable release can be, but it will not be as tested as a formal stable release will be. Thus, in most cases things should work as intended, but there might be the occasional glitch. These notes are under construction and may be incomplete. Further, the notes describe, as of now, a beta version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 3 == * ASSET DOWNLOADER: Downloaded materials for third-part assets will now be placed correctly in the target asset's directory, and will show up in the material chooser for that asset. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there are still some (seldomly used) parts of the program that may cause problems with some intel cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Users are recommended to ''not'' use ubuntu's version of blender. * The new blender importer requires at least blender 2.79. It will not work with versions earlier than 2.79. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == The Mass Produce plugin == A new plugin is now bundled per default: The "mass produce" plugin. This allows rapidly generating large sets of randomized characters. The functionality is demonstrated in a youtube video: {{#ev:youtube|jRHnJX-TdT4}} == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 3. They will be updated once beta 1 is released. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha3-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 86ddd76eb65f6bdcdfd40579d46dd79d07b7fcf2 1589 2019-04-07T17:24:17Z Joepal 14 Created page with "MakeHuman Community 1.2.0 beta1 has not yet been released. The following are work in progress release notes. Beta 1 is intended to be as stable as a stable release can be, bu..." wikitext text/x-wiki MakeHuman Community 1.2.0 beta1 has not yet been released. The following are work in progress release notes. Beta 1 is intended to be as stable as a stable release can be, but it will not be as tested as a formal stable release will be. Thus, in most cases things should work as intended, but there might be the occasional glitch. These notes are under construction and may be incomplete. Further, the notes describe, as of now, a beta version of a coming release. The final release might be different from what is described below. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. The following are the changes since version 1.1.1. == Changes since alpha 3 == * ASSET DOWNLOADER: Downloaded materials for third-part assets will now be placed correctly in the target asset's directory, and will show up in the material chooser for that asset. == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there are still some (seldomly used) parts of the program that may cause problems with some intel cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. * The new blender importer will crash when used in a version of blender that is shipped with ubuntu 18.04. It works fine on ubuntu 18.04 if using a blender that is downloaded from blender's homepage though. Users are recommended to ''not'' use ubuntu's version of blender. * The new blender importer requires at least blender 2.79. It will not work with versions earlier than 2.79. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 or higher * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in less than two years. * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == The Mass Produce plugin == A new plugin is now bundled per default: The "mass produce" plugin. This allows rapidly generating large sets of randomized characters. The functionality is demonstrated in a youtube video: {{#ev:youtube|jRHnJX-TdT4}} == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 is bundled as a zip file which can be added to blender via the user preferences. === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download alpha 3. They will be updated once beta 1 is released. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-alpha3-win32.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with an alpha release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 3991a7f48e10c84f7eeb662ec5be96f1c39372b7 Releases:120b1 0 623 1789 1787 2020-05-03T12:51:39Z Joepal 14 wikitext text/x-wiki These are the release notes for 1.2.0-beta1, which was released 2020-05-03. This is the first beta. All in all, most of the code should now be almost as it is supposed to look for a release, although there are still some graphics card issues. The notes describe, as of now, a beta version of a coming release. The final release might be different from what is described below. If you wonder if this is something you should use, take a look at [[FAQ: Which version of MakeHuman should I download?]] Note that '''1.2.0-beta1 is exactly the same binary as the nightly build from 2020-05-03'''. If you are already using nightly builds, there is no reason whatsoever to switch to beta 1. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since alpha 4 == * MAKESKIN: A new tool for creating MakeHuman materials is now bundled. * CORE: A few minor bugs were corrected. * FBX: A minor issue with triangles was fixed * WINDOWS: There is a new build pipeline and dependencies have been upgraded to the latest (within a few months anyway) versions * MAKECLOTHES: MakeClothes 1 is now considered deprecated in favor of MakeClothes 2. MC1 is thus no longer bundled with the release. * MAKETARGET: MakeTarget 1 is now considered deprecated in favor of MakeTarget 2. MT1 is thus no longer bundled with the release. Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) * There is a new tool MakeSkin for creating materials == Known issues == * WINDOWS: When using "install for all users", makehuman might fail to start. "Install just for me" should work. * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download beta 1. You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-beta1-windows.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 1f6ed0d59ba4acd6ef8b806946e89725492508d1 1787 2020-05-02T16:45:18Z Joepal 14 Created page with "These are the preliminary release notes for 1.2.0-beta1. This is the first beta. All in all, most of the code should now be almost as it is supposed to look for a release, al..." wikitext text/x-wiki These are the preliminary release notes for 1.2.0-beta1. This is the first beta. All in all, most of the code should now be almost as it is supposed to look for a release, although there are still some graphics card issues. The notes describe, as of now, a beta version of a coming release. The final release might be different from what is described below. If you wonder if this is something you should use, take a look at [[FAQ: Which version of MakeHuman should I download?]] == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since alpha 4 == * MAKESKIN: A new tool for creating MakeHuman materials is now bundled. * CORE: A few minor bugs were corrected. * FBX: A minor issue with triangles was fixed * WINDOWS: There is a new build pipeline and dependencies have been upgraded to the latest (within a few months anyway) versions Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) * There is a new tool MakeSkin for creating materials == Known issues == * WINDOWS: When using "install for all users", makehuman might fail to start. "Install just for me" should work. * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download beta 1. (it has not been released yet) == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 44f18b6df1e4fa493a1f087badacc3b6ae7178c7 Releases:120b2 0 624 1848 1847 2020-07-27T14:54:13Z Joepal 14 /* Known issues */ wikitext text/x-wiki These are the release notes for 1.2.0-beta2, which was released 2020-07-27. This is the second and final beta. From now on, nightly builds should in principle be considered release candidates for the final stable release. If you wonder if this is something you should use, take a look at [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build, there is no reason whatsoever to switch to a beta, unless you want a formal release build. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since beta 1 == * CORE/UI: It is now possible to disable sample buffers via settings (on the general tab). This is the first thing to try on graphics cards which have trouble rendering the 3d canvas, see [[FAQ: The interface looks broken ]] * CORE/UI: It is now possible to enforce "noshaders" via settings (on the general tab). This is the second thing to try on graphics cards which have trouble rendering the 3d canvas, see [[FAQ: The interface looks broken ]] * CORE/UI: The UI should now scale properly on UHD/4K displays (thanks dennj). There is a setting ("use HDPI") for this under settings -> general. * TARGETS: The core targets were reworked to assure left/right symmetry (thanks punkduck) * WINDOWS: Another reason for makehuman silently not starting on windows was adressed * WINDOWS: It should now be possible to "install for all users" Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) * There is a new tool MakeSkin for creating materials == Known issues == * The FBX export is still incompatible with some third part software. * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download beta 2: You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-beta2-windows.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 0dff40de6b99df5c9922e9ed17d001bcc8de569c 1847 1846 2020-07-27T11:26:08Z Joepal 14 wikitext text/x-wiki These are the release notes for 1.2.0-beta2, which was released 2020-07-27. This is the second and final beta. From now on, nightly builds should in principle be considered release candidates for the final stable release. If you wonder if this is something you should use, take a look at [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build, there is no reason whatsoever to switch to a beta, unless you want a formal release build. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since beta 1 == * CORE/UI: It is now possible to disable sample buffers via settings (on the general tab). This is the first thing to try on graphics cards which have trouble rendering the 3d canvas, see [[FAQ: The interface looks broken ]] * CORE/UI: It is now possible to enforce "noshaders" via settings (on the general tab). This is the second thing to try on graphics cards which have trouble rendering the 3d canvas, see [[FAQ: The interface looks broken ]] * CORE/UI: The UI should now scale properly on UHD/4K displays (thanks dennj). There is a setting ("use HDPI") for this under settings -> general. * TARGETS: The core targets were reworked to assure left/right symmetry (thanks punkduck) * WINDOWS: Another reason for makehuman silently not starting on windows was adressed * WINDOWS: It should now be possible to "install for all users" Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) * There is a new tool MakeSkin for creating materials == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download beta 2: You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-beta2-windows.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 0b6722d2ce3b0488bfe2ec3d212e9af0af84a99b 1846 1844 2020-07-27T11:25:17Z Joepal 14 /* Where to download */ wikitext text/x-wiki These are the release notes for 1.2.0-beta2, which was released 2020-07-27. This is the second and final beta. From now on, nightly builds should in principle be considered release candidates for the final stable release. If you wonder if this is something you should use, take a look at [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build, there is no reason whatsoever to switch to a beta. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since beta 1 == * CORE/UI: It is now possible to disable sample buffers via settings (on the general tab). This is the first thing to try on graphics cards which have trouble rendering the 3d canvas, see [[FAQ: The interface looks broken ]] * CORE/UI: It is now possible to enforce "noshaders" via settings (on the general tab). This is the second thing to try on graphics cards which have trouble rendering the 3d canvas, see [[FAQ: The interface looks broken ]] * CORE/UI: The UI should now scale properly on UHD/4K displays (thanks dennj). There is a setting ("use HDPI") for this under settings -> general. * TARGETS: The core targets were reworked to assure left/right symmetry (thanks punkduck) * WINDOWS: Another reason for makehuman silently not starting on windows was adressed * WINDOWS: It should now be possible to "install for all users" Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) * There is a new tool MakeSkin for creating materials == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download beta 2: You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-beta2-windows.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 8cc0c6ed3ae9206406ca93eabaf63c4b2f02c351 1844 1843 2020-07-27T11:23:53Z Joepal 14 wikitext text/x-wiki These are the release notes for 1.2.0-beta2, which was released 2020-07-27. This is the second and final beta. From now on, nightly builds should in principle be considered release candidates for the final stable release. If you wonder if this is something you should use, take a look at [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build, there is no reason whatsoever to switch to a beta. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since beta 1 == * CORE/UI: It is now possible to disable sample buffers via settings (on the general tab). This is the first thing to try on graphics cards which have trouble rendering the 3d canvas, see [[FAQ: The interface looks broken ]] * CORE/UI: It is now possible to enforce "noshaders" via settings (on the general tab). This is the second thing to try on graphics cards which have trouble rendering the 3d canvas, see [[FAQ: The interface looks broken ]] * CORE/UI: The UI should now scale properly on UHD/4K displays (thanks dennj). There is a setting ("use HDPI") for this under settings -> general. * TARGETS: The core targets were reworked to assure left/right symmetry (thanks punkduck) * WINDOWS: Another reason for makehuman silently not starting on windows was adressed * WINDOWS: It should now be possible to "install for all users" Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) * There is a new tool MakeSkin for creating materials == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download '''beta 1''' (as beta 2 hasn't been release yet): You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-beta1-windows.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 70ce6a1321b5c551c7defdfcde9bbfd54bf0d165 1843 1823 2020-07-27T08:03:48Z Joepal 14 wikitext text/x-wiki These are the release notes for 1.2.0-beta2, which has not yet been released. This is the second and final beta. From now on, nightly builds should in principle be considered release candidates for the final stable release. If you wonder if this is something you should use, take a look at [[FAQ: Which version of MakeHuman should I download?]] If you are already using a recent nightly build, there is no reason whatsoever to switch to a beta. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since beta 1 == * CORE/UI: It is now possible to disable sample buffers via settings (on the general tab). This is the first thing to try on graphics cards which have trouble rendering the 3d canvas, see [[FAQ: The interface looks broken ]] * CORE/UI: It is now possible to enforce "noshaders" via settings (on the general tab). This is the second thing to try on graphics cards which have trouble rendering the 3d canvas, see [[FAQ: The interface looks broken ]] * CORE/UI: The UI should now scale properly on UHD/4K displays (thanks dennj). There is a setting ("use HDPI") for this under settings -> general. * TARGETS: The core targets were reworked to assure left/right symmetry (thanks punkduck) * WINDOWS: Another reason for makehuman silently not starting on windows was adressed * WINDOWS: It should now be possible to "install for all users" Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) * There is a new tool MakeSkin for creating materials == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download '''beta 1''' (as beta 2 hasn't been release yet): You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-beta1-windows.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 4a1a1889e25685b5420a1b8341f1ac5fe2902f8a 1823 1800 2020-07-23T13:17:35Z Joepal 14 wikitext text/x-wiki These are the release notes for 1.2.0-beta2, which has not yet been released. This is the second beta. All in all, most of the code should now be almost as it is supposed to look for a release, although there are still some graphics card issues. The notes describe, as of now, a beta version of a coming release. The final release might be different from what is described below. If you wonder if this is something you should use, take a look at [[FAQ: Which version of MakeHuman should I download?]] Note that a beta is exactly the same binary as the nightly build from the corresponding date. If you are already using a nightly build, there is no reason whatsoever to switch to a beta. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since beta 1 == * CORE/UI: It is now possible to disable sample buffers via settings (on the general tab). This is the first thing to try on graphics cards which have trouble rendering the 3d canvas, see [[FAQ: The interface looks broken ]] * CORE/UI: It is now possible to enforce "noshaders" via settings (on the general tab). This is the second thing to try on graphics cards which have trouble rendering the 3d canvas, see [[FAQ: The interface looks broken ]] * CORE/UI: The UI should now scale properly on UHD/4K displays (thanks dennj). There is a setting for this under settings -> general. * TARGETS: The core targets were reworked to assure left/right symmetry (thanks punkduck) * WINDOWS: Another reason for makehuman silently not starting on windows was adressed * WINDOWS: It should now be possible to "install for all users" Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) * There is a new tool MakeSkin for creating materials == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download '''beta 1''' (as beta 2 hasn't been release yet): You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-beta1-windows.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html b2a8b9122fa1b9f605cd045e7c0c553c071be095 1800 1794 2020-06-08T11:03:09Z Joepal 14 wikitext text/x-wiki These are the release notes for 1.2.0-beta2, which has not yet been released. This is the second beta. All in all, most of the code should now be almost as it is supposed to look for a release, although there are still some graphics card issues. The notes describe, as of now, a beta version of a coming release. The final release might be different from what is described below. If you wonder if this is something you should use, take a look at [[FAQ: Which version of MakeHuman should I download?]] Note that a beta is exactly the same binary as the nightly build from the corresponding date. If you are already using a nightly build, there is no reason whatsoever to switch to a beta. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since beta 1 == * CORE/UI: The UI should now scale properly on UHD/4K displays (thanks dennj) * TARGETS: The core targets were reworked to assure left/right symmetry (thanks punkduck) * WINDOWS: Another reason for makehuman silently not starting on windows was adressed * WINDOWS: It should now be possible to "install for all users" Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) * There is a new tool MakeSkin for creating materials == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download '''beta 1''' (as beta 2 hasn't been release yet): You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-beta1-windows.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 9b29bef99353d2fea4062ee96cf9fc6572d9f096 1794 1793 2020-05-22T09:52:31Z Joepal 14 wikitext text/x-wiki These are the release notes for 1.2.0-beta2, which has not yet been released. This is the second beta. All in all, most of the code should now be almost as it is supposed to look for a release, although there are still some graphics card issues. The notes describe, as of now, a beta version of a coming release. The final release might be different from what is described below. If you wonder if this is something you should use, take a look at [[FAQ: Which version of MakeHuman should I download?]] Note that a beta is exactly the same binary as the nightly build from the corresponding date. If you are already using a nightly build, there is no reason whatsoever to switch to a beta. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since beta 1 == * WINDOWS: Another reason for makehuman silently not starting on windows was adressed * WINDOWS: It should now be possible to "install for all users" Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) * There is a new tool MakeSkin for creating materials == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download '''beta 1''' (as beta 2 hasn't been release yet): You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-beta1-windows.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 3fc8109b5c4651f7d8327665e95715d0ad12763c 1793 1792 2020-05-22T09:51:25Z Joepal 14 wikitext text/x-wiki These are the release notes for 1.2.0-beta2, which has not yet been released. This is the second beta. All in all, most of the code should now be almost as it is supposed to look for a release, although there are still some graphics card issues. The notes describe, as of now, a beta version of a coming release. The final release might be different from what is described below. If you wonder if this is something you should use, take a look at [[FAQ: Which version of MakeHuman should I download?]] Note that are exactly the same binary as the nightly build from the corresponding date. If you are already using a nightly build, there is no reason whatsoever to switch to a beta. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since beta 1 == * WINDOWS: Another reason for makehuman silently not starting on windows was adressed * WINDOWS: It should now be possible to "install for all users" Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) * There is a new tool MakeSkin for creating materials == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download '''beta 1''' (as beta 2 hasn't been release yet): You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-beta1-windows.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 2fbb406fde8c42021efd242e9b729faf9d152644 1792 2020-05-22T09:50:49Z Joepal 14 Created page with "These are the release notes for 1.2.0-beta2, which has not yetbeen release. This is the second beta. All in all, most of the code should now be almost as it is supposed to l..." wikitext text/x-wiki These are the release notes for 1.2.0-beta2, which has not yetbeen release. This is the second beta. All in all, most of the code should now be almost as it is supposed to look for a release, although there are still some graphics card issues. The notes describe, as of now, a beta version of a coming release. The final release might be different from what is described below. If you wonder if this is something you should use, take a look at [[FAQ: Which version of MakeHuman should I download?]] Note that are exactly the same binary as the nightly build from the corresponding date. If you are already using a nightly build, there is no reason whatsoever to switch to a beta. == General == In most cases, there should be no problem running versions 1.1.1 and 1.2.0 on the same system. They will not interfere with each other's files. You can find download links for 1.2.0 at the bottom of this page. "MakeHuman Community 1.2.0" is a major update of the underlying code, where the focus has been to replace outdated dependencies and modernize the system. Further, a shift in focus has been made to position MakeHuman as a shared tool serving the larger community through integrated access to third party assets and extended functionality. == Changes since beta 1 == * WINDOWS: Another reason for makehuman silently not starting on windows was adressed * WINDOWS: It should now be possible to "install for all users" Due to the rapid evolution of the blender plugins (MPFB, MakeTarget, MakeClothes...) we're not listing these changes here. See the commit log in the respective git repositories instead: * [https://github.com/makehumancommunity/makehuman-plugin-for-blender/commits/master MakeHuman Plugin for Blender (MPFB)] * [https://github.com/makehumancommunity/community-plugins-makeclothes/commits/master MakeClothes 2] * [https://github.com/makehumancommunity/community-plugins-maketarget/commits/master MakeTarget 2] * [https://github.com/makehumancommunity/community-plugins-makeskin/commits/master MakeSkin] == Highlights == * The codebase has received a major overhaul to bring it up to date with modern versions of Python and Qt * Third party assets can be downloaded from within MakeHuman with a simple point and click procedure * There is a completely new Blender integration, with support for socket transfers, IK and Kinect * There is a new randomization functionality for generating large sets of randomized characters * Improved internationalization support for non-ASCII characters (backported) * Plugins in user space * Plugins activation at runtime * Improved tag sorting capabilities (Hotkey: ALT-F), including sticky tag provisions * Tags for models (with configurable tag count) * Show Name Tags instead of file names in the file loader. * Saving model as target * Real weight estimation * Configurable location for the home folder * MHX2 is bundled in the default installation * Save thumbnails directly from the internal render engine * There is a new installer for windows * There is a new PPA for ubuntu. This PPA also offers builds of plugins. * Using Jupyter for the shell utility, if available on the system (currently not working for MakeHuman windows builds) * There is a new tool MakeSkin for creating materials == Known issues == * FBX skeleton will still misbehave * While most of the graphics card incompatibilities should now be fixed, there may still be still parts of the program that cause problems with some integrated graphics cards. * There is no build for OSX * The user data folder is still makehuman/v1py3 rather than makehuman/v1, in order to guarrantee that the development version does not interfere with the stable version. This will probably be changed for the final release. == Upgrading == This version uses the same file formats as 1.1.x in almost all cases. The only exception is MHM files (which are produced when clicking "save model" in MakeHuman). 1.2.x is able to open MHM files produced in 1.1.x, and the result will look exactly the same as in 1.1.x. However, 1.1.x will not be able to open MHM files saved by 1.2.x. For all other assets, things should work the same and look the same in both versions, using the same files. === Running from source === The source code is available at [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to use the source code on this page. If you want to run MakeHuman directly from source (rather than downloading a binary build), you will have to replace almost all dependencies. It is also possible that not all dependencies will install smoothly beside the dependencies for 1.1.x. The following are the minimum required dependency versions for MakeHuman Community 1.2.0: * Python: 3.6.4 or higher * PyQt: 5.10.0 to 5.12.x. '''5.14 will not work''' * NumPy: 1.13.0 or higher * PyOpenGL: Any modern version will work, including the one used for MakeHuman 1.1.x === Ubuntu === In order to fulfill the minimum dependency requirements listed above, you will need Ubuntu 18.04 or later. For earlier Ubuntu versions, you would have use backports of the dependencies, as they are not available in the default installation. The PPA for this build is here: [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community ppa:makehuman-official/makehuman-community]. To enable it, run: sudo add-apt-repository ppa:makehuman-official/makehuman-community sudo apt-get update sudo apt-get install makehuman-community === Mint === The instructions for Ubuntu apply, but you will have to also explicitly install all plugins (whereas these will be installed automatically on Ubuntu) sudo apt-get install makehuman-community-plugins-assetdownload makehuman-community-plugins-socket makehuman-community-plugins-massproduce mhx2-makehuman-exchange == The upgraded codebase == The main focus of this release has been to modernize the code. In the prior version, large parts were written more than eight years ago, and relied on libraries and code structures which are no longer functional in a modern context. More in detail: * The system was written for python 2.6 and then upgraded when needed to python 2.7. The expected end of life for python 2.7 is in a few months * The user interface was implemented in Qt4, via PyQt4. Both Qt4 and PyQt4 got deprecated years ago, and Riverside (the authors of PyQt) removed all PyQt4 windows binaries, meaning we could no longer provide windows builds. Thus, the need to bring the code up to modern times became critical. We realized that the system would soon not be possible to run or develop on several platforms. Going through the code to update it has taken some considerable time (years actually), but it has had the added benefit that we have also reviewed almost all sections of the code and fixed a lot of minor bugs and glitches. Most users will probably not notice much difference: the user interfaces in 1.2.0 and 1.1.1 are almost identical. But it was work that needed to be done before we could move forward with implementing new features. == Asset downloader == [[File:12x-assetdownloader.png|400px|thumb|right|The asset downloader]] This version of MakeHuman bundles the asset downloader plugin. By using this you can access all the hundreds of user contributed assets that are available via the MakeHuman Community. Within the UI you can search for assets, show screenshots, read about details and download. Downloaded assets are automatically placed in your local asset directory so that you can immediately go to the geometries tabs and, for example, equip the newly downloaded clothes. <br clear=all> == New blender integration == [[File:12x-blender-import.png|300px|thumb|right|One click import directly from MakeHuman]] [[File:12x-blender-ik.png|300px|thumb|right|Convert to IK rig]] This release bundles a rich set of blender functionalitites, which can be added to blender in the form of an addon. Not all functionality will be listed here, but the following are some highlights. === Import directly from MakeHuman === In blender it is now possible to fetch a toon directly from a running instance of MakeHuman, without having to first save the toon to a file. The importer will talk with the makehuman instance and fetch all meshes (such as the body, hair clothes...), materials, rigs and poses. The process is almost instantaneous (a toon with a lot of clothes might take a few seconds to import). The importer UI supports a wide range of settings and presets. By using a preset you can, for example, import a body mesh suitable for using together with MakeClothes. This will make it significantly easier to develop assets aimed at a specific body type. Note that for the importer to work, you will have to go to the Community -> Socket tab in MakeHuman and enable "Accept connections". Otherwise MakeHuman won't answer, and you will get an error in Blender. === IK and amputations === The importer will use the skeleton set in MakeHuman to rig the resulting character in Blender. The rig can then be extended with the "IK rig" functionality: By clicking a button you can get extra IK controls, and IK chains set up for arms, legs and fingers. Rigs can also be amputated in case detailed bones are not required. All rigs currently available to MakeHuman are supported. === Kinect === To be written <br clear=all> == A new windows installer == The windows version is now distributed as an executable installer that supports uninstall. After installing MakeHuman, it can now be found on the start menu like all other normal windows application. Note that it is no longer recommended to go to the installation folder and start MakeHuman manually there. In order to do so, you would have to manually set up an environment for python, something which is handled automatically by the start menu entry. == Other bundled functionality == Apart from the above, some other functionality that previously had to be downloaded separately is now bundled: === MHX2 === MHX2 is now enabled per default in MakeHuman. The blender side of MHX2 can be downloaded from http://www.makehumancommunity.org/content/plugins.html === MHAPI === MHAPI (a library with convenience calls for making addons for MakeHuman) is now included and enabled per default. == Where to download == The following are links to where you can download '''beta 1''' (as beta 2 hasn't been release yet): You can [http://download.tuxfamily.org/makehuman/nightly/makehuman-community-1.2.0-beta1-windows.zip download the windows build here]. For linux, [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community there is a new PPA]. == Providing feedback and bug reports == As always with a beta release, the important part is getting feedback and bug reports. If in doubt, feedback and bug reports can always be posted on the forums. But more formal information about bug trackers can be found here: http://www.makehumancommunity.org/content/bugtracker.html 57b9646fe5d275007d4d1f2415738c1cba0016f1 Releases:120mac 0 689 1965 1964 2020-12-27T15:29:59Z Joepal 14 wikitext text/x-wiki Thanks to user Eray Ocak, there is now a mac build available. Regarding features, this release is roughly equivalent to [[Releases:120|the official 1.2.0 build for windows and linux]]. The following are specific notes regarding the build for MacOS. The first issue you are likely to run into, is that you might get an error message saying the application cannot be scanned for malicious software. This is because it isn't signed with a commercial certificate (which we don't have since we're a volunteer project without much of a budget). To get around this, see https://thewiredshopper.com/apple-cannot-check-for-malicious-software-error/ If there is something strange with this build, report this as an issue ticket at https://github.com/makehumancommunity/makehuman/issues. If it is not specific to OSX, see http://www.makehumancommunity.org/content/bugtracker.html for information on where to report bugs. The build can be downloaded from http://download.tuxfamily.org/makehuman/releases/makehuman-community-1.2.0-macos.zip 792b2460d56cda037d382d40420b5fcaac715513 1964 1963 2020-12-27T15:27:00Z Joepal 14 wikitext text/x-wiki Thanks to user Eray Ocak, there is now a mac build available. Regarding features, this release is roughly equivalent to [[Releases:120|the official 1.2.0 build for windows and linux]]. The following are specific notes regarding the build for MacOS. The first issue you are likely to run into, is that you might get an error message saying the application cannot be scanned for malicious software. This is because it isn't signed with a commercial certificate (which we don't have since we're a volunteer project without much of a budget). To get around this, see https://thewiredshopper.com/apple-cannot-check-for-malicious-software-error/ The build can be downloaded from http://download.tuxfamily.org/makehuman/releases/makehuman-community-1.2.0-macos.zip a0972c972b59be9b8dea4d85d85b9c0cf2c87e5a 1963 1961 2020-12-27T15:26:37Z Joepal 14 wikitext text/x-wiki Thanks to user Eray Ocak, there is now a mac build available. Regarding features, this release is roughly equivalent to [[Releases:120|the official 1.2.0 build for windows and linux]]. The following are specific notes regarding the build for MacOS. The first issue you are likely to run into, is that you get an error message saying the application cannot be scanned for malicious software. This is because it isn't signed with a commercial certificate (which we don't have since we're a volunteer project without much of a budget). To get around this, see https://thewiredshopper.com/apple-cannot-check-for-malicious-software-error/ The build can be downloaded from http://download.tuxfamily.org/makehuman/releases/makehuman-community-1.2.0-macos.zip 059bc136c15cb6b91dab310650315afb87add3af 1961 2020-12-27T15:16:49Z Joepal 14 Created page with "Regarding features, this release is roughly equivalent to [[Releases:120|the official 1.2.0 build for windows and linux]]. The following are specific notes regarding the build..." wikitext text/x-wiki Regarding features, this release is roughly equivalent to [[Releases:120|the official 1.2.0 build for windows and linux]]. The following are specific notes regarding the build for MacOS. The first issue you are likely to run into, is that you get an error message saying the application cannot be scanned for malicious software. This is because it isn't signed with a commercial certificate (which we don't have since we're a volunteer project without much of a budget). To get around this, see https://thewiredshopper.com/apple-cannot-check-for-malicious-software-error/ The build can be downloaded from http://download.tuxfamily.org/makehuman/releases/makehuman-community-1.2.0-macos.zip 6e2477b56a0012e48e4be44d2e5d8fc2c30f8524 Technical notes on MakeHuman 0 198 1282 1281 2017-01-09T00:19:53Z Duststorm 19 /* Macro modifier dependencies */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect that it will have on the human mesh. A modifier can control one or more targets and it will apply the mixed sum of those targeys on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in either the program or user folder) and they haave file extension of .target. The file name and folder that targets are in implicitly determine their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target. These tokens are delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be desceibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this enhance performance in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. Some more documentation about how macro modifiers resolve macro variables to actual variables can be found in this bug report: http://bugtracker.makehumancommunity.org/issues/1083 Most of note here is probably how updateMacroTargets(), set<macrovariable>() and setDetail() interact, to build the targetsDetailStack, which can then be applied to the human geometry using applyAllTargets(). === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of command line or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, e.g., min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires '''three files''', all stored in data/modifiers. The '''first file''' is the declaration of the modifiers (e.g., modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The '''second file''' adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable. The '''third file''' defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Proxy format == A proxy is a fitting of an arbitrary mesh (for example clothes or a hairstyle) to the basemesh. A proxy asset is distributed as a mesh file together with this fitting file (what we call the proxy file), allowing this mesh to be fitted on different modeling variations of the human within MakeHuman. === v1.0 format === The 1.0 format got introduced in the v1.0 release of MakeHuman, but was already present in the Alpha 7 (A7) release. The format got reworked a bit for 1.0, however. ==== Example ==== This is an excerpt from the fedora distributed with MakeHuman # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj x_scale 5399 11998 1.4800 z_scale 962 5320 1.9221 y_scale 791 881 2.3298 z_depth 50 material materials/fedora.mhmat verts 0 251 5243 5244 0.60391 0.28706 0.10903 -0.00245 0.01323 0.03373 7020 11853 11852 0.53311 0.29591 0.17097 0.00529 0.01134 0.03388 7678 7000 7707 0.22571 0.34923 0.42506 0.00946 0.03331 0.04954 984 983 1015 0.17322 0.18383 0.64295 -0.00575 0.03634 0.05443 1014 226 982 0.12607 0.67880 0.19513 -0.00934 0.03289 0.04891 250 5245 5232 0.54148 0.48285 -0.02433 -0.01273 0.01129 0.03202 7746 7712 12153 0.16168 0.32394 0.51438 0.02696 0.11561 0.09667 5556 5554 1013 -0.03554 0.63140 0.40413 -0.01650 0.11949 0.10646 5560 5556 1020 0.34178 0.11896 0.53926 -0.03442 0.11513 0.09756 1013 7712 7721 0.24117 0.40913 0.34971 0.03897 0.20473 0.13559 1013 882 1029 0.71875 0.41604 -0.13479 -0.02631 0.22391 0.13840 1029 1020 1013 0.36342 0.60536 0.03123 -0.03890 0.20439 0.13536 7712 7721 882 0.21674 0.67896 0.10430 0.02804 0.23763 0.15510 1013 882 1029 0.30269 0.87853 -0.18122 -0.02994 0.25488 0.15754 1029 1020 1013 0.79483 0.03879 0.16638 -0.04433 0.23290 0.15424 5370 5368 969 -0.08854 0.29827 0.79027 -0.01789 0.14173 -0.15713 11971 7713 969 0.28241 0.33962 0.37797 0.01910 0.14921 -0.16563 11971 7713 969 0.05967 0.69236 0.24796 0.01670 0.13045 -0.14480 5370 5368 969 -0.07249 0.07305 0.99945 -0.01517 0.12017 -0.13323 969 1021 5370 0.20926 0.73057 0.06018 -0.01674 0.13078 -0.14517 969 1021 5370 0.33927 0.37782 0.28291 -0.01914 0.14955 -0.16600 5379 969 7713 -0.00113 0.07709 0.92403 0.01192 0.06520 -0.14994 1021 969 5379 -0.05590 0.97961 0.07629 -0.01124 0.06148 -0.14138 1021 969 5379 0.96289 0.03946 -0.00235 -0.01195 0.06537 -0.15033 11982 11981 7713 0.14728 0.42350 0.42922 0.01740 0.04655 -0.11033 1021 969 5379 -0.03656 0.34361 0.69295 -0.00834 0.04564 -0.10495 1021 5381 5382 0.43027 0.37607 0.19367 -0.01752 0.04687 -0.11110 11981 11982 7738 0.30937 0.48274 0.20789 0.00929 0.00889 -0.07280 5379 962 1022 0.56542 0.43776 -0.00318 -0.00327 0.01206 -0.08469 The rest of the file is very similar, it continues listing vertex fittings to the basemesh. ==== Vertex assignments ==== The format contains matchings in the following format: vIdx1 vIdx2 vIdx3 w1 w2 w3 d1 d2 d3 vIdx is an index of a vertex on the basemesh w is a weight of the corresponding vertex d1,d2,d3 are optional (default to 0) and defines an offset The format contains one such lines for every vertex in the proxy mesh, the order of the lines is the same as the order of vertices in the proxy mesh. The format also supports an alternative fitting, referencing exactly one basemesh vertex, which is used for exact fitting: the proxy mesh vertex is placed in the exact same location as the basemesh vertex it is associated with. vIdx The file format allows mixing these two types of fittings on a per-vertex basis. ==== Properties ==== Every proxy should have a unique uuid (which can be generated using the python uuid module using uuid.uuid4()), a name, description, author and license information. One or multiple tags can be added, each on a new line prepended with "tag". A proxy references a material file and an OBJ mesh. z_depth determines the rendering priority of the object (important for transparency) and the layer of clothing. It is used by face masking to determine which piece of clothing masks another. The scale parameters define a bounding box referencing vertices on the human between which the proxy should be scaled. They are modified in makeclothes by selecting a clothing part. === v1.2 format === Starting from v1.2, a new algorithm for handling proxies is introduced, based on Manuel Bastioni's Lab experiments. The new format uses a local normal space instead of global coordinates, making it more stable, even across different poses. It is also a lot easier for an artist to create new proxies, as it requires only one button press, instead of having to deal with vertex groups. Future MakeHuman versions will contain backwards compatibility support for v1.0 proxies, but the new format is recommended for creation of new content. The layout of this format is largely the same as the old format, with a version parameter specifying that this file should be interpreted as a new style proxy. ==== Example ==== # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats version 120 name fedora obj_file fedora.obj z_depth 50 material materials/fedora.mhmat verts 0 vIdx1 vIdx2 vIdx3 vIdx4 dx dy dz It looks a lot like the v1.0 format, only the scale is no longer needed, and the vertex assignments have a new format. The "version 120" is required to indicate that this file should be interpreted to use the new proxy fitting algorithm. vIdxi references the vertices of a polygon of the basemesh dx dy dz is the distance (delta) vector between the polygon center and the proxy mesh vertex. === Binary proxy === Proxies, as well as their meshes, can be compiled into a more compact binary variant that is faster to load and smaller to distribute. MakeHuman will do this automatically for proxies in the home path. Files in the installation path will have to be compiled manually by running the compile_proxies.py and compile_meshes.py scripts. Usually these scripts are ran when a distribution is created, so need not to be repeated by the end user, unless MakeHuman is used from source. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ''shininess'' or specular hardness is a number between 0 and 1 determining the shininess constant of the [https://en.wikipedia.org/wiki/Phong_reflection_model phong shading model]. ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example. [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. 3156e73432f236a0e1658e4cdbf7955e1c94424a 1281 1280 2017-01-09T00:18:45Z Duststorm 19 wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect that it will have on the human mesh. A modifier can control one or more targets and it will apply the mixed sum of those targeys on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in either the program or user folder) and they haave file extension of .target. The file name and folder that targets are in implicitly determine their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target. These tokens are delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be desceibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this enhance performance in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. Some more documentation about how macro modifiers resolve macro variables to actual variables can be found in this bug report: http://bugtracker.makehumancommunity.org/issues/1083 Most of note here is probably how updateMacroTargets(), set<macrovariable>() and setDetail() interact. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of command line or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, e.g., min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires '''three files''', all stored in data/modifiers. The '''first file''' is the declaration of the modifiers (e.g., modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The '''second file''' adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable. The '''third file''' defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Proxy format == A proxy is a fitting of an arbitrary mesh (for example clothes or a hairstyle) to the basemesh. A proxy asset is distributed as a mesh file together with this fitting file (what we call the proxy file), allowing this mesh to be fitted on different modeling variations of the human within MakeHuman. === v1.0 format === The 1.0 format got introduced in the v1.0 release of MakeHuman, but was already present in the Alpha 7 (A7) release. The format got reworked a bit for 1.0, however. ==== Example ==== This is an excerpt from the fedora distributed with MakeHuman # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj x_scale 5399 11998 1.4800 z_scale 962 5320 1.9221 y_scale 791 881 2.3298 z_depth 50 material materials/fedora.mhmat verts 0 251 5243 5244 0.60391 0.28706 0.10903 -0.00245 0.01323 0.03373 7020 11853 11852 0.53311 0.29591 0.17097 0.00529 0.01134 0.03388 7678 7000 7707 0.22571 0.34923 0.42506 0.00946 0.03331 0.04954 984 983 1015 0.17322 0.18383 0.64295 -0.00575 0.03634 0.05443 1014 226 982 0.12607 0.67880 0.19513 -0.00934 0.03289 0.04891 250 5245 5232 0.54148 0.48285 -0.02433 -0.01273 0.01129 0.03202 7746 7712 12153 0.16168 0.32394 0.51438 0.02696 0.11561 0.09667 5556 5554 1013 -0.03554 0.63140 0.40413 -0.01650 0.11949 0.10646 5560 5556 1020 0.34178 0.11896 0.53926 -0.03442 0.11513 0.09756 1013 7712 7721 0.24117 0.40913 0.34971 0.03897 0.20473 0.13559 1013 882 1029 0.71875 0.41604 -0.13479 -0.02631 0.22391 0.13840 1029 1020 1013 0.36342 0.60536 0.03123 -0.03890 0.20439 0.13536 7712 7721 882 0.21674 0.67896 0.10430 0.02804 0.23763 0.15510 1013 882 1029 0.30269 0.87853 -0.18122 -0.02994 0.25488 0.15754 1029 1020 1013 0.79483 0.03879 0.16638 -0.04433 0.23290 0.15424 5370 5368 969 -0.08854 0.29827 0.79027 -0.01789 0.14173 -0.15713 11971 7713 969 0.28241 0.33962 0.37797 0.01910 0.14921 -0.16563 11971 7713 969 0.05967 0.69236 0.24796 0.01670 0.13045 -0.14480 5370 5368 969 -0.07249 0.07305 0.99945 -0.01517 0.12017 -0.13323 969 1021 5370 0.20926 0.73057 0.06018 -0.01674 0.13078 -0.14517 969 1021 5370 0.33927 0.37782 0.28291 -0.01914 0.14955 -0.16600 5379 969 7713 -0.00113 0.07709 0.92403 0.01192 0.06520 -0.14994 1021 969 5379 -0.05590 0.97961 0.07629 -0.01124 0.06148 -0.14138 1021 969 5379 0.96289 0.03946 -0.00235 -0.01195 0.06537 -0.15033 11982 11981 7713 0.14728 0.42350 0.42922 0.01740 0.04655 -0.11033 1021 969 5379 -0.03656 0.34361 0.69295 -0.00834 0.04564 -0.10495 1021 5381 5382 0.43027 0.37607 0.19367 -0.01752 0.04687 -0.11110 11981 11982 7738 0.30937 0.48274 0.20789 0.00929 0.00889 -0.07280 5379 962 1022 0.56542 0.43776 -0.00318 -0.00327 0.01206 -0.08469 The rest of the file is very similar, it continues listing vertex fittings to the basemesh. ==== Vertex assignments ==== The format contains matchings in the following format: vIdx1 vIdx2 vIdx3 w1 w2 w3 d1 d2 d3 vIdx is an index of a vertex on the basemesh w is a weight of the corresponding vertex d1,d2,d3 are optional (default to 0) and defines an offset The format contains one such lines for every vertex in the proxy mesh, the order of the lines is the same as the order of vertices in the proxy mesh. The format also supports an alternative fitting, referencing exactly one basemesh vertex, which is used for exact fitting: the proxy mesh vertex is placed in the exact same location as the basemesh vertex it is associated with. vIdx The file format allows mixing these two types of fittings on a per-vertex basis. ==== Properties ==== Every proxy should have a unique uuid (which can be generated using the python uuid module using uuid.uuid4()), a name, description, author and license information. One or multiple tags can be added, each on a new line prepended with "tag". A proxy references a material file and an OBJ mesh. z_depth determines the rendering priority of the object (important for transparency) and the layer of clothing. It is used by face masking to determine which piece of clothing masks another. The scale parameters define a bounding box referencing vertices on the human between which the proxy should be scaled. They are modified in makeclothes by selecting a clothing part. === v1.2 format === Starting from v1.2, a new algorithm for handling proxies is introduced, based on Manuel Bastioni's Lab experiments. The new format uses a local normal space instead of global coordinates, making it more stable, even across different poses. It is also a lot easier for an artist to create new proxies, as it requires only one button press, instead of having to deal with vertex groups. Future MakeHuman versions will contain backwards compatibility support for v1.0 proxies, but the new format is recommended for creation of new content. The layout of this format is largely the same as the old format, with a version parameter specifying that this file should be interpreted as a new style proxy. ==== Example ==== # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats version 120 name fedora obj_file fedora.obj z_depth 50 material materials/fedora.mhmat verts 0 vIdx1 vIdx2 vIdx3 vIdx4 dx dy dz It looks a lot like the v1.0 format, only the scale is no longer needed, and the vertex assignments have a new format. The "version 120" is required to indicate that this file should be interpreted to use the new proxy fitting algorithm. vIdxi references the vertices of a polygon of the basemesh dx dy dz is the distance (delta) vector between the polygon center and the proxy mesh vertex. === Binary proxy === Proxies, as well as their meshes, can be compiled into a more compact binary variant that is faster to load and smaller to distribute. MakeHuman will do this automatically for proxies in the home path. Files in the installation path will have to be compiled manually by running the compile_proxies.py and compile_meshes.py scripts. Usually these scripts are ran when a distribution is created, so need not to be repeated by the end user, unless MakeHuman is used from source. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ''shininess'' or specular hardness is a number between 0 and 1 determining the shininess constant of the [https://en.wikipedia.org/wiki/Phong_reflection_model phong shading model]. ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example. [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. 0d2567b3ea274cd2818ce8295cd6f2fcac80b394 1280 1279 2017-01-09T00:17:33Z Duststorm 19 /* Targets and modifiers */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect that it will have on the human mesh. A modifier can control one or more targets and it will apply the mixed sum of those targeys on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in either the program or user folder) and they haave file extension of .target. The file name and folder that targets are in implicitly determine their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target. These tokens are delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be desceibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this enhance performance in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. Some more documentation about how macro modifiers resolve macro variables to actual variables can be found in this bug report: http://bugtracker.makehumancommunity.org/issues/1083 === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of command line or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, e.g., min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires '''three files''', all stored in data/modifiers. The '''first file''' is the declaration of the modifiers (e.g., modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The '''second file''' adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable. The '''third file''' defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Proxy format == A proxy is a fitting of an arbitrary mesh (for example clothes or a hairstyle) to the basemesh. A proxy asset is distributed as a mesh file together with this fitting file (what we call the proxy file), allowing this mesh to be fitted on different modeling variations of the human within MakeHuman. === v1.0 format === The 1.0 format got introduced in the v1.0 release of MakeHuman, but was already present in the Alpha 7 (A7) release. The format got reworked a bit for 1.0, however. ==== Example ==== This is an excerpt from the fedora distributed with MakeHuman # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj x_scale 5399 11998 1.4800 z_scale 962 5320 1.9221 y_scale 791 881 2.3298 z_depth 50 material materials/fedora.mhmat verts 0 251 5243 5244 0.60391 0.28706 0.10903 -0.00245 0.01323 0.03373 7020 11853 11852 0.53311 0.29591 0.17097 0.00529 0.01134 0.03388 7678 7000 7707 0.22571 0.34923 0.42506 0.00946 0.03331 0.04954 984 983 1015 0.17322 0.18383 0.64295 -0.00575 0.03634 0.05443 1014 226 982 0.12607 0.67880 0.19513 -0.00934 0.03289 0.04891 250 5245 5232 0.54148 0.48285 -0.02433 -0.01273 0.01129 0.03202 7746 7712 12153 0.16168 0.32394 0.51438 0.02696 0.11561 0.09667 5556 5554 1013 -0.03554 0.63140 0.40413 -0.01650 0.11949 0.10646 5560 5556 1020 0.34178 0.11896 0.53926 -0.03442 0.11513 0.09756 1013 7712 7721 0.24117 0.40913 0.34971 0.03897 0.20473 0.13559 1013 882 1029 0.71875 0.41604 -0.13479 -0.02631 0.22391 0.13840 1029 1020 1013 0.36342 0.60536 0.03123 -0.03890 0.20439 0.13536 7712 7721 882 0.21674 0.67896 0.10430 0.02804 0.23763 0.15510 1013 882 1029 0.30269 0.87853 -0.18122 -0.02994 0.25488 0.15754 1029 1020 1013 0.79483 0.03879 0.16638 -0.04433 0.23290 0.15424 5370 5368 969 -0.08854 0.29827 0.79027 -0.01789 0.14173 -0.15713 11971 7713 969 0.28241 0.33962 0.37797 0.01910 0.14921 -0.16563 11971 7713 969 0.05967 0.69236 0.24796 0.01670 0.13045 -0.14480 5370 5368 969 -0.07249 0.07305 0.99945 -0.01517 0.12017 -0.13323 969 1021 5370 0.20926 0.73057 0.06018 -0.01674 0.13078 -0.14517 969 1021 5370 0.33927 0.37782 0.28291 -0.01914 0.14955 -0.16600 5379 969 7713 -0.00113 0.07709 0.92403 0.01192 0.06520 -0.14994 1021 969 5379 -0.05590 0.97961 0.07629 -0.01124 0.06148 -0.14138 1021 969 5379 0.96289 0.03946 -0.00235 -0.01195 0.06537 -0.15033 11982 11981 7713 0.14728 0.42350 0.42922 0.01740 0.04655 -0.11033 1021 969 5379 -0.03656 0.34361 0.69295 -0.00834 0.04564 -0.10495 1021 5381 5382 0.43027 0.37607 0.19367 -0.01752 0.04687 -0.11110 11981 11982 7738 0.30937 0.48274 0.20789 0.00929 0.00889 -0.07280 5379 962 1022 0.56542 0.43776 -0.00318 -0.00327 0.01206 -0.08469 The rest of the file is very similar, it continues listing vertex fittings to the basemesh. ==== Vertex assignments ==== The format contains matchings in the following format: vIdx1 vIdx2 vIdx3 w1 w2 w3 d1 d2 d3 vIdx is an index of a vertex on the basemesh w is a weight of the corresponding vertex d1,d2,d3 are optional (default to 0) and defines an offset The format contains one such lines for every vertex in the proxy mesh, the order of the lines is the same as the order of vertices in the proxy mesh. The format also supports an alternative fitting, referencing exactly one basemesh vertex, which is used for exact fitting: the proxy mesh vertex is placed in the exact same location as the basemesh vertex it is associated with. vIdx The file format allows mixing these two types of fittings on a per-vertex basis. ==== Properties ==== Every proxy should have a unique uuid (which can be generated using the python uuid module using uuid.uuid4()), a name, description, author and license information. One or multiple tags can be added, each on a new line prepended with "tag". A proxy references a material file and an OBJ mesh. z_depth determines the rendering priority of the object (important for transparency) and the layer of clothing. It is used by face masking to determine which piece of clothing masks another. The scale parameters define a bounding box referencing vertices on the human between which the proxy should be scaled. They are modified in makeclothes by selecting a clothing part. === v1.2 format === Starting from v1.2, a new algorithm for handling proxies is introduced, based on Manuel Bastioni's Lab experiments. The new format uses a local normal space instead of global coordinates, making it more stable, even across different poses. It is also a lot easier for an artist to create new proxies, as it requires only one button press, instead of having to deal with vertex groups. Future MakeHuman versions will contain backwards compatibility support for v1.0 proxies, but the new format is recommended for creation of new content. The layout of this format is largely the same as the old format, with a version parameter specifying that this file should be interpreted as a new style proxy. ==== Example ==== # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats version 120 name fedora obj_file fedora.obj z_depth 50 material materials/fedora.mhmat verts 0 vIdx1 vIdx2 vIdx3 vIdx4 dx dy dz It looks a lot like the v1.0 format, only the scale is no longer needed, and the vertex assignments have a new format. The "version 120" is required to indicate that this file should be interpreted to use the new proxy fitting algorithm. vIdxi references the vertices of a polygon of the basemesh dx dy dz is the distance (delta) vector between the polygon center and the proxy mesh vertex. === Binary proxy === Proxies, as well as their meshes, can be compiled into a more compact binary variant that is faster to load and smaller to distribute. MakeHuman will do this automatically for proxies in the home path. Files in the installation path will have to be compiled manually by running the compile_proxies.py and compile_meshes.py scripts. Usually these scripts are ran when a distribution is created, so need not to be repeated by the end user, unless MakeHuman is used from source. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ''shininess'' or specular hardness is a number between 0 and 1 determining the shininess constant of the [https://en.wikipedia.org/wiki/Phong_reflection_model phong shading model]. ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example. [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. 5cc01d4c92263028e6a3bc2db9978cb69e9d0348 1279 1278 2017-01-09T00:16:23Z Duststorm 19 wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect that it will have on the human mesh. A modifier can control one or more targets and it will apply the mixed sum of those targeys on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in either the program or user folder) and they haave file extension of .target. The file name and folder that targets are in implicitly determine their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target. These tokens are delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be desceibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this enhance performance in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of command line or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, e.g., min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires '''three files''', all stored in data/modifiers. The '''first file''' is the declaration of the modifiers (e.g., modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The '''second file''' adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable. The '''third file''' defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. === Additional information === Some more documentation about how macro modifiers resolve macro variables to actual variables can be found in this bug report: http://bugtracker.makehumancommunity.org/issues/1083 == Proxy format == A proxy is a fitting of an arbitrary mesh (for example clothes or a hairstyle) to the basemesh. A proxy asset is distributed as a mesh file together with this fitting file (what we call the proxy file), allowing this mesh to be fitted on different modeling variations of the human within MakeHuman. === v1.0 format === The 1.0 format got introduced in the v1.0 release of MakeHuman, but was already present in the Alpha 7 (A7) release. The format got reworked a bit for 1.0, however. ==== Example ==== This is an excerpt from the fedora distributed with MakeHuman # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj x_scale 5399 11998 1.4800 z_scale 962 5320 1.9221 y_scale 791 881 2.3298 z_depth 50 material materials/fedora.mhmat verts 0 251 5243 5244 0.60391 0.28706 0.10903 -0.00245 0.01323 0.03373 7020 11853 11852 0.53311 0.29591 0.17097 0.00529 0.01134 0.03388 7678 7000 7707 0.22571 0.34923 0.42506 0.00946 0.03331 0.04954 984 983 1015 0.17322 0.18383 0.64295 -0.00575 0.03634 0.05443 1014 226 982 0.12607 0.67880 0.19513 -0.00934 0.03289 0.04891 250 5245 5232 0.54148 0.48285 -0.02433 -0.01273 0.01129 0.03202 7746 7712 12153 0.16168 0.32394 0.51438 0.02696 0.11561 0.09667 5556 5554 1013 -0.03554 0.63140 0.40413 -0.01650 0.11949 0.10646 5560 5556 1020 0.34178 0.11896 0.53926 -0.03442 0.11513 0.09756 1013 7712 7721 0.24117 0.40913 0.34971 0.03897 0.20473 0.13559 1013 882 1029 0.71875 0.41604 -0.13479 -0.02631 0.22391 0.13840 1029 1020 1013 0.36342 0.60536 0.03123 -0.03890 0.20439 0.13536 7712 7721 882 0.21674 0.67896 0.10430 0.02804 0.23763 0.15510 1013 882 1029 0.30269 0.87853 -0.18122 -0.02994 0.25488 0.15754 1029 1020 1013 0.79483 0.03879 0.16638 -0.04433 0.23290 0.15424 5370 5368 969 -0.08854 0.29827 0.79027 -0.01789 0.14173 -0.15713 11971 7713 969 0.28241 0.33962 0.37797 0.01910 0.14921 -0.16563 11971 7713 969 0.05967 0.69236 0.24796 0.01670 0.13045 -0.14480 5370 5368 969 -0.07249 0.07305 0.99945 -0.01517 0.12017 -0.13323 969 1021 5370 0.20926 0.73057 0.06018 -0.01674 0.13078 -0.14517 969 1021 5370 0.33927 0.37782 0.28291 -0.01914 0.14955 -0.16600 5379 969 7713 -0.00113 0.07709 0.92403 0.01192 0.06520 -0.14994 1021 969 5379 -0.05590 0.97961 0.07629 -0.01124 0.06148 -0.14138 1021 969 5379 0.96289 0.03946 -0.00235 -0.01195 0.06537 -0.15033 11982 11981 7713 0.14728 0.42350 0.42922 0.01740 0.04655 -0.11033 1021 969 5379 -0.03656 0.34361 0.69295 -0.00834 0.04564 -0.10495 1021 5381 5382 0.43027 0.37607 0.19367 -0.01752 0.04687 -0.11110 11981 11982 7738 0.30937 0.48274 0.20789 0.00929 0.00889 -0.07280 5379 962 1022 0.56542 0.43776 -0.00318 -0.00327 0.01206 -0.08469 The rest of the file is very similar, it continues listing vertex fittings to the basemesh. ==== Vertex assignments ==== The format contains matchings in the following format: vIdx1 vIdx2 vIdx3 w1 w2 w3 d1 d2 d3 vIdx is an index of a vertex on the basemesh w is a weight of the corresponding vertex d1,d2,d3 are optional (default to 0) and defines an offset The format contains one such lines for every vertex in the proxy mesh, the order of the lines is the same as the order of vertices in the proxy mesh. The format also supports an alternative fitting, referencing exactly one basemesh vertex, which is used for exact fitting: the proxy mesh vertex is placed in the exact same location as the basemesh vertex it is associated with. vIdx The file format allows mixing these two types of fittings on a per-vertex basis. ==== Properties ==== Every proxy should have a unique uuid (which can be generated using the python uuid module using uuid.uuid4()), a name, description, author and license information. One or multiple tags can be added, each on a new line prepended with "tag". A proxy references a material file and an OBJ mesh. z_depth determines the rendering priority of the object (important for transparency) and the layer of clothing. It is used by face masking to determine which piece of clothing masks another. The scale parameters define a bounding box referencing vertices on the human between which the proxy should be scaled. They are modified in makeclothes by selecting a clothing part. === v1.2 format === Starting from v1.2, a new algorithm for handling proxies is introduced, based on Manuel Bastioni's Lab experiments. The new format uses a local normal space instead of global coordinates, making it more stable, even across different poses. It is also a lot easier for an artist to create new proxies, as it requires only one button press, instead of having to deal with vertex groups. Future MakeHuman versions will contain backwards compatibility support for v1.0 proxies, but the new format is recommended for creation of new content. The layout of this format is largely the same as the old format, with a version parameter specifying that this file should be interpreted as a new style proxy. ==== Example ==== # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats version 120 name fedora obj_file fedora.obj z_depth 50 material materials/fedora.mhmat verts 0 vIdx1 vIdx2 vIdx3 vIdx4 dx dy dz It looks a lot like the v1.0 format, only the scale is no longer needed, and the vertex assignments have a new format. The "version 120" is required to indicate that this file should be interpreted to use the new proxy fitting algorithm. vIdxi references the vertices of a polygon of the basemesh dx dy dz is the distance (delta) vector between the polygon center and the proxy mesh vertex. === Binary proxy === Proxies, as well as their meshes, can be compiled into a more compact binary variant that is faster to load and smaller to distribute. MakeHuman will do this automatically for proxies in the home path. Files in the installation path will have to be compiled manually by running the compile_proxies.py and compile_meshes.py scripts. Usually these scripts are ran when a distribution is created, so need not to be repeated by the end user, unless MakeHuman is used from source. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ''shininess'' or specular hardness is a number between 0 and 1 determining the shininess constant of the [https://en.wikipedia.org/wiki/Phong_reflection_model phong shading model]. ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example. [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. 987c841bb77722047fa6da6149ca733c85d0273f 1278 1209 2017-01-09T00:15:50Z Duststorm 19 /* Targets and modifiers */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect that it will have on the human mesh. A modifier can control one or more targets and it will apply the mixed sum of those targeys on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in either the program or user folder) and they haave file extension of .target. The file name and folder that targets are in implicitly determine their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target. These tokens are delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be desceibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this enhance performance in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of command line or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, e.g., min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires '''three files''', all stored in data/modifiers. The '''first file''' is the declaration of the modifiers (e.g., modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The '''second file''' adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable. The '''third file''' defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. === Additional information === Some more documentation can be found in this bug report: http://bugtracker.makehumancommunity.org/issues/1083 == Proxy format == A proxy is a fitting of an arbitrary mesh (for example clothes or a hairstyle) to the basemesh. A proxy asset is distributed as a mesh file together with this fitting file (what we call the proxy file), allowing this mesh to be fitted on different modeling variations of the human within MakeHuman. === v1.0 format === The 1.0 format got introduced in the v1.0 release of MakeHuman, but was already present in the Alpha 7 (A7) release. The format got reworked a bit for 1.0, however. ==== Example ==== This is an excerpt from the fedora distributed with MakeHuman # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj x_scale 5399 11998 1.4800 z_scale 962 5320 1.9221 y_scale 791 881 2.3298 z_depth 50 material materials/fedora.mhmat verts 0 251 5243 5244 0.60391 0.28706 0.10903 -0.00245 0.01323 0.03373 7020 11853 11852 0.53311 0.29591 0.17097 0.00529 0.01134 0.03388 7678 7000 7707 0.22571 0.34923 0.42506 0.00946 0.03331 0.04954 984 983 1015 0.17322 0.18383 0.64295 -0.00575 0.03634 0.05443 1014 226 982 0.12607 0.67880 0.19513 -0.00934 0.03289 0.04891 250 5245 5232 0.54148 0.48285 -0.02433 -0.01273 0.01129 0.03202 7746 7712 12153 0.16168 0.32394 0.51438 0.02696 0.11561 0.09667 5556 5554 1013 -0.03554 0.63140 0.40413 -0.01650 0.11949 0.10646 5560 5556 1020 0.34178 0.11896 0.53926 -0.03442 0.11513 0.09756 1013 7712 7721 0.24117 0.40913 0.34971 0.03897 0.20473 0.13559 1013 882 1029 0.71875 0.41604 -0.13479 -0.02631 0.22391 0.13840 1029 1020 1013 0.36342 0.60536 0.03123 -0.03890 0.20439 0.13536 7712 7721 882 0.21674 0.67896 0.10430 0.02804 0.23763 0.15510 1013 882 1029 0.30269 0.87853 -0.18122 -0.02994 0.25488 0.15754 1029 1020 1013 0.79483 0.03879 0.16638 -0.04433 0.23290 0.15424 5370 5368 969 -0.08854 0.29827 0.79027 -0.01789 0.14173 -0.15713 11971 7713 969 0.28241 0.33962 0.37797 0.01910 0.14921 -0.16563 11971 7713 969 0.05967 0.69236 0.24796 0.01670 0.13045 -0.14480 5370 5368 969 -0.07249 0.07305 0.99945 -0.01517 0.12017 -0.13323 969 1021 5370 0.20926 0.73057 0.06018 -0.01674 0.13078 -0.14517 969 1021 5370 0.33927 0.37782 0.28291 -0.01914 0.14955 -0.16600 5379 969 7713 -0.00113 0.07709 0.92403 0.01192 0.06520 -0.14994 1021 969 5379 -0.05590 0.97961 0.07629 -0.01124 0.06148 -0.14138 1021 969 5379 0.96289 0.03946 -0.00235 -0.01195 0.06537 -0.15033 11982 11981 7713 0.14728 0.42350 0.42922 0.01740 0.04655 -0.11033 1021 969 5379 -0.03656 0.34361 0.69295 -0.00834 0.04564 -0.10495 1021 5381 5382 0.43027 0.37607 0.19367 -0.01752 0.04687 -0.11110 11981 11982 7738 0.30937 0.48274 0.20789 0.00929 0.00889 -0.07280 5379 962 1022 0.56542 0.43776 -0.00318 -0.00327 0.01206 -0.08469 The rest of the file is very similar, it continues listing vertex fittings to the basemesh. ==== Vertex assignments ==== The format contains matchings in the following format: vIdx1 vIdx2 vIdx3 w1 w2 w3 d1 d2 d3 vIdx is an index of a vertex on the basemesh w is a weight of the corresponding vertex d1,d2,d3 are optional (default to 0) and defines an offset The format contains one such lines for every vertex in the proxy mesh, the order of the lines is the same as the order of vertices in the proxy mesh. The format also supports an alternative fitting, referencing exactly one basemesh vertex, which is used for exact fitting: the proxy mesh vertex is placed in the exact same location as the basemesh vertex it is associated with. vIdx The file format allows mixing these two types of fittings on a per-vertex basis. ==== Properties ==== Every proxy should have a unique uuid (which can be generated using the python uuid module using uuid.uuid4()), a name, description, author and license information. One or multiple tags can be added, each on a new line prepended with "tag". A proxy references a material file and an OBJ mesh. z_depth determines the rendering priority of the object (important for transparency) and the layer of clothing. It is used by face masking to determine which piece of clothing masks another. The scale parameters define a bounding box referencing vertices on the human between which the proxy should be scaled. They are modified in makeclothes by selecting a clothing part. === v1.2 format === Starting from v1.2, a new algorithm for handling proxies is introduced, based on Manuel Bastioni's Lab experiments. The new format uses a local normal space instead of global coordinates, making it more stable, even across different poses. It is also a lot easier for an artist to create new proxies, as it requires only one button press, instead of having to deal with vertex groups. Future MakeHuman versions will contain backwards compatibility support for v1.0 proxies, but the new format is recommended for creation of new content. The layout of this format is largely the same as the old format, with a version parameter specifying that this file should be interpreted as a new style proxy. ==== Example ==== # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats version 120 name fedora obj_file fedora.obj z_depth 50 material materials/fedora.mhmat verts 0 vIdx1 vIdx2 vIdx3 vIdx4 dx dy dz It looks a lot like the v1.0 format, only the scale is no longer needed, and the vertex assignments have a new format. The "version 120" is required to indicate that this file should be interpreted to use the new proxy fitting algorithm. vIdxi references the vertices of a polygon of the basemesh dx dy dz is the distance (delta) vector between the polygon center and the proxy mesh vertex. === Binary proxy === Proxies, as well as their meshes, can be compiled into a more compact binary variant that is faster to load and smaller to distribute. MakeHuman will do this automatically for proxies in the home path. Files in the installation path will have to be compiled manually by running the compile_proxies.py and compile_meshes.py scripts. Usually these scripts are ran when a distribution is created, so need not to be repeated by the end user, unless MakeHuman is used from source. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ''shininess'' or specular hardness is a number between 0 and 1 determining the shininess constant of the [https://en.wikipedia.org/wiki/Phong_reflection_model phong shading model]. ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example. [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. 3f5000171c8223b0691c2a94f63781e3a3df53a9 1209 603 2016-10-23T15:26:50Z Robbaer 12 /* Targets and modifiers */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect that it will have on the human mesh. A modifier can control one or more targets and it will apply the mixed sum of those targeys on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in either the program or user folder) and they haave file extension of .target. The file name and folder that targets are in implicitly determine their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target. These tokens are delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be desceibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this enhance performance in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of command line or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, e.g., min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires '''three files''', all stored in data/modifiers. The '''first file''' is the declaration of the modifiers (e.g., modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The '''second file''' adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable. The '''third file''' defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Proxy format == A proxy is a fitting of an arbitrary mesh (for example clothes or a hairstyle) to the basemesh. A proxy asset is distributed as a mesh file together with this fitting file (what we call the proxy file), allowing this mesh to be fitted on different modeling variations of the human within MakeHuman. === v1.0 format === The 1.0 format got introduced in the v1.0 release of MakeHuman, but was already present in the Alpha 7 (A7) release. The format got reworked a bit for 1.0, however. ==== Example ==== This is an excerpt from the fedora distributed with MakeHuman # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj x_scale 5399 11998 1.4800 z_scale 962 5320 1.9221 y_scale 791 881 2.3298 z_depth 50 material materials/fedora.mhmat verts 0 251 5243 5244 0.60391 0.28706 0.10903 -0.00245 0.01323 0.03373 7020 11853 11852 0.53311 0.29591 0.17097 0.00529 0.01134 0.03388 7678 7000 7707 0.22571 0.34923 0.42506 0.00946 0.03331 0.04954 984 983 1015 0.17322 0.18383 0.64295 -0.00575 0.03634 0.05443 1014 226 982 0.12607 0.67880 0.19513 -0.00934 0.03289 0.04891 250 5245 5232 0.54148 0.48285 -0.02433 -0.01273 0.01129 0.03202 7746 7712 12153 0.16168 0.32394 0.51438 0.02696 0.11561 0.09667 5556 5554 1013 -0.03554 0.63140 0.40413 -0.01650 0.11949 0.10646 5560 5556 1020 0.34178 0.11896 0.53926 -0.03442 0.11513 0.09756 1013 7712 7721 0.24117 0.40913 0.34971 0.03897 0.20473 0.13559 1013 882 1029 0.71875 0.41604 -0.13479 -0.02631 0.22391 0.13840 1029 1020 1013 0.36342 0.60536 0.03123 -0.03890 0.20439 0.13536 7712 7721 882 0.21674 0.67896 0.10430 0.02804 0.23763 0.15510 1013 882 1029 0.30269 0.87853 -0.18122 -0.02994 0.25488 0.15754 1029 1020 1013 0.79483 0.03879 0.16638 -0.04433 0.23290 0.15424 5370 5368 969 -0.08854 0.29827 0.79027 -0.01789 0.14173 -0.15713 11971 7713 969 0.28241 0.33962 0.37797 0.01910 0.14921 -0.16563 11971 7713 969 0.05967 0.69236 0.24796 0.01670 0.13045 -0.14480 5370 5368 969 -0.07249 0.07305 0.99945 -0.01517 0.12017 -0.13323 969 1021 5370 0.20926 0.73057 0.06018 -0.01674 0.13078 -0.14517 969 1021 5370 0.33927 0.37782 0.28291 -0.01914 0.14955 -0.16600 5379 969 7713 -0.00113 0.07709 0.92403 0.01192 0.06520 -0.14994 1021 969 5379 -0.05590 0.97961 0.07629 -0.01124 0.06148 -0.14138 1021 969 5379 0.96289 0.03946 -0.00235 -0.01195 0.06537 -0.15033 11982 11981 7713 0.14728 0.42350 0.42922 0.01740 0.04655 -0.11033 1021 969 5379 -0.03656 0.34361 0.69295 -0.00834 0.04564 -0.10495 1021 5381 5382 0.43027 0.37607 0.19367 -0.01752 0.04687 -0.11110 11981 11982 7738 0.30937 0.48274 0.20789 0.00929 0.00889 -0.07280 5379 962 1022 0.56542 0.43776 -0.00318 -0.00327 0.01206 -0.08469 The rest of the file is very similar, it continues listing vertex fittings to the basemesh. ==== Vertex assignments ==== The format contains matchings in the following format: vIdx1 vIdx2 vIdx3 w1 w2 w3 d1 d2 d3 vIdx is an index of a vertex on the basemesh w is a weight of the corresponding vertex d1,d2,d3 are optional (default to 0) and defines an offset The format contains one such lines for every vertex in the proxy mesh, the order of the lines is the same as the order of vertices in the proxy mesh. The format also supports an alternative fitting, referencing exactly one basemesh vertex, which is used for exact fitting: the proxy mesh vertex is placed in the exact same location as the basemesh vertex it is associated with. vIdx The file format allows mixing these two types of fittings on a per-vertex basis. ==== Properties ==== Every proxy should have a unique uuid (which can be generated using the python uuid module using uuid.uuid4()), a name, description, author and license information. One or multiple tags can be added, each on a new line prepended with "tag". A proxy references a material file and an OBJ mesh. z_depth determines the rendering priority of the object (important for transparency) and the layer of clothing. It is used by face masking to determine which piece of clothing masks another. The scale parameters define a bounding box referencing vertices on the human between which the proxy should be scaled. They are modified in makeclothes by selecting a clothing part. === v1.2 format === Starting from v1.2, a new algorithm for handling proxies is introduced, based on Manuel Bastioni's Lab experiments. The new format uses a local normal space instead of global coordinates, making it more stable, even across different poses. It is also a lot easier for an artist to create new proxies, as it requires only one button press, instead of having to deal with vertex groups. Future MakeHuman versions will contain backwards compatibility support for v1.0 proxies, but the new format is recommended for creation of new content. The layout of this format is largely the same as the old format, with a version parameter specifying that this file should be interpreted as a new style proxy. ==== Example ==== # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats version 120 name fedora obj_file fedora.obj z_depth 50 material materials/fedora.mhmat verts 0 vIdx1 vIdx2 vIdx3 vIdx4 dx dy dz It looks a lot like the v1.0 format, only the scale is no longer needed, and the vertex assignments have a new format. The "version 120" is required to indicate that this file should be interpreted to use the new proxy fitting algorithm. vIdxi references the vertices of a polygon of the basemesh dx dy dz is the distance (delta) vector between the polygon center and the proxy mesh vertex. === Binary proxy === Proxies, as well as their meshes, can be compiled into a more compact binary variant that is faster to load and smaller to distribute. MakeHuman will do this automatically for proxies in the home path. Files in the installation path will have to be compiled manually by running the compile_proxies.py and compile_meshes.py scripts. Usually these scripts are ran when a distribution is created, so need not to be repeated by the end user, unless MakeHuman is used from source. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ''shininess'' or specular hardness is a number between 0 and 1 determining the shininess constant of the [https://en.wikipedia.org/wiki/Phong_reflection_model phong shading model]. ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example. [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. dd2da7030f579102d62d5b5d6587d5308037ee76 603 602 2016-02-02T23:27:44Z Duststorm 19 /* Example */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Proxy format == A proxy is a fitting of an arbitrary mesh (for example clothes or a hairstyle) to the basemesh. A proxy asset is distributed as a mesh file together with this fitting file (what we call the proxy file), allowing this mesh to be fitted on different modeling variations of the human within MakeHuman. === v1.0 format === The 1.0 format got introduced in the v1.0 release of MakeHuman, but was already present in the Alpha 7 (A7) release. The format got reworked a bit for 1.0, however. ==== Example ==== This is an excerpt from the fedora distributed with MakeHuman # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj x_scale 5399 11998 1.4800 z_scale 962 5320 1.9221 y_scale 791 881 2.3298 z_depth 50 material materials/fedora.mhmat verts 0 251 5243 5244 0.60391 0.28706 0.10903 -0.00245 0.01323 0.03373 7020 11853 11852 0.53311 0.29591 0.17097 0.00529 0.01134 0.03388 7678 7000 7707 0.22571 0.34923 0.42506 0.00946 0.03331 0.04954 984 983 1015 0.17322 0.18383 0.64295 -0.00575 0.03634 0.05443 1014 226 982 0.12607 0.67880 0.19513 -0.00934 0.03289 0.04891 250 5245 5232 0.54148 0.48285 -0.02433 -0.01273 0.01129 0.03202 7746 7712 12153 0.16168 0.32394 0.51438 0.02696 0.11561 0.09667 5556 5554 1013 -0.03554 0.63140 0.40413 -0.01650 0.11949 0.10646 5560 5556 1020 0.34178 0.11896 0.53926 -0.03442 0.11513 0.09756 1013 7712 7721 0.24117 0.40913 0.34971 0.03897 0.20473 0.13559 1013 882 1029 0.71875 0.41604 -0.13479 -0.02631 0.22391 0.13840 1029 1020 1013 0.36342 0.60536 0.03123 -0.03890 0.20439 0.13536 7712 7721 882 0.21674 0.67896 0.10430 0.02804 0.23763 0.15510 1013 882 1029 0.30269 0.87853 -0.18122 -0.02994 0.25488 0.15754 1029 1020 1013 0.79483 0.03879 0.16638 -0.04433 0.23290 0.15424 5370 5368 969 -0.08854 0.29827 0.79027 -0.01789 0.14173 -0.15713 11971 7713 969 0.28241 0.33962 0.37797 0.01910 0.14921 -0.16563 11971 7713 969 0.05967 0.69236 0.24796 0.01670 0.13045 -0.14480 5370 5368 969 -0.07249 0.07305 0.99945 -0.01517 0.12017 -0.13323 969 1021 5370 0.20926 0.73057 0.06018 -0.01674 0.13078 -0.14517 969 1021 5370 0.33927 0.37782 0.28291 -0.01914 0.14955 -0.16600 5379 969 7713 -0.00113 0.07709 0.92403 0.01192 0.06520 -0.14994 1021 969 5379 -0.05590 0.97961 0.07629 -0.01124 0.06148 -0.14138 1021 969 5379 0.96289 0.03946 -0.00235 -0.01195 0.06537 -0.15033 11982 11981 7713 0.14728 0.42350 0.42922 0.01740 0.04655 -0.11033 1021 969 5379 -0.03656 0.34361 0.69295 -0.00834 0.04564 -0.10495 1021 5381 5382 0.43027 0.37607 0.19367 -0.01752 0.04687 -0.11110 11981 11982 7738 0.30937 0.48274 0.20789 0.00929 0.00889 -0.07280 5379 962 1022 0.56542 0.43776 -0.00318 -0.00327 0.01206 -0.08469 The rest of the file is very similar, it continues listing vertex fittings to the basemesh. ==== Vertex assignments ==== The format contains matchings in the following format: vIdx1 vIdx2 vIdx3 w1 w2 w3 d1 d2 d3 vIdx is an index of a vertex on the basemesh w is a weight of the corresponding vertex d1,d2,d3 are optional (default to 0) and defines an offset The format contains one such lines for every vertex in the proxy mesh, the order of the lines is the same as the order of vertices in the proxy mesh. The format also supports an alternative fitting, referencing exactly one basemesh vertex, which is used for exact fitting: the proxy mesh vertex is placed in the exact same location as the basemesh vertex it is associated with. vIdx The file format allows mixing these two types of fittings on a per-vertex basis. ==== Properties ==== Every proxy should have a unique uuid (which can be generated using the python uuid module using uuid.uuid4()), a name, description, author and license information. One or multiple tags can be added, each on a new line prepended with "tag". A proxy references a material file and an OBJ mesh. z_depth determines the rendering priority of the object (important for transparency) and the layer of clothing. It is used by face masking to determine which piece of clothing masks another. The scale parameters define a bounding box referencing vertices on the human between which the proxy should be scaled. They are modified in makeclothes by selecting a clothing part. === v1.2 format === Starting from v1.2, a new algorithm for handling proxies is introduced, based on Manuel Bastioni's Lab experiments. The new format uses a local normal space instead of global coordinates, making it more stable, even across different poses. It is also a lot easier for an artist to create new proxies, as it requires only one button press, instead of having to deal with vertex groups. Future MakeHuman versions will contain backwards compatibility support for v1.0 proxies, but the new format is recommended for creation of new content. The layout of this format is largely the same as the old format, with a version parameter specifying that this file should be interpreted as a new style proxy. ==== Example ==== # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats version 120 name fedora obj_file fedora.obj z_depth 50 material materials/fedora.mhmat verts 0 vIdx1 vIdx2 vIdx3 vIdx4 dx dy dz It looks a lot like the v1.0 format, only the scale is no longer needed, and the vertex assignments have a new format. The "version 120" is required to indicate that this file should be interpreted to use the new proxy fitting algorithm. vIdxi references the vertices of a polygon of the basemesh dx dy dz is the distance (delta) vector between the polygon center and the proxy mesh vertex. === Binary proxy === Proxies, as well as their meshes, can be compiled into a more compact binary variant that is faster to load and smaller to distribute. MakeHuman will do this automatically for proxies in the home path. Files in the installation path will have to be compiled manually by running the compile_proxies.py and compile_meshes.py scripts. Usually these scripts are ran when a distribution is created, so need not to be repeated by the end user, unless MakeHuman is used from source. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ''shininess'' or specular hardness is a number between 0 and 1 determining the shininess constant of the [https://en.wikipedia.org/wiki/Phong_reflection_model phong shading model]. ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example. [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. e766b66b4498b7b9bf14d08fefa34556265b2a66 602 601 2016-02-02T01:05:08Z Duststorm 19 /* Example */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Proxy format == A proxy is a fitting of an arbitrary mesh (for example clothes or a hairstyle) to the basemesh. A proxy asset is distributed as a mesh file together with this fitting file (what we call the proxy file), allowing this mesh to be fitted on different modeling variations of the human within MakeHuman. === v1.0 format === The 1.0 format got introduced in the v1.0 release of MakeHuman, but was already present in the Alpha 7 (A7) release. The format got reworked a bit for 1.0, however. ==== Example ==== This is an excerpt from the fedora distributed with MakeHuman # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj x_scale 5399 11998 1.4800 z_scale 962 5320 1.9221 y_scale 791 881 2.3298 z_depth 50 material materials/fedora.mhmat verts 0 251 5243 5244 0.60391 0.28706 0.10903 -0.00245 0.01323 0.03373 7020 11853 11852 0.53311 0.29591 0.17097 0.00529 0.01134 0.03388 7678 7000 7707 0.22571 0.34923 0.42506 0.00946 0.03331 0.04954 984 983 1015 0.17322 0.18383 0.64295 -0.00575 0.03634 0.05443 1014 226 982 0.12607 0.67880 0.19513 -0.00934 0.03289 0.04891 250 5245 5232 0.54148 0.48285 -0.02433 -0.01273 0.01129 0.03202 7746 7712 12153 0.16168 0.32394 0.51438 0.02696 0.11561 0.09667 5556 5554 1013 -0.03554 0.63140 0.40413 -0.01650 0.11949 0.10646 5560 5556 1020 0.34178 0.11896 0.53926 -0.03442 0.11513 0.09756 1013 7712 7721 0.24117 0.40913 0.34971 0.03897 0.20473 0.13559 1013 882 1029 0.71875 0.41604 -0.13479 -0.02631 0.22391 0.13840 1029 1020 1013 0.36342 0.60536 0.03123 -0.03890 0.20439 0.13536 7712 7721 882 0.21674 0.67896 0.10430 0.02804 0.23763 0.15510 1013 882 1029 0.30269 0.87853 -0.18122 -0.02994 0.25488 0.15754 1029 1020 1013 0.79483 0.03879 0.16638 -0.04433 0.23290 0.15424 5370 5368 969 -0.08854 0.29827 0.79027 -0.01789 0.14173 -0.15713 11971 7713 969 0.28241 0.33962 0.37797 0.01910 0.14921 -0.16563 11971 7713 969 0.05967 0.69236 0.24796 0.01670 0.13045 -0.14480 5370 5368 969 -0.07249 0.07305 0.99945 -0.01517 0.12017 -0.13323 969 1021 5370 0.20926 0.73057 0.06018 -0.01674 0.13078 -0.14517 969 1021 5370 0.33927 0.37782 0.28291 -0.01914 0.14955 -0.16600 5379 969 7713 -0.00113 0.07709 0.92403 0.01192 0.06520 -0.14994 1021 969 5379 -0.05590 0.97961 0.07629 -0.01124 0.06148 -0.14138 1021 969 5379 0.96289 0.03946 -0.00235 -0.01195 0.06537 -0.15033 11982 11981 7713 0.14728 0.42350 0.42922 0.01740 0.04655 -0.11033 1021 969 5379 -0.03656 0.34361 0.69295 -0.00834 0.04564 -0.10495 1021 5381 5382 0.43027 0.37607 0.19367 -0.01752 0.04687 -0.11110 11981 11982 7738 0.30937 0.48274 0.20789 0.00929 0.00889 -0.07280 5379 962 1022 0.56542 0.43776 -0.00318 -0.00327 0.01206 -0.08469 The rest of the file is very similar, it continues listing vertex fittings to the basemesh. ==== Vertex assignments ==== The format contains matchings in the following format: vIdx1 vIdx2 vIdx3 w1 w2 w3 d1 d2 d3 vIdx is an index of a vertex on the basemesh w is a weight of the corresponding vertex d1,d2,d3 are optional (default to 0) and defines an offset The format contains one such lines for every vertex in the proxy mesh, the order of the lines is the same as the order of vertices in the proxy mesh. The format also supports an alternative fitting, referencing exactly one basemesh vertex, which is used for exact fitting: the proxy mesh vertex is placed in the exact same location as the basemesh vertex it is associated with. vIdx The file format allows mixing these two types of fittings on a per-vertex basis. ==== Properties ==== Every proxy should have a unique uuid (which can be generated using the python uuid module using uuid.uuid4()), a name, description, author and license information. One or multiple tags can be added, each on a new line prepended with "tag". A proxy references a material file and an OBJ mesh. z_depth determines the rendering priority of the object (important for transparency) and the layer of clothing. It is used by face masking to determine which piece of clothing masks another. The scale parameters define a bounding box referencing vertices on the human between which the proxy should be scaled. They are modified in makeclothes by selecting a clothing part. === v1.2 format === Starting from v1.2, a new algorithm for handling proxies is introduced, based on Manuel Bastioni's Lab experiments. The new format uses a local normal space instead of global coordinates, making it more stable, even across different poses. It is also a lot easier for an artist to create new proxies, as it requires only one button press, instead of having to deal with vertex groups. Future MakeHuman versions will contain backwards compatibility support for v1.0 proxies, but the new format is recommended for creation of new content. The layout of this format is largely the same as the old format, with a version parameter specifying that this file should be interpreted as a new style proxy. ==== Example ==== # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats version 1.2 name fedora obj_file fedora.obj z_depth 50 material materials/fedora.mhmat verts 0 vIdx1 vIdx2 vIdx3 vIdx4 dx dy dz It looks a lot like the v1.0 format, only the scale is no longer needed, and the vertex assignments have a new format. vIdxi references the vertices of a polygon of the basemesh dx dy dz is the distance (delta) vector between the polygon center and the proxy mesh vertex. === Binary proxy === Proxies, as well as their meshes, can be compiled into a more compact binary variant that is faster to load and smaller to distribute. MakeHuman will do this automatically for proxies in the home path. Files in the installation path will have to be compiled manually by running the compile_proxies.py and compile_meshes.py scripts. Usually these scripts are ran when a distribution is created, so need not to be repeated by the end user, unless MakeHuman is used from source. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ''shininess'' or specular hardness is a number between 0 and 1 determining the shininess constant of the [https://en.wikipedia.org/wiki/Phong_reflection_model phong shading model]. ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example. [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. d84adfdff7b429ca2cd3b8928fa32b8f03969411 601 600 2016-02-02T00:37:05Z Duststorm 19 /* Example */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Proxy format == A proxy is a fitting of an arbitrary mesh (for example clothes or a hairstyle) to the basemesh. A proxy asset is distributed as a mesh file together with this fitting file (what we call the proxy file), allowing this mesh to be fitted on different modeling variations of the human within MakeHuman. === v1.0 format === The 1.0 format got introduced in the v1.0 release of MakeHuman, but was already present in the Alpha 7 (A7) release. The format got reworked a bit for 1.0, however. ==== Example ==== This is an excerpt from the fedora distributed with MakeHuman # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj x_scale 5399 11998 1.4800 z_scale 962 5320 1.9221 y_scale 791 881 2.3298 z_depth 50 material materials/fedora.mhmat verts 0 251 5243 5244 0.60391 0.28706 0.10903 -0.00245 0.01323 0.03373 7020 11853 11852 0.53311 0.29591 0.17097 0.00529 0.01134 0.03388 7678 7000 7707 0.22571 0.34923 0.42506 0.00946 0.03331 0.04954 984 983 1015 0.17322 0.18383 0.64295 -0.00575 0.03634 0.05443 1014 226 982 0.12607 0.67880 0.19513 -0.00934 0.03289 0.04891 250 5245 5232 0.54148 0.48285 -0.02433 -0.01273 0.01129 0.03202 7746 7712 12153 0.16168 0.32394 0.51438 0.02696 0.11561 0.09667 5556 5554 1013 -0.03554 0.63140 0.40413 -0.01650 0.11949 0.10646 5560 5556 1020 0.34178 0.11896 0.53926 -0.03442 0.11513 0.09756 1013 7712 7721 0.24117 0.40913 0.34971 0.03897 0.20473 0.13559 1013 882 1029 0.71875 0.41604 -0.13479 -0.02631 0.22391 0.13840 1029 1020 1013 0.36342 0.60536 0.03123 -0.03890 0.20439 0.13536 7712 7721 882 0.21674 0.67896 0.10430 0.02804 0.23763 0.15510 1013 882 1029 0.30269 0.87853 -0.18122 -0.02994 0.25488 0.15754 1029 1020 1013 0.79483 0.03879 0.16638 -0.04433 0.23290 0.15424 5370 5368 969 -0.08854 0.29827 0.79027 -0.01789 0.14173 -0.15713 11971 7713 969 0.28241 0.33962 0.37797 0.01910 0.14921 -0.16563 11971 7713 969 0.05967 0.69236 0.24796 0.01670 0.13045 -0.14480 5370 5368 969 -0.07249 0.07305 0.99945 -0.01517 0.12017 -0.13323 969 1021 5370 0.20926 0.73057 0.06018 -0.01674 0.13078 -0.14517 969 1021 5370 0.33927 0.37782 0.28291 -0.01914 0.14955 -0.16600 5379 969 7713 -0.00113 0.07709 0.92403 0.01192 0.06520 -0.14994 1021 969 5379 -0.05590 0.97961 0.07629 -0.01124 0.06148 -0.14138 1021 969 5379 0.96289 0.03946 -0.00235 -0.01195 0.06537 -0.15033 11982 11981 7713 0.14728 0.42350 0.42922 0.01740 0.04655 -0.11033 1021 969 5379 -0.03656 0.34361 0.69295 -0.00834 0.04564 -0.10495 1021 5381 5382 0.43027 0.37607 0.19367 -0.01752 0.04687 -0.11110 11981 11982 7738 0.30937 0.48274 0.20789 0.00929 0.00889 -0.07280 5379 962 1022 0.56542 0.43776 -0.00318 -0.00327 0.01206 -0.08469 The rest of the file is very similar, it continues listing vertex fittings to the basemesh. ==== Vertex assignments ==== The format contains matchings in the following format: vIdx1 vIdx2 vIdx3 w1 w2 w3 d1 d2 d3 vIdx is an index of a vertex on the basemesh w is a weight of the corresponding vertex d1,d2,d3 are optional (default to 0) and defines an offset The format contains one such lines for every vertex in the proxy mesh, the order of the lines is the same as the order of vertices in the proxy mesh. The format also supports an alternative fitting, referencing exactly one basemesh vertex, which is used for exact fitting: the proxy mesh vertex is placed in the exact same location as the basemesh vertex it is associated with. vIdx The file format allows mixing these two types of fittings on a per-vertex basis. ==== Properties ==== Every proxy should have a unique uuid (which can be generated using the python uuid module using uuid.uuid4()), a name, description, author and license information. One or multiple tags can be added, each on a new line prepended with "tag". A proxy references a material file and an OBJ mesh. z_depth determines the rendering priority of the object (important for transparency) and the layer of clothing. It is used by face masking to determine which piece of clothing masks another. The scale parameters define a bounding box referencing vertices on the human between which the proxy should be scaled. They are modified in makeclothes by selecting a clothing part. === v1.2 format === Starting from v1.2, a new algorithm for handling proxies is introduced, based on Manuel Bastioni's Lab experiments. The new format uses a local normal space instead of global coordinates, making it more stable, even across different poses. It is also a lot easier for an artist to create new proxies, as it requires only one button press, instead of having to deal with vertex groups. Future MakeHuman versions will contain backwards compatibility support for v1.0 proxies, but the new format is recommended for creation of new content. The layout of this format is largely the same as the old format, with a version parameter specifying that this file should be interpreted as a new style proxy. ==== Example ==== # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj z_depth 50 material materials/fedora.mhmat verts 0 vIdx1 vIdx2 vIdx3 vIdx4 dx dy dz It looks a lot like the v1.0 format, only the scale is no longer needed, and the vertex assignments have a new format. vIdxi references the vertices of a polygon of the basemesh dx dy dz is the distance (delta) vector between the polygon center and the proxy mesh vertex. === Binary proxy === Proxies, as well as their meshes, can be compiled into a more compact binary variant that is faster to load and smaller to distribute. MakeHuman will do this automatically for proxies in the home path. Files in the installation path will have to be compiled manually by running the compile_proxies.py and compile_meshes.py scripts. Usually these scripts are ran when a distribution is created, so need not to be repeated by the end user, unless MakeHuman is used from source. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ''shininess'' or specular hardness is a number between 0 and 1 determining the shininess constant of the [https://en.wikipedia.org/wiki/Phong_reflection_model phong shading model]. ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example. [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. 52deb0c53df0a7da868ad4d6f0926ad4332179ac 600 599 2016-01-31T18:04:26Z Duststorm 19 /* Binary proxy */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Proxy format == A proxy is a fitting of an arbitrary mesh (for example clothes or a hairstyle) to the basemesh. A proxy asset is distributed as a mesh file together with this fitting file (what we call the proxy file), allowing this mesh to be fitted on different modeling variations of the human within MakeHuman. === v1.0 format === The 1.0 format got introduced in the v1.0 release of MakeHuman, but was already present in the Alpha 7 (A7) release. The format got reworked a bit for 1.0, however. ==== Example ==== This is an excerpt from the fedora distributed with MakeHuman # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj x_scale 5399 11998 1.4800 z_scale 962 5320 1.9221 y_scale 791 881 2.3298 z_depth 50 material materials/fedora.mhmat verts 0 251 5243 5244 0.60391 0.28706 0.10903 -0.00245 0.01323 0.03373 7020 11853 11852 0.53311 0.29591 0.17097 0.00529 0.01134 0.03388 7678 7000 7707 0.22571 0.34923 0.42506 0.00946 0.03331 0.04954 984 983 1015 0.17322 0.18383 0.64295 -0.00575 0.03634 0.05443 1014 226 982 0.12607 0.67880 0.19513 -0.00934 0.03289 0.04891 250 5245 5232 0.54148 0.48285 -0.02433 -0.01273 0.01129 0.03202 7746 7712 12153 0.16168 0.32394 0.51438 0.02696 0.11561 0.09667 5556 5554 1013 -0.03554 0.63140 0.40413 -0.01650 0.11949 0.10646 5560 5556 1020 0.34178 0.11896 0.53926 -0.03442 0.11513 0.09756 1013 7712 7721 0.24117 0.40913 0.34971 0.03897 0.20473 0.13559 1013 882 1029 0.71875 0.41604 -0.13479 -0.02631 0.22391 0.13840 1029 1020 1013 0.36342 0.60536 0.03123 -0.03890 0.20439 0.13536 7712 7721 882 0.21674 0.67896 0.10430 0.02804 0.23763 0.15510 1013 882 1029 0.30269 0.87853 -0.18122 -0.02994 0.25488 0.15754 1029 1020 1013 0.79483 0.03879 0.16638 -0.04433 0.23290 0.15424 5370 5368 969 -0.08854 0.29827 0.79027 -0.01789 0.14173 -0.15713 11971 7713 969 0.28241 0.33962 0.37797 0.01910 0.14921 -0.16563 11971 7713 969 0.05967 0.69236 0.24796 0.01670 0.13045 -0.14480 5370 5368 969 -0.07249 0.07305 0.99945 -0.01517 0.12017 -0.13323 969 1021 5370 0.20926 0.73057 0.06018 -0.01674 0.13078 -0.14517 969 1021 5370 0.33927 0.37782 0.28291 -0.01914 0.14955 -0.16600 5379 969 7713 -0.00113 0.07709 0.92403 0.01192 0.06520 -0.14994 1021 969 5379 -0.05590 0.97961 0.07629 -0.01124 0.06148 -0.14138 1021 969 5379 0.96289 0.03946 -0.00235 -0.01195 0.06537 -0.15033 11982 11981 7713 0.14728 0.42350 0.42922 0.01740 0.04655 -0.11033 1021 969 5379 -0.03656 0.34361 0.69295 -0.00834 0.04564 -0.10495 1021 5381 5382 0.43027 0.37607 0.19367 -0.01752 0.04687 -0.11110 11981 11982 7738 0.30937 0.48274 0.20789 0.00929 0.00889 -0.07280 5379 962 1022 0.56542 0.43776 -0.00318 -0.00327 0.01206 -0.08469 The rest of the file is very similar, it continues listing vertex fittings to the basemesh. ==== Vertex assignments ==== The format contains matchings in the following format: vIdx1 vIdx2 vIdx3 w1 w2 w3 d1 d2 d3 vIdx is an index of a vertex on the basemesh w is a weight of the corresponding vertex d1,d2,d3 are optional (default to 0) and defines an offset The format contains one such lines for every vertex in the proxy mesh, the order of the lines is the same as the order of vertices in the proxy mesh. The format also supports an alternative fitting, referencing exactly one basemesh vertex, which is used for exact fitting: the proxy mesh vertex is placed in the exact same location as the basemesh vertex it is associated with. vIdx The file format allows mixing these two types of fittings on a per-vertex basis. ==== Properties ==== Every proxy should have a unique uuid (which can be generated using the python uuid module using uuid.uuid4()), a name, description, author and license information. One or multiple tags can be added, each on a new line prepended with "tag". A proxy references a material file and an OBJ mesh. z_depth determines the rendering priority of the object (important for transparency) and the layer of clothing. It is used by face masking to determine which piece of clothing masks another. The scale parameters define a bounding box referencing vertices on the human between which the proxy should be scaled. They are modified in makeclothes by selecting a clothing part. === v1.2 format === Starting from v1.2, a new algorithm for handling proxies is introduced, based on Manuel Bastioni's Lab experiments. The new format uses a local normal space instead of global coordinates, making it more stable, even across different poses. It is also a lot easier for an artist to create new proxies, as it requires only one button press, instead of having to deal with vertex groups. Future MakeHuman versions will contain backwards compatibility support for v1.0 proxies, but the new format is recommended for creation of new content. The layout of this format is largely the same as the old format, with a version parameter specifying that this file should be interpreted as a new style proxy. ==== Example ==== # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj z_depth 50 material materials/fedora.mhmat verts 0 polyIdx dx dy dz It looks a lot like the v1.0 format, only the scale is no longer needed, and the vertex assignments have a new format. polyIdx references a polygon of the basemesh dx dy dz is the distance vector between the polygon center and the proxy mesh vertex. === Binary proxy === Proxies, as well as their meshes, can be compiled into a more compact binary variant that is faster to load and smaller to distribute. MakeHuman will do this automatically for proxies in the home path. Files in the installation path will have to be compiled manually by running the compile_proxies.py and compile_meshes.py scripts. Usually these scripts are ran when a distribution is created, so need not to be repeated by the end user, unless MakeHuman is used from source. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ''shininess'' or specular hardness is a number between 0 and 1 determining the shininess constant of the [https://en.wikipedia.org/wiki/Phong_reflection_model phong shading model]. ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example. [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. 3bc99da6ce5af916fcb8a5497305cf4be49bc61e 599 598 2016-01-31T18:03:56Z Duststorm 19 /* Example */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Proxy format == A proxy is a fitting of an arbitrary mesh (for example clothes or a hairstyle) to the basemesh. A proxy asset is distributed as a mesh file together with this fitting file (what we call the proxy file), allowing this mesh to be fitted on different modeling variations of the human within MakeHuman. === v1.0 format === The 1.0 format got introduced in the v1.0 release of MakeHuman, but was already present in the Alpha 7 (A7) release. The format got reworked a bit for 1.0, however. ==== Example ==== This is an excerpt from the fedora distributed with MakeHuman # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj x_scale 5399 11998 1.4800 z_scale 962 5320 1.9221 y_scale 791 881 2.3298 z_depth 50 material materials/fedora.mhmat verts 0 251 5243 5244 0.60391 0.28706 0.10903 -0.00245 0.01323 0.03373 7020 11853 11852 0.53311 0.29591 0.17097 0.00529 0.01134 0.03388 7678 7000 7707 0.22571 0.34923 0.42506 0.00946 0.03331 0.04954 984 983 1015 0.17322 0.18383 0.64295 -0.00575 0.03634 0.05443 1014 226 982 0.12607 0.67880 0.19513 -0.00934 0.03289 0.04891 250 5245 5232 0.54148 0.48285 -0.02433 -0.01273 0.01129 0.03202 7746 7712 12153 0.16168 0.32394 0.51438 0.02696 0.11561 0.09667 5556 5554 1013 -0.03554 0.63140 0.40413 -0.01650 0.11949 0.10646 5560 5556 1020 0.34178 0.11896 0.53926 -0.03442 0.11513 0.09756 1013 7712 7721 0.24117 0.40913 0.34971 0.03897 0.20473 0.13559 1013 882 1029 0.71875 0.41604 -0.13479 -0.02631 0.22391 0.13840 1029 1020 1013 0.36342 0.60536 0.03123 -0.03890 0.20439 0.13536 7712 7721 882 0.21674 0.67896 0.10430 0.02804 0.23763 0.15510 1013 882 1029 0.30269 0.87853 -0.18122 -0.02994 0.25488 0.15754 1029 1020 1013 0.79483 0.03879 0.16638 -0.04433 0.23290 0.15424 5370 5368 969 -0.08854 0.29827 0.79027 -0.01789 0.14173 -0.15713 11971 7713 969 0.28241 0.33962 0.37797 0.01910 0.14921 -0.16563 11971 7713 969 0.05967 0.69236 0.24796 0.01670 0.13045 -0.14480 5370 5368 969 -0.07249 0.07305 0.99945 -0.01517 0.12017 -0.13323 969 1021 5370 0.20926 0.73057 0.06018 -0.01674 0.13078 -0.14517 969 1021 5370 0.33927 0.37782 0.28291 -0.01914 0.14955 -0.16600 5379 969 7713 -0.00113 0.07709 0.92403 0.01192 0.06520 -0.14994 1021 969 5379 -0.05590 0.97961 0.07629 -0.01124 0.06148 -0.14138 1021 969 5379 0.96289 0.03946 -0.00235 -0.01195 0.06537 -0.15033 11982 11981 7713 0.14728 0.42350 0.42922 0.01740 0.04655 -0.11033 1021 969 5379 -0.03656 0.34361 0.69295 -0.00834 0.04564 -0.10495 1021 5381 5382 0.43027 0.37607 0.19367 -0.01752 0.04687 -0.11110 11981 11982 7738 0.30937 0.48274 0.20789 0.00929 0.00889 -0.07280 5379 962 1022 0.56542 0.43776 -0.00318 -0.00327 0.01206 -0.08469 The rest of the file is very similar, it continues listing vertex fittings to the basemesh. ==== Vertex assignments ==== The format contains matchings in the following format: vIdx1 vIdx2 vIdx3 w1 w2 w3 d1 d2 d3 vIdx is an index of a vertex on the basemesh w is a weight of the corresponding vertex d1,d2,d3 are optional (default to 0) and defines an offset The format contains one such lines for every vertex in the proxy mesh, the order of the lines is the same as the order of vertices in the proxy mesh. The format also supports an alternative fitting, referencing exactly one basemesh vertex, which is used for exact fitting: the proxy mesh vertex is placed in the exact same location as the basemesh vertex it is associated with. vIdx The file format allows mixing these two types of fittings on a per-vertex basis. ==== Properties ==== Every proxy should have a unique uuid (which can be generated using the python uuid module using uuid.uuid4()), a name, description, author and license information. One or multiple tags can be added, each on a new line prepended with "tag". A proxy references a material file and an OBJ mesh. z_depth determines the rendering priority of the object (important for transparency) and the layer of clothing. It is used by face masking to determine which piece of clothing masks another. The scale parameters define a bounding box referencing vertices on the human between which the proxy should be scaled. They are modified in makeclothes by selecting a clothing part. === v1.2 format === Starting from v1.2, a new algorithm for handling proxies is introduced, based on Manuel Bastioni's Lab experiments. The new format uses a local normal space instead of global coordinates, making it more stable, even across different poses. It is also a lot easier for an artist to create new proxies, as it requires only one button press, instead of having to deal with vertex groups. Future MakeHuman versions will contain backwards compatibility support for v1.0 proxies, but the new format is recommended for creation of new content. The layout of this format is largely the same as the old format, with a version parameter specifying that this file should be interpreted as a new style proxy. ==== Example ==== # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj z_depth 50 material materials/fedora.mhmat verts 0 polyIdx dx dy dz It looks a lot like the v1.0 format, only the scale is no longer needed, and the vertex assignments have a new format. polyIdx references a polygon of the basemesh dx dy dz is the distance vector between the polygon center and the proxy mesh vertex. ==== Binary proxy ==== Proxies, as well as their meshes, can be compiled into a more compact binary variant that is faster to load and smaller to distribute. MakeHuman will do this automatically for proxies in the home path. Files in the installation path will have to be compiled manually by running the compile_proxies.py and compile_meshes.py scripts. Usually these scripts are ran when a distribution is created, so need not to be repeated by the end user, unless MakeHuman is used from source. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ''shininess'' or specular hardness is a number between 0 and 1 determining the shininess constant of the [https://en.wikipedia.org/wiki/Phong_reflection_model phong shading model]. ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example. [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. ca09d66fec2c70258a89257410c4f3cb58273b2b 598 597 2016-01-31T18:03:31Z Duststorm 19 /* Example */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Proxy format == A proxy is a fitting of an arbitrary mesh (for example clothes or a hairstyle) to the basemesh. A proxy asset is distributed as a mesh file together with this fitting file (what we call the proxy file), allowing this mesh to be fitted on different modeling variations of the human within MakeHuman. === v1.0 format === The 1.0 format got introduced in the v1.0 release of MakeHuman, but was already present in the Alpha 7 (A7) release. The format got reworked a bit for 1.0, however. ==== Example ==== This is an excerpt from the fedora distributed with MakeHuman # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj x_scale 5399 11998 1.4800 z_scale 962 5320 1.9221 y_scale 791 881 2.3298 z_depth 50 material materials/fedora.mhmat verts 0 251 5243 5244 0.60391 0.28706 0.10903 -0.00245 0.01323 0.03373 7020 11853 11852 0.53311 0.29591 0.17097 0.00529 0.01134 0.03388 7678 7000 7707 0.22571 0.34923 0.42506 0.00946 0.03331 0.04954 984 983 1015 0.17322 0.18383 0.64295 -0.00575 0.03634 0.05443 1014 226 982 0.12607 0.67880 0.19513 -0.00934 0.03289 0.04891 250 5245 5232 0.54148 0.48285 -0.02433 -0.01273 0.01129 0.03202 7746 7712 12153 0.16168 0.32394 0.51438 0.02696 0.11561 0.09667 5556 5554 1013 -0.03554 0.63140 0.40413 -0.01650 0.11949 0.10646 5560 5556 1020 0.34178 0.11896 0.53926 -0.03442 0.11513 0.09756 1013 7712 7721 0.24117 0.40913 0.34971 0.03897 0.20473 0.13559 1013 882 1029 0.71875 0.41604 -0.13479 -0.02631 0.22391 0.13840 1029 1020 1013 0.36342 0.60536 0.03123 -0.03890 0.20439 0.13536 7712 7721 882 0.21674 0.67896 0.10430 0.02804 0.23763 0.15510 1013 882 1029 0.30269 0.87853 -0.18122 -0.02994 0.25488 0.15754 1029 1020 1013 0.79483 0.03879 0.16638 -0.04433 0.23290 0.15424 5370 5368 969 -0.08854 0.29827 0.79027 -0.01789 0.14173 -0.15713 11971 7713 969 0.28241 0.33962 0.37797 0.01910 0.14921 -0.16563 11971 7713 969 0.05967 0.69236 0.24796 0.01670 0.13045 -0.14480 5370 5368 969 -0.07249 0.07305 0.99945 -0.01517 0.12017 -0.13323 969 1021 5370 0.20926 0.73057 0.06018 -0.01674 0.13078 -0.14517 969 1021 5370 0.33927 0.37782 0.28291 -0.01914 0.14955 -0.16600 5379 969 7713 -0.00113 0.07709 0.92403 0.01192 0.06520 -0.14994 1021 969 5379 -0.05590 0.97961 0.07629 -0.01124 0.06148 -0.14138 1021 969 5379 0.96289 0.03946 -0.00235 -0.01195 0.06537 -0.15033 11982 11981 7713 0.14728 0.42350 0.42922 0.01740 0.04655 -0.11033 1021 969 5379 -0.03656 0.34361 0.69295 -0.00834 0.04564 -0.10495 1021 5381 5382 0.43027 0.37607 0.19367 -0.01752 0.04687 -0.11110 11981 11982 7738 0.30937 0.48274 0.20789 0.00929 0.00889 -0.07280 5379 962 1022 0.56542 0.43776 -0.00318 -0.00327 0.01206 -0.08469 The rest of the file is very similar, it continues listing vertex fittings to the basemesh. ==== Vertex assignments ==== The format contains matchings in the following format: vIdx1 vIdx2 vIdx3 w1 w2 w3 d1 d2 d3 vIdx is an index of a vertex on the basemesh w is a weight of the corresponding vertex d1,d2,d3 are optional (default to 0) and defines an offset The format contains one such lines for every vertex in the proxy mesh, the order of the lines is the same as the order of vertices in the proxy mesh. The format also supports an alternative fitting, referencing exactly one basemesh vertex, which is used for exact fitting: the proxy mesh vertex is placed in the exact same location as the basemesh vertex it is associated with. vIdx The file format allows mixing these two types of fittings on a per-vertex basis. ==== Properties ==== Every proxy should have a unique uuid (which can be generated using the python uuid module using uuid.uuid4()), a name, description, author and license information. One or multiple tags can be added, each on a new line prepended with "tag". A proxy references a material file and an OBJ mesh. z_depth determines the rendering priority of the object (important for transparency) and the layer of clothing. It is used by face masking to determine which piece of clothing masks another. The scale parameters define a bounding box referencing vertices on the human between which the proxy should be scaled. They are modified in makeclothes by selecting a clothing part. === v1.2 format === Starting from v1.2, a new algorithm for handling proxies is introduced, based on Manuel Bastioni's Lab experiments. The new format uses a local normal space instead of global coordinates, making it more stable, even across different poses. It is also a lot easier for an artist to create new proxies, as it requires only one button press, instead of having to deal with vertex groups. Future MakeHuman versions will contain backwards compatibility support for v1.0 proxies, but the new format is recommended for creation of new content. The layout of this format is largely the same as the old format, with a version parameter specifying that this file should be interpreted as a new style proxy. ==== Example ==== # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj z_depth 50 material materials/fedora.mhmat verts 0 polyIdx dx dy dz It looks a lot like the v1.0 format, only the scale is no longer needed, and the vertex assignments have a new format. polyIdx references a polygon of the basemesh dx dy dz is the distance vector between the polygon center and the proxy mesh vertex. ==== Binary proxy ==== Proxies, as well as their meshes, can be compiled into a more compact binary variant that is faster to load and smaller to distribute. MakeHuman will do this automatically for proxies in the home path. Files in the installation path will have to be compiled manually by running the compile_proxies.py and compile_meshes.py scripts. Usually these scripts are ran when a distribution is created, so need not to be repeated by the end user, unless MakeHuman is used from source. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ''shininess'' or specular hardness is a number between 0 and 1 determining the shininess constant of the [https://en.wikipedia.org/wiki/Phong_reflection_model phong shading model]. ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example. [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. 7f3fc184ff797ba8599512818b585618a0b80e22 597 596 2016-01-31T17:57:49Z Duststorm 19 /* Proxy format */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Proxy format == A proxy is a fitting of an arbitrary mesh (for example clothes or a hairstyle) to the basemesh. A proxy asset is distributed as a mesh file together with this fitting file (what we call the proxy file), allowing this mesh to be fitted on different modeling variations of the human within MakeHuman. === v1.0 format === The 1.0 format got introduced in the v1.0 release of MakeHuman, but was already present in the Alpha 7 (A7) release. The format got reworked a bit for 1.0, however. ==== Example ==== This is an excerpt from the fedora distributed with MakeHuman # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj x_scale 5399 11998 1.4800 z_scale 962 5320 1.9221 y_scale 791 881 2.3298 z_depth 50 material materials/fedora.mhmat verts 0 251 5243 5244 0.60391 0.28706 0.10903 -0.00245 0.01323 0.03373 7020 11853 11852 0.53311 0.29591 0.17097 0.00529 0.01134 0.03388 7678 7000 7707 0.22571 0.34923 0.42506 0.00946 0.03331 0.04954 984 983 1015 0.17322 0.18383 0.64295 -0.00575 0.03634 0.05443 1014 226 982 0.12607 0.67880 0.19513 -0.00934 0.03289 0.04891 250 5245 5232 0.54148 0.48285 -0.02433 -0.01273 0.01129 0.03202 7746 7712 12153 0.16168 0.32394 0.51438 0.02696 0.11561 0.09667 5556 5554 1013 -0.03554 0.63140 0.40413 -0.01650 0.11949 0.10646 5560 5556 1020 0.34178 0.11896 0.53926 -0.03442 0.11513 0.09756 1013 7712 7721 0.24117 0.40913 0.34971 0.03897 0.20473 0.13559 1013 882 1029 0.71875 0.41604 -0.13479 -0.02631 0.22391 0.13840 1029 1020 1013 0.36342 0.60536 0.03123 -0.03890 0.20439 0.13536 7712 7721 882 0.21674 0.67896 0.10430 0.02804 0.23763 0.15510 1013 882 1029 0.30269 0.87853 -0.18122 -0.02994 0.25488 0.15754 1029 1020 1013 0.79483 0.03879 0.16638 -0.04433 0.23290 0.15424 5370 5368 969 -0.08854 0.29827 0.79027 -0.01789 0.14173 -0.15713 11971 7713 969 0.28241 0.33962 0.37797 0.01910 0.14921 -0.16563 11971 7713 969 0.05967 0.69236 0.24796 0.01670 0.13045 -0.14480 5370 5368 969 -0.07249 0.07305 0.99945 -0.01517 0.12017 -0.13323 969 1021 5370 0.20926 0.73057 0.06018 -0.01674 0.13078 -0.14517 969 1021 5370 0.33927 0.37782 0.28291 -0.01914 0.14955 -0.16600 5379 969 7713 -0.00113 0.07709 0.92403 0.01192 0.06520 -0.14994 1021 969 5379 -0.05590 0.97961 0.07629 -0.01124 0.06148 -0.14138 1021 969 5379 0.96289 0.03946 -0.00235 -0.01195 0.06537 -0.15033 11982 11981 7713 0.14728 0.42350 0.42922 0.01740 0.04655 -0.11033 1021 969 5379 -0.03656 0.34361 0.69295 -0.00834 0.04564 -0.10495 1021 5381 5382 0.43027 0.37607 0.19367 -0.01752 0.04687 -0.11110 11981 11982 7738 0.30937 0.48274 0.20789 0.00929 0.00889 -0.07280 5379 962 1022 0.56542 0.43776 -0.00318 -0.00327 0.01206 -0.08469 The rest of the file is very similar, it continues listing vertex fittings to the basemesh. ==== Vertex assignments ==== The format contains matchings in the following format: vIdx1 vIdx2 vIdx3 w1 w2 w3 d1 d2 d3 vIdx is an index of a vertex on the basemesh w is a weight of the corresponding vertex d1,d2,d3 are optional (default to 0) and defines an offset The format contains one such lines for every vertex in the proxy mesh, the order of the lines is the same as the order of vertices in the proxy mesh. The format also supports an alternative fitting, referencing exactly one basemesh vertex, which is used for exact fitting: the proxy mesh vertex is placed in the exact same location as the basemesh vertex it is associated with. vIdx The file format allows mixing these two types of fittings on a per-vertex basis. ==== Properties ==== Every proxy should have a unique uuid (which can be generated using the python uuid module using uuid.uuid4()), a name, description, author and license information. One or multiple tags can be added, each on a new line prepended with "tag". A proxy references a material file and an OBJ mesh. z_depth determines the rendering priority of the object (important for transparency) and the layer of clothing. It is used by face masking to determine which piece of clothing masks another. The scale parameters define a bounding box referencing vertices on the human between which the proxy should be scaled. They are modified in makeclothes by selecting a clothing part. === v1.2 format === Starting from v1.2, a new algorithm for handling proxies is introduced, based on Manuel Bastioni's Lab experiments. The new format uses a local normal space instead of global coordinates, making it more stable, even across different poses. It is also a lot easier for an artist to create new proxies, as it requires only one button press, instead of having to deal with vertex groups. Future MakeHuman versions will contain backwards compatibility support for v1.0 proxies, but the new format is recommended for creation of new content. The layout of this format is largely the same as the old format, with a version parameter specifying that this file should be interpreted as a new style proxy. ==== Example ==== ==== Binary proxy ==== Proxies, as well as their meshes, can be compiled into a more compact binary variant that is faster to load and smaller to distribute. MakeHuman will do this automatically for proxies in the home path. Files in the installation path will have to be compiled manually by running the compile_proxies.py and compile_meshes.py scripts. Usually these scripts are ran when a distribution is created, so need not to be repeated by the end user, unless MakeHuman is used from source. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ''shininess'' or specular hardness is a number between 0 and 1 determining the shininess constant of the [https://en.wikipedia.org/wiki/Phong_reflection_model phong shading model]. ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example. [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. ffd73724d97a8e60a287bcdc91e242d28e50a8ad 596 595 2016-01-31T17:49:36Z Duststorm 19 Add Proxies doc wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Proxy format == A proxy is a fitting of an arbitrary mesh (for example clothes or a hairstyle) to the basemesh. A proxy asset is distributed as a mesh file together with this fitting file (what we call the proxy file), allowing this mesh to be fitted on different modeling variations of the human within MakeHuman. === v1.0 format === The 1.0 format got introduced in the v1.0 release of MakeHuman, but was already present in the Alpha 7 (A7) release. The format got reworked a bit for 1.0, however. ==== Example ==== This is an excerpt from the fedora distributed with MakeHuman # Exported from MakeClothes (TM) # author Jonas Hauquier # license AGPL3 (see also http://www.makehuman.org/node/320) # homepage http://www.makehuman.org/ uuid 566dbd52-71d1-4d76-a799-0474a5a384db basemesh hm08 tag Hats name fedora obj_file fedora.obj x_scale 5399 11998 1.4800 z_scale 962 5320 1.9221 y_scale 791 881 2.3298 z_depth 50 material materials/fedora.mhmat verts 0 251 5243 5244 0.60391 0.28706 0.10903 -0.00245 0.01323 0.03373 7020 11853 11852 0.53311 0.29591 0.17097 0.00529 0.01134 0.03388 7678 7000 7707 0.22571 0.34923 0.42506 0.00946 0.03331 0.04954 984 983 1015 0.17322 0.18383 0.64295 -0.00575 0.03634 0.05443 1014 226 982 0.12607 0.67880 0.19513 -0.00934 0.03289 0.04891 250 5245 5232 0.54148 0.48285 -0.02433 -0.01273 0.01129 0.03202 7746 7712 12153 0.16168 0.32394 0.51438 0.02696 0.11561 0.09667 5556 5554 1013 -0.03554 0.63140 0.40413 -0.01650 0.11949 0.10646 5560 5556 1020 0.34178 0.11896 0.53926 -0.03442 0.11513 0.09756 1013 7712 7721 0.24117 0.40913 0.34971 0.03897 0.20473 0.13559 1013 882 1029 0.71875 0.41604 -0.13479 -0.02631 0.22391 0.13840 1029 1020 1013 0.36342 0.60536 0.03123 -0.03890 0.20439 0.13536 7712 7721 882 0.21674 0.67896 0.10430 0.02804 0.23763 0.15510 1013 882 1029 0.30269 0.87853 -0.18122 -0.02994 0.25488 0.15754 1029 1020 1013 0.79483 0.03879 0.16638 -0.04433 0.23290 0.15424 5370 5368 969 -0.08854 0.29827 0.79027 -0.01789 0.14173 -0.15713 11971 7713 969 0.28241 0.33962 0.37797 0.01910 0.14921 -0.16563 11971 7713 969 0.05967 0.69236 0.24796 0.01670 0.13045 -0.14480 5370 5368 969 -0.07249 0.07305 0.99945 -0.01517 0.12017 -0.13323 969 1021 5370 0.20926 0.73057 0.06018 -0.01674 0.13078 -0.14517 969 1021 5370 0.33927 0.37782 0.28291 -0.01914 0.14955 -0.16600 5379 969 7713 -0.00113 0.07709 0.92403 0.01192 0.06520 -0.14994 1021 969 5379 -0.05590 0.97961 0.07629 -0.01124 0.06148 -0.14138 1021 969 5379 0.96289 0.03946 -0.00235 -0.01195 0.06537 -0.15033 11982 11981 7713 0.14728 0.42350 0.42922 0.01740 0.04655 -0.11033 1021 969 5379 -0.03656 0.34361 0.69295 -0.00834 0.04564 -0.10495 1021 5381 5382 0.43027 0.37607 0.19367 -0.01752 0.04687 -0.11110 11981 11982 7738 0.30937 0.48274 0.20789 0.00929 0.00889 -0.07280 5379 962 1022 0.56542 0.43776 -0.00318 -0.00327 0.01206 -0.08469 The rest of the file is very similar, it continues listing vertex fittings to the basemesh. ==== Properties ==== Every proxy should have a unique uuid (which can be generated using the python uuid module using uuid.uuid4()), a name, description, author and license information. One or multiple tags can be added, each on a new line prepended with "tag". A proxy references a material file and an OBJ mesh. z_depth determines the rendering priority of the object (important for transparency) and the layer of clothing. It is used by face masking to determine which piece of clothing masks another. The scale parameters define a bounding box referencing vertices on the human between which the proxy should be scaled. They are modified in makeclothes by selecting a clothing part. === v1.2 format === Starting from v1.2, a new algorithm for handling proxies is introduced, based on Manuel Bastioni's Lab experiments. The new format uses a local normal space instead of global coordinates, making it more stable, even across different poses. It is also a lot easier for an artist to create new proxies, as it requires only one button press, instead of having to deal with vertex groups. Future MakeHuman versions will contain backwards compatibility support for v1.0 proxies, but the new format is recommended for creation of new content. The layout of this format is largely the same as the old format, with a version parameter specifying that this file should be interpreted as a new style proxy. ==== Binary proxy ==== Proxies, as well as their meshes, can be compiled into a more compact binary variant that is faster to load and smaller to distribute. MakeHuman will do this automatically for proxies in the home path. Files in the installation path will have to be compiled manually by running the compile_proxies.py and compile_meshes.py scripts. Usually these scripts are ran when a distribution is created, so need not to be repeated by the end user, unless MakeHuman is used from source. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ''shininess'' or specular hardness is a number between 0 and 1 determining the shininess constant of the [https://en.wikipedia.org/wiki/Phong_reflection_model phong shading model]. ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example. [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. 440ba5aa953d4bceb7631350c0e12e6a0e0888bd 595 594 2016-01-31T17:33:10Z Duststorm 19 /* Example */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ''shininess'' or specular hardness is a number between 0 and 1 determining the shininess constant of the [https://en.wikipedia.org/wiki/Phong_reflection_model phong shading model]. ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example. [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. 7f4f84ee4e490c61ec011da5e65d02aeb47f10cc 594 593 2016-01-28T09:25:47Z Duststorm 19 /* Standard settings */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ''shininess'' or specular hardness is a number between 0 and 1 determining the shininess constant of the [https://en.wikipedia.org/wiki/Phong_reflection_model phong shading model]. ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example. [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. e6978add7bd86573ca9eef158fb50cab388746e4 593 592 2016-01-27T17:22:21Z Duststorm 19 /* Dynamic shader configuration in Material Editor plugin */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example. [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. 9b39bd0177527c7b9caf355b1db5226a0844f252 592 591 2016-01-27T17:21:55Z Duststorm 19 wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [[File:Mh_material_editor.png]] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example [[File:Mh_material_editor2.png]] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. 924b031e91849ea77e95cec84c524e6267c93b0a 591 588 2016-01-27T17:21:23Z Duststorm 19 /* Custom shader properties */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. ==== Dynamic shader configuration in Material Editor plugin ==== Take as example this screenshot, which shows how the X-Ray shader, mentioned earlier, can be configured. [File:Mh_material_editor.png] In the shader selector, xray was chosen. This opens up a few new options to configure. Notice that on the top right the custom shader uniforms edgefalloff and intensity that we mentioned earlier were automatically detected. The shader author had to do nothing else than to define these uniform parameters in his shader code, and define a sensible default for them. A material using this shader can customize these properties using the shaderParam option, which can be altered visually in the top right of the material editor. Changes in the material editor take effect immediately, so you can directly preview your changes. Also notice in the bottom left that the material editor shows the available shaderConfig parameters. Some of these are greyed out, which means they are not available, or the condition for them is not met (for example, to be able to enable normal mapping, you need to choose a normal map texture on the right panel. If the normal map property is greyed out on the right side, then this particular shader does not support normal mapping). Let's take a look at a second example [File:Mh_material_editor2.png] Here we see the litsphere shader. This shader is different from the other shaders in the sense that it completely ignores the lighting of the scene, and instead lights the model with a texture containing pre-baked lighting conditions, a so-called [http://www.cs.utah.edu/~wmartin/pubs/LitSphere.pdf litsphere] texture. This shader, being so different, requires a different sort of input, a custom input texture: the litsphere texture. The shader author simply defined this uniform parameter in his shader code, and as you can see in the top right corner, the material editor shows a texture selector for this property. Using it, the user can select a litsphere texture to feed to the shader. The litsphere shader also has two different alternative techniques that can be enabled or disabled by the user. These two features, which can be enabled using shaderDefine statements in the material file, are automatically detected by the material system, and shown in the bottom left of the material editor. Enabling them is as simple as checking the checkbox. One of these custom shading features is alpha mapping (defined by ALPHA_MAP), which allows to sample alpha transparency from an additional texture. For this texture, an additional uniform property, named alphaTexture was declared in the shader, but it was written down in a way that it is only declared if the ALPHA_MAP token is defined. In the shader code: #ifdef ALPHA_MAP uniform sampler2D alphaTexture; #endif If you check the ALPHA_MAP_checkbox, you will notice that on the top right, an extra texture selector will appear. These examples show how the material editor can help exploring the different settings that are available in shaders. 3119dfb943f9f951597e484c05c82392f62729a0 588 587 2016-01-27T16:45:01Z Duststorm 19 /* Basic pointers for creating materials */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) * Do your (diffuse) textures contain transparency? Do not forget to enable transparency! Perhaps try if alpha-to-coverage improves the situation (especially for hair!). === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. 00817053f49457a96e7abb45cb7fcccdfb619164 587 586 2016-01-27T16:43:19Z Duststorm 19 /* Basic pointers */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers for creating materials === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. 8aa68c3aeef23d67cb6d62ec07d028f866565163 586 585 2016-01-27T16:41:09Z Duststorm 19 /* Shaders */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |Vertex coloring |vertexColors |VERTEX_COLOR | |Derive diffuse color from vertex colors |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. 7cf4fd277e0ee50d21780d0f5f5af68ee76afe72 585 584 2016-01-27T16:40:04Z Duststorm 19 /* Shaders */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! feature name ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |Diffuse texturing |diffuse |DIFFUSE |diffuseTexture | |- |Bump mapping |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |Normal mapping |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |Displacement mapping |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |Specularity mapping |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |Transpareny (alpha) maps |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |Ambient occlusion maps |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. a980c988e4b6dfc98b94c5a7108ac7b1e0f5c0e4 584 583 2016-01-27T16:37:26Z Duststorm 19 /* The Material System */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. At the third level, various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. bd4cde9cdca103cc2cabef94719591281b93163c 583 582 2016-01-27T16:35:04Z Duststorm 19 /* SSS properties */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are ''sssEnabled'', ''sssRScale'', ''sssGScale'' and ''sssBScale''. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. 39966e896f0f2f0e23359e30b2a6dc37d9965e42 582 581 2016-01-27T16:34:15Z Duststorm 19 /* Explanation of material properties */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ ==== SSS properties ==== These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. 20224494c9bbede12a217e320f6b155fc4ee837a 581 580 2016-01-27T16:31:24Z Duststorm 19 wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === ==== Standard settings ==== ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Texture maps ==== Various standard texture maps can be defined on the material, like ''diffuseTexture'', ''bumpmapTexture'', ''normalmapTexture'', ''displacementmapTexture'', ''specularmapTexture'', ''transparencymapTexture'', ''aomapTexture''. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. 42559f0bdaf947ce19ece3ee928f3775e35194b3 580 579 2016-01-27T16:26:26Z Duststorm 19 wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === === Standard settings === ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [https://en.wikipedia.org/wiki/Rendering_equation rendering equation] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [https://www.opengl.org/wiki/Transparency_Sorting alpha blending]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ === autoBlendSkin === If True the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [http://www.terathon.com/code/tangent.html Lengyel’s Method] for tangent calculation is used, but plans are to change this to [http://bugtracker.makehumancommunity.org/issues/87 mikktspace] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment] * Phong shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment] * Normal map shader (wip): [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex] [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment] * X-ray shader: [https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex][https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. 32500c3aa74f84014b9f2c3b670c0cf84d7be3fe 579 578 2016-01-27T16:24:51Z Duststorm 19 /* Shaders */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === === Standard settings === ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [[https://en.wikipedia.org/wiki/Rendering_equation rendering equation]] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [[https://www.opengl.org/wiki/Transparency_Sorting alpha blending]]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ === autoBlendSkin === If True the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [[http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader]], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. Instead of having different shaders for different features (eg. a specific normalmap shader to be able to do normal mapping), one general shader could be used instead, and normal mapping can simply be enabled or disabled from the material properties, without being required to swap shaders (a good default uber shader is [[http://bugtracker.makehumancommunity.org/issues/160 still to be created for MakeHuman]] Any help with this is welcome of course!). The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[http://bugtracker.makehumancommunity.org/issues/87 mikktspace]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. cb8163f8baecac6590aa09f24a463c9015699702 578 577 2016-01-27T16:20:05Z Duststorm 19 /* Shaders */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === === Standard settings === ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [[https://en.wikipedia.org/wiki/Rendering_equation rendering equation]] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [[https://www.opengl.org/wiki/Transparency_Sorting alpha blending]]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ === autoBlendSkin === If True the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The idea is that of an [[http://www.gamedev.net/topic/659145-what-is-a-uber-shader/ über shader]], where performance is optimized by removing any dynamic branches (if then that) from shader code, and instead managing the features using defines and pre-processor branches. When a different branch in the shader is activated, the shader code is recompiled entirely. The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[http://bugtracker.makehumancommunity.org/issues/87 mikktspace]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. 1fd85fd04c257228d62a8e5fdd34fb0c0a45595c 577 576 2016-01-27T16:13:37Z Duststorm 19 /* Custom shader properties */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === === Standard settings === ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [[https://en.wikipedia.org/wiki/Rendering_equation rendering equation]] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [[https://www.opengl.org/wiki/Transparency_Sorting alpha blending]]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ === autoBlendSkin === If True the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[http://bugtracker.makehumancommunity.org/issues/87 mikktspace]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. These features make for a general and extensible shader system. 5896b123679e162677486757cfa9da2645970b64 576 575 2016-01-27T16:13:05Z Duststorm 19 /* Shaders */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === === Standard settings === ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [[https://en.wikipedia.org/wiki/Rendering_equation rendering equation]] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [[https://www.opengl.org/wiki/Transparency_Sorting alpha blending]]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ === autoBlendSkin === If True the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[http://bugtracker.makehumancommunity.org/issues/87 mikktspace]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] ==== Custom shader properties ==== Shaders can use non-standard #DEFINEs to allow enabling or disabling non-standard shading features, other than the ones that were foreseen in the material format (such as normal mapping, ...) To add new ones, simply add #ifdef SOME_FEATURE statements to your shader code, the material system will automatically detect them. From the material, you can enable them with shaderDefine SOME_FEATURE If not defined, the feature is assumed to be switched off. A custom shader can also add new parameters to tweak. For example a color value or intensity value that influences the shading. To do this, the shader author can simply add new uniform variables to their shader code. It is recommended to specify a default value for them, so that if the material file does not explicitly mention them, they receive a sensible default value. Example: the X-ray shader adds an edge-fallof property: uniform float edgefalloff = 1.0; From the material file, you can influence this value with: shaderParam edgefalloff 0.5 shaderParam supports lists of float values (one or multiple, divided by spaces), eg shaderParam edgecolor 0.7 0.3 0.4 or textures, by specifying a path to an image file (in which case they are assumed to be Sampler2D type) Additionally, from within MakeHuman, they can be passed a Texture object, to dynamically pass them a texture that resides in memory, without the need for the texture to be stored in a file on disk. This allows to dynamically alter the texture and have it displayed directly. MakeHuman takes care of caching the texture and updating it when it is modified. For example, the auto skin tone blending of the litsphere texture is implemented in this way. The material system will automatically detect these custom uniform parameters declared in the shader, for example the material editor plugin will present them in the GUI. 172ddb6c35cef22af5348a73b495631f8913e76f 575 574 2016-01-27T16:03:29Z Duststorm 19 /* Standard settings */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === === Standard settings === ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [[https://en.wikipedia.org/wiki/Rendering_equation rendering equation]] or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [[https://www.opengl.org/wiki/Transparency_Sorting alpha blending]]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ === autoBlendSkin === If True the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[http://bugtracker.makehumancommunity.org/issues/87 mikktspace]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] 51233a64bef98eb9da8b759dae65d9ba6a111534 574 573 2016-01-27T16:01:52Z Duststorm 19 /* Standard settings */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === === Standard settings === ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [[https://en.wikipedia.org/wiki/Rendering_equation rendering equation]] or in standard OpenGL. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused ==== Render states ==== When ''wireframe'' is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set ''shadeless'' to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set ''transparent'' to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow [[https://www.opengl.org/wiki/Transparency_Sorting alpha blending]]. ''alphaToCoverage'' Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set ''backfaceCull'' to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set ''depthless'' to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. ''castShadows'' determines whether the object casts shadows on other objects. ''receiveShadows'' determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. ==== autoBlendSkin ==== If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. ==== shaderParam ==== Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 ==== shaderDefine ==== shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). ==== uvMap ==== Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ === autoBlendSkin === If True the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[http://bugtracker.makehumancommunity.org/issues/87 mikktspace]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] 63032b45a8ad909b145e4d6e19359c72cdbe474c 573 572 2016-01-27T15:31:28Z Duststorm 19 /* Shaders */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === === Standard settings === ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [[https://en.wikipedia.org/wiki/Rendering_equation rendering equation]] or in standard OpenGL. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused === autoBlendSkin === If True the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL built-in uniforms or properties (usually starting with gl_). The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[http://bugtracker.makehumancommunity.org/issues/87 mikktspace]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] 31a1e8d5da716aba4f55f156e6c835866061be34 572 571 2016-01-27T15:30:57Z Duststorm 19 /* Standard settings */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === === Standard settings === ''ambientColor'', ''diffuseColor'' ''specularColor'', ''emissiveColor'' are the standard colors as used in the [[https://en.wikipedia.org/wiki/Rendering_equation rendering equation]] or in standard OpenGL. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. ''opacity'' determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) ''translucency'' is something that came from Blender but is unused === autoBlendSkin === If True the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL default uniforms or properties. The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[http://bugtracker.makehumancommunity.org/issues/87 mikktspace]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] f3e13287cb984f337e6917643c93d0e2b68f7a49 571 570 2016-01-27T15:19:22Z Duststorm 19 /* Explanation of material properties */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === === Standard settings === ambientColor, diffuseColor specularColor, emissiveColor are the standard colors as used in the [[https://en.wikipedia.org/wiki/Rendering_equation rendering equation]] or in standard OpenGL. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. === autoBlendSkin === If True the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL default uniforms or properties. The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[http://bugtracker.makehumancommunity.org/issues/87 mikktspace]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] f41a097688b31b56ca198485fbd900a2fb60ff3a 570 569 2016-01-27T15:18:45Z Duststorm 19 /* Scene definition */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === === autoBlendSkin === If True the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Shaders === The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL default uniforms or properties. The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[http://bugtracker.makehumancommunity.org/issues/87 mikktspace]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] 8eb657fa070d50fc9a2da0e1d8b34f69f70e8c50 569 568 2016-01-27T15:17:54Z Duststorm 19 /* Shaders */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === === autoBlendSkin === If True the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. ==== Shaders ==== The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL default uniforms or properties. The following table lists these defines and the shaderConfig properties in the material they relate to: {| class="wikitable" |- ! shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[http://bugtracker.makehumancommunity.org/issues/87 mikktspace]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] 5a53ca0ae0987c724a2acbdf1def27a1e77d5d43 568 567 2016-01-27T15:17:04Z Duststorm 19 improve table looks wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === === autoBlendSkin === If True the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. ==== Shaders ==== The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL default uniforms or properties. The following table lists these defines and the shaderConfig properties in the material they relate to: {| ! class="wikitable"| shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[http://bugtracker.makehumancommunity.org/issues/87 mikktspace]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] 2785952d16b0746dec69a8806264a18c3caf2331 567 566 2016-01-27T15:16:20Z Duststorm 19 /* Material format */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. Every 3D object in MakeHuman has exactly one material attached to it (multiple materials are not possible, you need separate objects for that). Materials are used for proxy meshes (clothes, hairs, ...) but also for the skin of the human itself. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False === Explanation of material properties === === autoBlendSkin === If True the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Don't know how to define a color in numbers? Try the Material Editor plugin * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. ==== Shaders ==== The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL default uniforms or properties. The following table lists these defines and the shaderConfig properties in the material they relate to: {| ! style="text-align:left;"| shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[http://bugtracker.makehumancommunity.org/issues/87 mikktspace]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] 9a6308a5fb550846e10237d2ff95ea58efe4fc8c 566 565 2016-01-27T14:59:25Z Duststorm 19 /* Shaders */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. ==== Shaders ==== The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL default uniforms or properties. The following table lists these defines and the shaderConfig properties in the material they relate to: {| ! style="text-align:left;"| shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[http://bugtracker.makehumancommunity.org/issues/87 mikktspace]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt vertex]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False d0fcf5c7fd5e8fa5b113476521824c7123484a56 565 564 2016-01-27T14:58:26Z Duststorm 19 fix link wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. ==== Shaders ==== The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL default uniforms or properties. The following table lists these defines and the shaderConfig properties in the material they relate to: {| ! style="text-align:left;"| shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[http://bugtracker.makehumancommunity.org/issues/87 mikktspace]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False 6f4bb3e0152e224710936e7732a4865649c1c8c6 564 563 2016-01-27T14:57:16Z Duststorm 19 fix table wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. ==== Shaders ==== The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL default uniforms or properties. The following table lists these defines and the shaderConfig properties in the material they relate to: {| ! style="text-align:left;"| shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- |diffuse |DIFFUSE |diffuseTexture | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[mikktspace http://bugtracker.makehumancommunity.org/issues/87]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False aac2fb83a137c273c6d01afe602a9301df2388c9 563 562 2016-01-27T14:54:08Z Duststorm 19 /* Shaders */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. ==== Shaders ==== The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL default uniforms or properties. The following table lists these defines and the shaderConfig properties in the material they relate to: {| ! style="text-align:left;"| shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- diffuse |DIFFUSE |diffuseTexture | | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[mikktspace http://bugtracker.makehumancommunity.org/issues/87]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False 83bcc9867899b2bc93b35089ccd67c0c79879674 562 561 2016-01-27T14:53:44Z Duststorm 19 Add material documentation wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Introduction === MakeHuman material files have extension .mhmat and are simple ASCII definitions of the material settings to use for rendering. These material settings are primarily intended for configuring the material system within MakeHuman, but they are usually carried out to other software as well by the exporters. Not all properties will be supported for all given combinations of shaders, nor is there a guarantee that the exporters will honor all the properties in these files. === The Material System === The MakeHuman material system is closely based on the [[https://en.wikipedia.org/wiki/Rendering_equation standard rendering equation]] as is used in OpenGL and DirectX forward rendering pipelines. MakeHuman supports shaders and the material format contains the most commonly used extensions in real-time rendering. As a consequence of this, users need to be aware of the implications of setting values such as ambient too bright, or diffuse too dark. All usual rules about rendering materials apply. At the highest level, the material supports setting the most basic material properties, such as diffuse, specular and ambient color. These are supported both by shaders as well as the fixed function shading pipeline (which is used when no shader is specified). Fixed function also supports the diffuse texture option. At a second level, a shader can be chosen. This refers directly to the filename of a [[https://en.wikipedia.org/wiki/OpenGL_Shading_Language GLSL shader]] as found in the data/shaders/glsl folder of MakeHuman. The selected shader will determine what material options will be available. Various additional settings become available, depending on whether or not the chosen shader has support for these features, such as bump or normal mapping, ambient occlusion, specular mapping, etc. For most of these, a texture map and a scalar property between 0 and 1 can be set, the latter determining the intensity or influence of the effect. Finally, MakeHuman also contains a built-in offline renderer that supports some additional properties such as subsurface scattering, for which some special properties are available. ==== Shaders ==== The most powerful functionality of the material system is unlocked when using shaders. MakeHuman shaders are intended to be written in a modular way, so that shading features can be enabled or disabled using the material format. Examples of such features are bump mapping, normal mapping, specular mapping, diffuse texturing, ambient occlusion and displacement mapping. MakeHuman includes a basic introspection function that allows it to determine what features a shader supports. It accomplishes this by looking for #ifdef and #ifndef statements. If a shader supports a certain technique, it is supposed to encapsulate this in #ifdef NORMALMAP ... #else ... #endif statements. The material system manages these shading functions by defining specific pre-processor keywords when their corresponding shaderConfig property is set to true. Shaders are recompiled when needed and stored in a shader cache for efficiency. MakeHuman passes scene and material information to the shaders by certain uniform parameters. Depending on which shaderConfig properties were enabled, additional uniforms could be exposed to the shader. The shader does not have to declare all these uniforms, however. MakeHuman binds only those uniforms present in the shader if they have the right corresponding names. Other properties are available from the OpenGL default uniforms or properties. The following table lists these defines and the shaderConfig properties in the material they relate to: {| ! style="text-align:left;"| shaderConfig ! shader #DEFINE ! exposed uniform parameters if enabled ! comment |- |default (always enabled) | |vec3 ambient, vec4 diffuse, vec4 specular, vec3 emissive |diffuse and specular are 4-component color values, diffuse=[rgba] with a=opacity and specular=[rgbs] with s=shininess |- |vertexColors |VERTEX_COLOR | | |- diffuse |DIFFUSE |diffuseTexture | | |- |bump |BUMPMAP |bumpmapTexture, bumpmapIntensity |disabled if normal mapping is enabled (restriction might be lifted in the future) |- |normal |NORMALMAP |normalmapTexture, normalmapIntensity | |- |displacement |DISPLACEMENT |displacementmapTexture, displacementmapIntensity | |- |spec |SPECULARMAP |specularmapTexture, specularmapIntensity | |- |transparency |TRANSPARENCYMAP |transparencymapTexture, transparencymapIntensity | |- |ambientOcclusion |AOMAP |aomapTexture, aomapIntensity | |} Additionally, MakeHuman exposes the vertex tangent as a vertex property, which can be accessed by the shader. attribute vec4 tangent Currently, [[http://www.terathon.com/code/tangent.html Lengyel’s Method]] for tangent calculation is used, but plans are to change this to [[mikktspace http://bugtracker.makehumancommunity.org/issues/87]] in the future. Shader examples for MakeHuman can be found here: * Litsphere shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_vertex_shader.txt]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/litsphere_fragment_shader.txt fragment]] * Phong shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_vertex_shader.txt]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/phong_fragment_shader.txt fragment]] * Normal map shader (wip): [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_vertex_shader.txt]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/normalmap_fragment_shader.txt fragment]] * X-ray shader: [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_vertex_shader.txt]] [[https://bitbucket.org/MakeHuman/makehuman/src/default/makehuman/data/shaders/glsl/xray_fragment_shader.txt fragment]] === Basic pointers === * You can test the influence of material properties using the Material Editor plugin (which you can enable in Settings > Plugins, then restart) * Using a diffuse texture? You probably want to set the diffuse color to 1 1 1 (pure white) * Never set ambient color too bright, or your model will look completely white. 0.1 0.1 0.1 is a good value to start from. * Emissive is usually set to black, unless you want a radioactive character * Higher shininess means smaller and sharper highlight, lower shininess makes the highlight larger and more blurred * Reduce specular color to reduce the specularity, make it black for a rough and non shiny object * opacity 1 means fully opaque, 0 means fully transparent (invisible) === Scene definition === To complete the rendering equation, you also need to define the scene. To be more precise, the positions, types, color and intensities of the lights need to be set. By default, MakeHuman only has a default scene with only one pointlight. In MakeHuman, lights do not move if the camera is moved, or rather, the model is rotated while the camera and lights remain static. So light positions are defined relative to the camera position. MakeHuman scenes are defined in .mhscene files, which are binary py-pickled files. They can be created or modified using the Scene Editor plugin (can be enabled in settings) and can be selected from the Scene library in the Render tab. Fixed function shading pipeline supports up to 8 lights, specific light support depends on the shader used, some shaders only support a certain type or number of lights, other ignore the chosen scene altogether (for example the litsphere shader that uses pre-baked environment lighting). The built-in offline renderer also uses the specified scene. Scenes are not exported along with the model. === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False e41e16feccfed294115c6e2916155e992ae8db12 561 560 2016-01-27T13:29:08Z Duststorm 19 /* Material format */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== === Example === This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv This is another example, this time a real one. It is the X-ray material, used for example when showing the skeleton: # Material definition for XrayMaterial name XrayMaterial ambientColor 0.1 0.1 0.1 diffuseColor 1.0 1.0 1.0 specularColor 0.3 0.3 0.3 shininess 0.1 emissiveColor 0.0 0.0 0.0 opacity 0.1 translucency 0.0 transparent True backfaceCull True shadeless False wireframe False depthless False shader data/shaders/glsl/xray shaderConfig diffuse False shaderConfig transparency False shaderConfig normal False shaderConfig bump False shaderConfig spec False shaderConfig vertexColors False shaderConfig displacement False 5a45dd9b36f0c836d29b49b1c6b8a21720d409cc 560 559 2016-01-27T13:27:58Z Duststorm 19 /* Material format */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== This is a full and complete (but fictional) example of a material file for MakeHuman, it shows all the available properties. # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv f9bd0debfaa0a57a188f9222e6425b1d89633fd7 559 558 2016-01-27T13:27:11Z Duststorm 19 /* Material format */ wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== Full example: # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv 8fce498db3c7078e099e6fcf0772927ba154cea5 558 519 2016-01-27T13:26:38Z Duststorm 19 Add full material example wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. == Material format== Full example: # Example MakeHuman Material definition name Material_name tag some_tag tag another_tag description material description text here ambientColor 0.11 0.11 0.11 diffuseColor 1.0 1.0 1.0 specularColor 0.0470588235294 0.0470588235294 0.0470588235294 shininess 0.96 emissiveColor 0.0 0.0 0.0 opacity 1.0 translucency 0.0 shadeless False wireframe False transparent True alphaToCoverage True backfaceCull False depthless False autoBlendSkin False castShadows True receiveShadows True diffuseTexture diffuse_texture.png bumpmapTexture bumpmap.png bumpmapIntensity 1.0 normalmapTexture normalmap.png normalmapIntensity 1.0 displacementmapTexture norm_displacement.png displacementmapIntensity 1.0 specularmapTexture specular.png specularmapIntensity 1.0 transparencymapTexture alpha.png transparencymapIntensity 1.0 aomapTexture ambient_occlusion_map.png aomapIntensity 1.0 # Sub-surface scattering parameters sssEnabled True sssRScale 5.0 sssGScale 2.5 sssBScale 1.0 shader shaders/glsl/litsphere shaderParam litsphereTexture litspheres/lit_hair.png shaderConfig ambientOcclusion True shaderConfig normal False shaderConfig bump True shaderConfig displacement False shaderConfig vertexColors True shaderConfig spec True shaderConfig transparency True shaderConfig diffuse True shaderDefine ALPHA_MAP uvMap alt_uv_coords.mhuv 8552c292447da94d7c1584cb979a29d008be5ed9 519 518 2015-09-02T10:02:25Z Duststorm 19 Fix table end wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion |} Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. c19d023dd6a6e351b55839b87f044ce4ed574d28 518 517 2015-09-02T10:01:56Z Duststorm 19 Create table for reserved group tokens wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. {| class="wikitable" |- ! Header 1 ! Header 2 ! Header 3 |- | row 1, cell 1 | row 1, cell 2 | row 1, cell 3 |- | row 2, cell 1 | row 2, cell 2 | row 2, cell 3 |} {| class="wikitable" |- ! Reserved token (value) ! Variable |- | female,male | gender |- | baby, child, young, old | age |- | african, caucasian, asian | race |- | minmuscle, averagemuscle, maxmuscle | muscle |- | minweight, averageweight, maxweight | weight |- | minheight, averageheight, maxheight | height |- | mincup, averagecup, maxcup | breastsize |- | minfirmness, averagefirmness, maxfirmness | breastfirmness |- | uncommonproportions, regularproportions, idealproportions | bodyproportion Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. 53afeb5f1764fdc1981392e4c15b9cf60cab3407 517 2015-09-02T09:58:42Z Duststorm 19 First commit of technical notes from google doc wikitext text/x-wiki == Vertex weights == With vertex weights we intend a weighted mapping of vertices of a mesh to a bone of a skeleton. The weight is a value between 0 and 1, the sum of these weights for each vertex should be normalized, which means they should sum to 1 (note: no euclidian distance, just simple addition of all weights). A weight map in MakeHuman is expressed as a bone name (becomes a bone index internally, using the index of the bone in a breadth-first list relative to skeleton structure), a vertex name and a floating point weight between 0 and 1. This weighted vertex to bone mapping is used for skinning (posing and animating, using vertex skinning, smooth skinning or linear blend skinning algorithm). For the skinning algorithm to work correctly it’s required that the weights are always normalized, otherwise you will see vertices move out of place disproportionally (though the weight loading code in MakeHuman ensures that this normalization always happens, so this is not a concern to the artist that defines the weights). The vertex weights can be exported to external tools as well using formats such as collada (DAE), FBX, Ogre3D meshes or MD5 quake meshes. === Vertex weights and skeletons === Vertex weights are defined for the default “master” skeleton or rig. They are defined in a json file with jsonw extension. They link each vertex of the basemesh including helpers to a named bone of this master rig, together with a certain weight. The weights loader automatically removes doubles and normalizes the weights (so that they sum to 1). It also reports what the maximum number of bone weights per vertex is, additionally it allows compiling the weights to a reduced set with n number of bone weights, and automatically renormalizes those weights so they, again, sum to 1. When loading weights, any vertex that receives no weighting is assigned to the root bone, as this is needed for skinning to prevent all those vertices jumping to the origin (0*pos == 0). Alternative skeletons can define their own weights, by referencing a weights file just like the master rig, or they can choose to derive their weights from the master rig, through so called reference bone mappings. Skeletons will derive their weights from the master rig if they do not specify a weights file explicitly. Custom vertex weights in alternative rigs override those defined on the master rig, except in the case where a proxy defines its own vertex weights. See section Vertex weights for proxies for more details. === Reference bones for vertex weights and poses === Reference bones are defined on alternative rigs, they are a list of names of bones contained in the master rig. Every bone of an alternative rig can have such a list of reference bones. An alternative rig can also omit these references if it uses the same name as bones in the master rig, in which the mapping is implicit. Having a list of bone references always overrides the implicit mapping. Reference bone mappings are required for two purposes. They are used for mapping poses defined on the master rig to other rigs. All poses are defined as BVH files that pose the master rig, so they reference only the bone names of the master rig. Poses are applied to all other rigs by using the reference bone mapping: all the rotations that the pose applies to the referenced bones are combined (in the order in which the references were specified -- note: rotations are NOT commutative) and are applied to the alternative rig bone. Reference bone mappings can also be used for determining vertex weights of custom rigs. If the alternative rig does not explicitly define its own vertex weights, the mapping of reference bones is used to infere a set of bone weights for each bone: All the weights of the reference bones on the master rig (with the weights definition of the default/master rig) are combined and apply to the bone of the alternative rig. Doubles are merged, and weights renormalized. Any vertex that is not weighted will be assigned to the root bone. Watch for messages in the log to verify this. === Vertex weights for proxies === Generally proxies are mapped to basemesh geometry, that means either to the body or to helpers, or a combination of both (though this is unusual). Proxies derive their vertex weights from the vertices on the basemesh on which they are fitted. A proxy defines its fitting as a 3d offset from one or three vertices on the basemesh, allowing it to deform as the human deforms. This mapping is used to transfer the vertex weights from basemesh to proxy: a proxy vertex referencing three basemesh vertices gets the bone weights of those three vertices. Doubles are merged and the weights are normalized, so that the influence factors are averaged or smoothed. In this case the weights applied to proxies are always those defined on the skeleton: either the weights explicitly defined on the skeleton, or the weights obtained from remapping the master rig weights to this skeleton using the reference bone mapping mentioned in the previous sections. There is an exception to this, which is explained in the next paragraph. A proxy can explicitly define its own vertex (to bone) weights. In this case it overrides the weights that would be obtained through the proxy mapping, and replaces them by its own custom definition of weights. These vertex weights are always defined to reference the bones of the master rig (default skeleton), so they need to be remapped to other skeletons using reference bone mapping. This also means that the custom weights of a proxy override any custom weights mapping that might be loaded with an alternative rig (but only for that proxy item). Custom proxy weights should be avoided if possible, but are in some cases required, eg. for properly rigging shoes which are rigidly fitted to feet, or an alternative topology which defines very accurate rigging on the face. The general advice for custom rigs is therefore to stay as close to the master rig as possible, reusing as much bones identically as possible, to achieve the best results for proxies with custom weights. In case of custom weight, the mhclo file must contain a line to indicate the weight file to use, using the keyword “vertexboneweights_file”, with the syntax: vertexboneweights_file filename.jsonw == Targets and modifiers == MakeHuman applies targets on the human by means of modifiers. Such a modifier has a value (usually between [0, 1] or [-1, 1]) that determines the effect of it on the human mesh. A modifier can control one or more targets and in apply the mixed sum of them on the mesh. Some modifiers. === Organization of targets === To make sure targets are linked to the right modifier, or to make managing targets easier, a certain discipline has to be observed in managing them. Targets are ASCII files in the data/targets or data/custom folder (in program or user folder) with a file extension of .target. The file name and folder targets are in implicitly determines their group name. A group is identified by a sequence of tags or tokens, which are taken from the file and folder name of each target, and which can be delimited by “-” symbols, to include multiple tokens in a single file or folder name. The lib/targets.py module takes care of loading all the names of the available targets and assembles them into groups. All targets with the same tokens end up in the same group. This allows easy querying and requesting of targets. The creator is pretty much free to decide what groups to create for their targets. By passing the name of the target group to a modifier, they can make sure that modifier controls the targets belonging to this group. It does not matter whether you use folders or - delimited file names for creating groups. An example: data/targets/cartoon/eyes-large.target is categorized in group (cartoon, eyes, large) data/targets/cartoon-eyes-large.target is also categorized in group (cartoon, eyes, large) Most simple modifiers work by specifying a group (for example cartoon-eyes) and a set of two tokens to append at the end, depending on the position of the modifier slider (eg. small, large which would allow controlling the targets cartoon-eyes-small and cartoon-eyes-large by moving the slider to the left or right). === Reserved group tokens === Some of the tokens in the file or foldername of targets are linked to values that variables of the human can have. Such variables are for example age, weight, muscle, gender. This table lists all the reserved tokens, and the variables they belong to. Reserved token (value) Variable female,male gender baby, child, young, old age african, caucasian, asian race minmuscle, averagemuscle, maxmuscle muscle minweight, averageweight, maxweight weight minheight, averageheight, maxheight height mincup, averagecup, maxcup breastsize minfirmness, averagefirmness, maxfirmness breastfirmness uncommonproportions, regularproportions, idealproportions bodyproportion Note that it is not a good idea to use simply “max” or “min” as a reserved token name, because they need to be unique (otherwise it would not be possible to determine whether they are a minimum for, for example, weight or height). These reserved tokens are declared in the lib/targets.py module. The variable can be set and queried on the human object, for example human.getAge(), human.setMuscle(0.7), human.getProportion(). The reserved tokens are NOT included in the group name, so you should at least include some other, non-reserved tokens in the file or folder names to assign your target to some meaningful group. The inclusion of these reserved tokens in your target names or paths makes it convenient to create macro modifiers. === Macro targets and modifiers === Macro modifiers are modifiers whose effect (the combination of targets they apply on the human) is influenced by macro variables set on the human (eg. human.set/getAge()). Therefore, macro modifiers often control a large set of targets (20 or even more). It’s also common for multiple modifiers to control exactly the same set of targets, for example the standard age/gender/race sliders all control the set of targets in the ‘macrodetails’ group. Each slider modifies a different variable (eg. human.setAge()) controlling the set of targets, and then reapplies a combination of the same set of targets on the human. === Macro modifier dependencies === There are other macro modifiers that can also depend on the same variables age, gender, race that is controlled by the main macro modifiers, as discussed above. For example the macro modifiers that influence the weight and muscle mass of the human, controls the targets group “macrodetails-universal”, the universal token is added by prepending “universal-” to all the file names of related targets, which all reside in the folder “macrodetails” (thus macrodetails-universal ends up being the group name). They could have been included all in the “macrodetails” group, but are kept separate for performance reasons, so that the “macrodetails” group of targets (which already contains some 40 targets or so) can be applied in realtime while moving the slider. Of course a change in the variable that these age/race/gender modifiers control will have an effect on the macrodetails-universal modifiers (because they control targets that depend on age -- their targets include -young- -old- etc. tokens in their filenames). This means there are inter-dependencies between macro modifiers, if one is updated, another one that depends on it should be refreshed. These dependencies can be descibed as follows: one macro modifier controls exactly one macro variable (such as age). It (or rather, the targets it controls) can however depend on multiple macro variables. The trivial case is where a macro modifier only depends on the macro variable that it controls itself. The tracking of these dependencies and deciding which modifiers must be updated when another is changed happens automatically. Dependencies are automatically tracked as soon as you add a modifier to the human (by calling modifier.setHuman(human)). To make this more performant in real-time, the propagation of updates to modifiers is limited while sliders are dragged (see realtimeDependencyUpdates in apps/humanmodifier.py). As you might have understood, creating modifiers that depend on human variables is almost automatic. The only thing you need to do is create some targets that resolve to the same group name, add variations for all the macro variables you want and add the proper reserved tokens to the file or folder name (refer to the left column in the table above), and create a modifier with this group name. Once added to the human, the dependencies are tracked automatically. === Organization of modifiers === We already discussed how we organized targets in groups, to make it easier to connect them to a modifier. Now we will discuss how we can do a similar thing for modifiers. Modifiers provide an easy way to manage targets. They allow reducing many of hundreds of targets to a more manageable number of controllable properties. But even then, we still have about 100 modifiers, which is still quite a lot. Therefore we group them in groups of categories, much like we do in the GUI. This makes it easy to get a grouped overview of all modifiers when using an alternative interface, think of commandline or scripting. The way in which you declare the group and other properties of a modifier determines what target groups it gets its targets from. Modifiers are declared with a group name, some intermediary “target name” and a number of tail tokens (2 or 3 usually, eg min/max). The group of targets controlled by these modifiers is composed as: groupname-targets_name-tail. Macro modifiers are declared with a group name, and a controlled variable. The groupname must be the same groupname of the targets they control. === Declarative modifiers === Instead of hard coding what modifiers you want to instantiate, MakeHuman offers a data-based format to declare what modifiers should be created, and how they should be shown in a user interface with sliders. A full declaration requires three files, all stored in data/modifiers. The first is the declaration of the modifiers (eg. modeling_modifiers.json). This format lists a modifier group name, and all the modifiers with their macro variable (if they are macro modifiers) or target name and 2 or 3 (if they are a modifier with a center point) tail tokens. The second file adds a description to the modifiers declared in the first file. It basically contains a key-value set, referencing the modifier name, and a textual description of what the modifier controls. A modifier name is constructed as follows: group/targets_name-all|the|tails and for a macro modifier: group/variable The third file defines how these modifiers should be shown in the user interface as sliders. It lists a set of categories, and the sliders to show in them, and how their values have to be saved in a mhm file (mainly a feature for legacy compatibility). === Your own plugin with modifiers, sliders and targets === Using the declarative data format described in the section above, it’s really simple. Have a look at the plugin plugins/0_modeling_0_modifiers.py. Notice it’s barely 5 lines of code. Creating your own modeling plugin is as simple as that, pointing it to your own modifier data files. === Binary targets === Because loading these ASCII target files, and iterating all target files and folders can be slow (especially on windows) in build versions, we compile all targets in the data/targets system folder into a single binary file, that furthermore acts exactly the same as multiple target files. The binary targets file is stored in the system data/ folder and is called targets.npz, it is created by running the compile_targets.py script, which is also automatically run in the build_prepare.py build routine. The file structure of the targets files is maintained in this binary file so that targets can be loaded from it in the same way as you would do with regular files. A change in the .target files, or newly added target files allow a recompilation of the targets npz file before the change is applied. 18d17e0ad5b1da1ab85303a217e326bf006860ef Terminology 0 161 539 538 2015-10-10T18:40:54Z Robbaer 12 /* Texture */ wikitext text/x-wiki This is an attempt to make a small dictionary/glossary to introduce terms commonly used on the forums. It is still very much a work in progres. == Terms specific to MakeHuman == To be written. === Base mesh === To be written. === Target === To be written. === Modifier === To be written. === Skin === To be written. === Nightly / Nightly build === To be written. === Hg / Bitbucket / Mercurial === To be written. === Package === To be written. === Build === To be written. === MH Blender Ttools === To be written. == General graphics-related terms == === Vertex / Vertices === A vertex is a single point in 3D space designated by a set of coordinates typically designated, by x, y, and z values relative to an origin designated with the spacial coordinates (0, 0, 0). Interpretation of a vertexes coordinates depend on the orientation of the coordinate system. In MakeHuman, +Y is up in the viewport, +x is is the right side of the viewport, and +z is out of the screen [Note: verify this orientation]. Vertices are the plural form of vertex. === Face === A face is a plane or surface in 3D space described by connecting three or more vertices. A face that is created by only three vertices is called a "tri" and is strictly planar. A face created by connecting 4 vertices is called a "quad" and need not represent a true, flat planar surface. Faces in MakeHuman are "quads" by design, MakeClothes requires that all faces be quads or this MakeHuman tool will fail. Faces created by more than 5 vertices are sometimes called "ngons". Faces can be "one-surfaced' (either side) or "two-surfaced', and the way light interacts with the surface of a face depends on how the "surface normals" are defined. === Edge === An edge is a line connecting exactly two vertices. Edges that connect a series of vertices as a path of polygon edges is called an "edge loop". A path of polygon edges that are connected in sequence by their shared faces is called an edge ring. === Mesh === A mesh is a collection of vertices, edges, and faces connected together to form a virtual 3D object. === Normal === A normal is vector describing the direction that is othrogonal (at 90 degrees) to a surface. The normal direction is often described by a "normal map" which can have a finer resolution than a single face. This is done by using the value (magnitude) of individual pixels or pixel color channels in a bitmap image to describe the normal direction. Normals become importantin 3D graphics to describe how light reflects off objects in a virtual world. === UV / UV unwrap / UV mapping === These terms relate to the process of flattening the surface of a 3d object so it can be laid out on a 2d image, a bit like a sewing pattern. "UV" is not an acronym. U and V is how you name axes on the resulting 2d surface, instead of X/Y/Z. When someone sloppily just say "UV" they most likely mean a UV mapping. See https://en.wikipedia.org/wiki/UV_mapping. === Texture === The term texture refers to a mechanism for describing surface characteristics of a 3D object. A texture is only one component of a "material". Textures are typically of one of two types. The most common textures in MakeHuman are "bitmap images" used to represent skin or the color of clothing. The other type of texture is a so-called "procedural texture" which is defined by a mathematical function for altering light-material interactions. These procedural textures are uncommon in MakeHuman. === Seam === A seam is one or more edges, typically end-to-end with each other, that define how a three dimensional mesh can be split to flatten it onto a planar surface. Seams are used when creating a "UV map" for a mesh. The need to create a UV map comes from a desire to create a mapping of the pixels in a bitmap texture to the faces of a 3D mesh. Seams created manually allow this mapping to be created in a manner that allows discontinuities in the image to be hidden on the surface of the intact 3D object (e.g., human, hair, or clothing) === Bump map === Bump mapping is a processing of defining the bumps and wrinkles on the surface of a 3D mesh. It typically is done using a bitmap image to include the needed information. Texture mapping, displacement mapping, normal mapping, height mapping, etc. are either forms of, or closely related to "bump mapping". == File formats == === Obj file / Wavefront === To be written. === Blend === To be written. === Wavefront === To be written. === FBX === To be written. === MHX === To be written. c3990506af0b6abcd432a051d93f1aad14cbde72 538 537 2015-10-10T18:37:03Z Robbaer 12 /* Mesh */ wikitext text/x-wiki This is an attempt to make a small dictionary/glossary to introduce terms commonly used on the forums. It is still very much a work in progres. == Terms specific to MakeHuman == To be written. === Base mesh === To be written. === Target === To be written. === Modifier === To be written. === Skin === To be written. === Nightly / Nightly build === To be written. === Hg / Bitbucket / Mercurial === To be written. === Package === To be written. === Build === To be written. === MH Blender Ttools === To be written. == General graphics-related terms == === Vertex / Vertices === A vertex is a single point in 3D space designated by a set of coordinates typically designated, by x, y, and z values relative to an origin designated with the spacial coordinates (0, 0, 0). Interpretation of a vertexes coordinates depend on the orientation of the coordinate system. In MakeHuman, +Y is up in the viewport, +x is is the right side of the viewport, and +z is out of the screen [Note: verify this orientation]. Vertices are the plural form of vertex. === Face === A face is a plane or surface in 3D space described by connecting three or more vertices. A face that is created by only three vertices is called a "tri" and is strictly planar. A face created by connecting 4 vertices is called a "quad" and need not represent a true, flat planar surface. Faces in MakeHuman are "quads" by design, MakeClothes requires that all faces be quads or this MakeHuman tool will fail. Faces created by more than 5 vertices are sometimes called "ngons". Faces can be "one-surfaced' (either side) or "two-surfaced', and the way light interacts with the surface of a face depends on how the "surface normals" are defined. === Edge === An edge is a line connecting exactly two vertices. Edges that connect a series of vertices as a path of polygon edges is called an "edge loop". A path of polygon edges that are connected in sequence by their shared faces is called an edge ring. === Mesh === A mesh is a collection of vertices, edges, and faces connected together to form a virtual 3D object. === Normal === A normal is vector describing the direction that is othrogonal (at 90 degrees) to a surface. The normal direction is often described by a "normal map" which can have a finer resolution than a single face. This is done by using the value (magnitude) of individual pixels or pixel color channels in a bitmap image to describe the normal direction. Normals become importantin 3D graphics to describe how light reflects off objects in a virtual world. === UV / UV unwrap / UV mapping === These terms relate to the process of flattening the surface of a 3d object so it can be laid out on a 2d image, a bit like a sewing pattern. "UV" is not an acronym. U and V is how you name axes on the resulting 2d surface, instead of X/Y/Z. When someone sloppily just say "UV" they most likely mean a UV mapping. See https://en.wikipedia.org/wiki/UV_mapping. === Texture === The term texture refers to mechanism for describing surface characteristics of a 3D object. A texture is only one component of a "material". Textures are typically of one of two types. The most common textures in MakeHuman are "bitmap images" used to represent skin or the color of clothing. The other type of texture is a so-called "procedural texture which is defined by a mathematical way of dealing with light. These procedural textures are uncommon in MakeHuman. === Seam === A seam is one or more edges, typically end-to-end with each other, that define how a three dimensional mesh can be split to flatten it onto a planar surface. Seams are used when creating a "UV map" for a mesh. The need to create a UV map comes from a desire to create a mapping of the pixels in a bitmap texture to the faces of a 3D mesh. Seams created manually allow this mapping to be created in a manner that allows discontinuities in the image to be hidden on the surface of the intact 3D object (e.g., human, hair, or clothing) === Bump map === Bump mapping is a processing of defining the bumps and wrinkles on the surface of a 3D mesh. It typically is done using a bitmap image to include the needed information. Texture mapping, displacement mapping, normal mapping, height mapping, etc. are either forms of, or closely related to "bump mapping". == File formats == === Obj file / Wavefront === To be written. === Blend === To be written. === Wavefront === To be written. === FBX === To be written. === MHX === To be written. 2af55f81dadc7e45b1d3a6568efb6dac7a4f199a 537 529 2015-10-10T18:36:22Z Robbaer 12 /* Face */ wikitext text/x-wiki This is an attempt to make a small dictionary/glossary to introduce terms commonly used on the forums. It is still very much a work in progres. == Terms specific to MakeHuman == To be written. === Base mesh === To be written. === Target === To be written. === Modifier === To be written. === Skin === To be written. === Nightly / Nightly build === To be written. === Hg / Bitbucket / Mercurial === To be written. === Package === To be written. === Build === To be written. === MH Blender Ttools === To be written. == General graphics-related terms == === Vertex / Vertices === A vertex is a single point in 3D space designated by a set of coordinates typically designated, by x, y, and z values relative to an origin designated with the spacial coordinates (0, 0, 0). Interpretation of a vertexes coordinates depend on the orientation of the coordinate system. In MakeHuman, +Y is up in the viewport, +x is is the right side of the viewport, and +z is out of the screen [Note: verify this orientation]. Vertices are the plural form of vertex. === Face === A face is a plane or surface in 3D space described by connecting three or more vertices. A face that is created by only three vertices is called a "tri" and is strictly planar. A face created by connecting 4 vertices is called a "quad" and need not represent a true, flat planar surface. Faces in MakeHuman are "quads" by design, MakeClothes requires that all faces be quads or this MakeHuman tool will fail. Faces created by more than 5 vertices are sometimes called "ngons". Faces can be "one-surfaced' (either side) or "two-surfaced', and the way light interacts with the surface of a face depends on how the "surface normals" are defined. === Edge === An edge is a line connecting exactly two vertices. Edges that connect a series of vertices as a path of polygon edges is called an "edge loop". A path of polygon edges that are connected in sequence by their shared faces is called an edge ring. === Mesh === A mesh is a collection of vertices, edges, and faces connected together to for a virtual 3D object. === Normal === A normal is vector describing the direction that is othrogonal (at 90 degrees) to a surface. The normal direction is often described by a "normal map" which can have a finer resolution than a single face. This is done by using the value (magnitude) of individual pixels or pixel color channels in a bitmap image to describe the normal direction. Normals become importantin 3D graphics to describe how light reflects off objects in a virtual world. === UV / UV unwrap / UV mapping === These terms relate to the process of flattening the surface of a 3d object so it can be laid out on a 2d image, a bit like a sewing pattern. "UV" is not an acronym. U and V is how you name axes on the resulting 2d surface, instead of X/Y/Z. When someone sloppily just say "UV" they most likely mean a UV mapping. See https://en.wikipedia.org/wiki/UV_mapping. === Texture === The term texture refers to mechanism for describing surface characteristics of a 3D object. A texture is only one component of a "material". Textures are typically of one of two types. The most common textures in MakeHuman are "bitmap images" used to represent skin or the color of clothing. The other type of texture is a so-called "procedural texture which is defined by a mathematical way of dealing with light. These procedural textures are uncommon in MakeHuman. === Seam === A seam is one or more edges, typically end-to-end with each other, that define how a three dimensional mesh can be split to flatten it onto a planar surface. Seams are used when creating a "UV map" for a mesh. The need to create a UV map comes from a desire to create a mapping of the pixels in a bitmap texture to the faces of a 3D mesh. Seams created manually allow this mapping to be created in a manner that allows discontinuities in the image to be hidden on the surface of the intact 3D object (e.g., human, hair, or clothing) === Bump map === Bump mapping is a processing of defining the bumps and wrinkles on the surface of a 3D mesh. It typically is done using a bitmap image to include the needed information. Texture mapping, displacement mapping, normal mapping, height mapping, etc. are either forms of, or closely related to "bump mapping". == File formats == === Obj file / Wavefront === To be written. === Blend === To be written. === Wavefront === To be written. === FBX === To be written. === MHX === To be written. e7c19357e53526d7368ab53857c6a53a0b64a3bb 529 528 2015-09-11T02:03:54Z Robbaer 12 /* Bump map */ wikitext text/x-wiki This is an attempt to make a small dictionary/glossary to introduce terms commonly used on the forums. It is still very much a work in progres. == Terms specific to MakeHuman == To be written. === Base mesh === To be written. === Target === To be written. === Modifier === To be written. === Skin === To be written. === Nightly / Nightly build === To be written. === Hg / Bitbucket / Mercurial === To be written. === Package === To be written. === Build === To be written. === MH Blender Ttools === To be written. == General graphics-related terms == === Vertex / Vertices === A vertex is a single point in 3D space designated by a set of coordinates typically designated, by x, y, and z values relative to an origin designated with the spacial coordinates (0, 0, 0). Interpretation of a vertexes coordinates depend on the orientation of the coordinate system. In MakeHuman, +Y is up in the viewport, +x is is the right side of the viewport, and +z is out of the screen [Note: verify this orientation]. Vertices are the plural form of vertex. === Face === A face is a plane or surface in 3D space described by connecting three or more vertices. A face that is created by only three vertices is called a "tri" and is strictly planar. A face created by connecting 4 vertices is called a "quad" and need not represent a true, flat planar surface. Faces in MakeHuman are "quads" by design, MakeClothes requires that all faces be quads or this MakeHuman tool will fail. Faces created by more than 5 vertices are sometimes "ngons". Faces can be "one-surfaced' (either side) or "two-surfaced' and the way light interacts with the surface of a face depends on how the "surface normals" are defined. === Edge === An edge is a line connecting exactly two vertices. Edges that connect a series of vertices as a path of polygon edges is called an "edge loop". A path of polygon edges that are connected in sequence by their shared faces is called an edge ring. === Mesh === A mesh is a collection of vertices, edges, and faces connected together to for a virtual 3D object. === Normal === A normal is vector describing the direction that is othrogonal (at 90 degrees) to a surface. The normal direction is often described by a "normal map" which can have a finer resolution than a single face. This is done by using the value (magnitude) of individual pixels or pixel color channels in a bitmap image to describe the normal direction. Normals become importantin 3D graphics to describe how light reflects off objects in a virtual world. === UV / UV unwrap / UV mapping === These terms relate to the process of flattening the surface of a 3d object so it can be laid out on a 2d image, a bit like a sewing pattern. "UV" is not an acronym. U and V is how you name axes on the resulting 2d surface, instead of X/Y/Z. When someone sloppily just say "UV" they most likely mean a UV mapping. See https://en.wikipedia.org/wiki/UV_mapping. === Texture === The term texture refers to mechanism for describing surface characteristics of a 3D object. A texture is only one component of a "material". Textures are typically of one of two types. The most common textures in MakeHuman are "bitmap images" used to represent skin or the color of clothing. The other type of texture is a so-called "procedural texture which is defined by a mathematical way of dealing with light. These procedural textures are uncommon in MakeHuman. === Seam === A seam is one or more edges, typically end-to-end with each other, that define how a three dimensional mesh can be split to flatten it onto a planar surface. Seams are used when creating a "UV map" for a mesh. The need to create a UV map comes from a desire to create a mapping of the pixels in a bitmap texture to the faces of a 3D mesh. Seams created manually allow this mapping to be created in a manner that allows discontinuities in the image to be hidden on the surface of the intact 3D object (e.g., human, hair, or clothing) === Bump map === Bump mapping is a processing of defining the bumps and wrinkles on the surface of a 3D mesh. It typically is done using a bitmap image to include the needed information. Texture mapping, displacement mapping, normal mapping, height mapping, etc. are either forms of, or closely related to "bump mapping". == File formats == === Obj file / Wavefront === To be written. === Blend === To be written. === Wavefront === To be written. === FBX === To be written. === MHX === To be written. 2df690bcad0778b3b07a7a667191702520c0b040 528 527 2015-09-11T01:58:14Z Robbaer 12 /* Seam */ wikitext text/x-wiki This is an attempt to make a small dictionary/glossary to introduce terms commonly used on the forums. It is still very much a work in progres. == Terms specific to MakeHuman == To be written. === Base mesh === To be written. === Target === To be written. === Modifier === To be written. === Skin === To be written. === Nightly / Nightly build === To be written. === Hg / Bitbucket / Mercurial === To be written. === Package === To be written. === Build === To be written. === MH Blender Ttools === To be written. == General graphics-related terms == === Vertex / Vertices === A vertex is a single point in 3D space designated by a set of coordinates typically designated, by x, y, and z values relative to an origin designated with the spacial coordinates (0, 0, 0). Interpretation of a vertexes coordinates depend on the orientation of the coordinate system. In MakeHuman, +Y is up in the viewport, +x is is the right side of the viewport, and +z is out of the screen [Note: verify this orientation]. Vertices are the plural form of vertex. === Face === A face is a plane or surface in 3D space described by connecting three or more vertices. A face that is created by only three vertices is called a "tri" and is strictly planar. A face created by connecting 4 vertices is called a "quad" and need not represent a true, flat planar surface. Faces in MakeHuman are "quads" by design, MakeClothes requires that all faces be quads or this MakeHuman tool will fail. Faces created by more than 5 vertices are sometimes "ngons". Faces can be "one-surfaced' (either side) or "two-surfaced' and the way light interacts with the surface of a face depends on how the "surface normals" are defined. === Edge === An edge is a line connecting exactly two vertices. Edges that connect a series of vertices as a path of polygon edges is called an "edge loop". A path of polygon edges that are connected in sequence by their shared faces is called an edge ring. === Mesh === A mesh is a collection of vertices, edges, and faces connected together to for a virtual 3D object. === Normal === A normal is vector describing the direction that is othrogonal (at 90 degrees) to a surface. The normal direction is often described by a "normal map" which can have a finer resolution than a single face. This is done by using the value (magnitude) of individual pixels or pixel color channels in a bitmap image to describe the normal direction. Normals become importantin 3D graphics to describe how light reflects off objects in a virtual world. === UV / UV unwrap / UV mapping === These terms relate to the process of flattening the surface of a 3d object so it can be laid out on a 2d image, a bit like a sewing pattern. "UV" is not an acronym. U and V is how you name axes on the resulting 2d surface, instead of X/Y/Z. When someone sloppily just say "UV" they most likely mean a UV mapping. See https://en.wikipedia.org/wiki/UV_mapping. === Texture === The term texture refers to mechanism for describing surface characteristics of a 3D object. A texture is only one component of a "material". Textures are typically of one of two types. The most common textures in MakeHuman are "bitmap images" used to represent skin or the color of clothing. The other type of texture is a so-called "procedural texture which is defined by a mathematical way of dealing with light. These procedural textures are uncommon in MakeHuman. === Seam === A seam is one or more edges, typically end-to-end with each other, that define how a three dimensional mesh can be split to flatten it onto a planar surface. Seams are used when creating a "UV map" for a mesh. The need to create a UV map comes from a desire to create a mapping of the pixels in a bitmap texture to the faces of a 3D mesh. Seams created manually allow this mapping to be created in a manner that allows discontinuities in the image to be hidden on the surface of the intact 3D object (e.g., human, hair, or clothing) === Bump map === To be written. == File formats == === Obj file / Wavefront === To be written. === Blend === To be written. === Wavefront === To be written. === FBX === To be written. === MHX === To be written. c4e989e84efefeddc406e4a1564a741a422a1c03 527 402 2015-09-11T01:49:52Z Robbaer 12 wikitext text/x-wiki This is an attempt to make a small dictionary/glossary to introduce terms commonly used on the forums. It is still very much a work in progres. == Terms specific to MakeHuman == To be written. === Base mesh === To be written. === Target === To be written. === Modifier === To be written. === Skin === To be written. === Nightly / Nightly build === To be written. === Hg / Bitbucket / Mercurial === To be written. === Package === To be written. === Build === To be written. === MH Blender Ttools === To be written. == General graphics-related terms == === Vertex / Vertices === A vertex is a single point in 3D space designated by a set of coordinates typically designated, by x, y, and z values relative to an origin designated with the spacial coordinates (0, 0, 0). Interpretation of a vertexes coordinates depend on the orientation of the coordinate system. In MakeHuman, +Y is up in the viewport, +x is is the right side of the viewport, and +z is out of the screen [Note: verify this orientation]. Vertices are the plural form of vertex. === Face === A face is a plane or surface in 3D space described by connecting three or more vertices. A face that is created by only three vertices is called a "tri" and is strictly planar. A face created by connecting 4 vertices is called a "quad" and need not represent a true, flat planar surface. Faces in MakeHuman are "quads" by design, MakeClothes requires that all faces be quads or this MakeHuman tool will fail. Faces created by more than 5 vertices are sometimes "ngons". Faces can be "one-surfaced' (either side) or "two-surfaced' and the way light interacts with the surface of a face depends on how the "surface normals" are defined. === Edge === An edge is a line connecting exactly two vertices. Edges that connect a series of vertices as a path of polygon edges is called an "edge loop". A path of polygon edges that are connected in sequence by their shared faces is called an edge ring. === Mesh === A mesh is a collection of vertices, edges, and faces connected together to for a virtual 3D object. === Normal === A normal is vector describing the direction that is othrogonal (at 90 degrees) to a surface. The normal direction is often described by a "normal map" which can have a finer resolution than a single face. This is done by using the value (magnitude) of individual pixels or pixel color channels in a bitmap image to describe the normal direction. Normals become importantin 3D graphics to describe how light reflects off objects in a virtual world. === UV / UV unwrap / UV mapping === These terms relate to the process of flattening the surface of a 3d object so it can be laid out on a 2d image, a bit like a sewing pattern. "UV" is not an acronym. U and V is how you name axes on the resulting 2d surface, instead of X/Y/Z. When someone sloppily just say "UV" they most likely mean a UV mapping. See https://en.wikipedia.org/wiki/UV_mapping. === Texture === The term texture refers to mechanism for describing surface characteristics of a 3D object. A texture is only one component of a "material". Textures are typically of one of two types. The most common textures in MakeHuman are "bitmap images" used to represent skin or the color of clothing. The other type of texture is a so-called "procedural texture which is defined by a mathematical way of dealing with light. These procedural textures are uncommon in MakeHuman. === Seam === To be written. === Bump map === To be written. == File formats == === Obj file / Wavefront === To be written. === Blend === To be written. === Wavefront === To be written. === FBX === To be written. === MHX === To be written. bd55d7f4f639916cd5dbcb70b621b830ae562e29 402 401 2015-08-15T15:09:28Z Joepal 14 wikitext text/x-wiki This is an attempt to make a small dictionary/glossary to introduce terms commonly used on the forums. It is still very much a work in progres. == Terms specific to MakeHuman == To be written. === Base mesh === To be written. === Target === To be written. === Modifier === To be written. === Skin === To be written. === Nighly / Nightly build === To be written. === Hg / Bitbucket / Mercurial === To be written. === Package === To be written. === Build === To be written. === Blendertools === To be written. == General graphics-related terms == === Vertex / Vertices === To be written. === Face === To be written. === Edge === To be written. === Mesh === To be written. === Normal === To be written. === UV / UV unwrap / UV mapping === These terms relate to the process of flattening the surface of a 3d object so it can be laid out on a 2d image, a bit like a sewing pattern. "UV" is not an acronym. U and V is how you name axes on the resulting 2d surface, instead of X/Y/Z. When someone sloppily just say "UV" they most likely mean an UV mapping. See https://en.wikipedia.org/wiki/UV_mapping. === Texture === To be written. === Seam === To be written. === Bump map === To be written. == File formats == === Obj file / Wavefront === To be written. === Blend === To be written. === Wavefront === To be written. === FBX === To be written. === MHX === To be written. 2acfc16e2fe0eb9347c9f209d1bf543f9f6640ee 401 2015-08-15T15:00:22Z Joepal 14 Created page with "This is an attempt to make a small dictionary/glossary to introduce terms commonly used on the forums. It is still very much a work in progres. == Terms specific to MakeHuman..." wikitext text/x-wiki This is an attempt to make a small dictionary/glossary to introduce terms commonly used on the forums. It is still very much a work in progres. == Terms specific to MakeHuman == Base mesh Target Modifier Skin Nighly / Nightly build Hg / Bitbucket / Mercurial Package Build Blendertools == General graphics-related terms == Vertex / Vertices Face Edge Mesh Normal UV / UV unwrap Texture Seam Bump map == File formats == Obj file / Wavefront Blend Wavefront FBX MHX 8fe51b6c363e4d487365d44bb57d59d3d06da365 Test 0 128 358 357 2015-08-07T12:13:51Z Joepal 14 wikitext text/x-wiki Create page Test again cd121492f84737dd2fd8d3a873a92dc3a606a977 357 356 2015-08-07T12:09:51Z Joepal 14 wikitext text/x-wiki Create page Test 17c727f32e62d322cbb53fcefe27c5e4b5d7ad49 356 2015-08-07T12:00:36Z Joepal 14 Created page with "Create page" wikitext text/x-wiki Create page 9261a3c76b66ba3e89f5b269a4a3fed449258074 Video:Blender 0 56 134 2015-07-12T13:38:17Z Joepal 14 Created page with "These are videos specific for usage of MakeHuman stuff in Blender == Cycles == Rendering Makehuman Character In Cycles With Cloth Masking {{#ev:youtube|dBQxWQvauW4}}" wikitext text/x-wiki These are videos specific for usage of MakeHuman stuff in Blender == Cycles == Rendering Makehuman Character In Cycles With Cloth Masking {{#ev:youtube|dBQxWQvauW4}} 71136c6b4265a46d2ca03350a8ef06ac4dc63cf2 Video:Blender tools 0 52 604 541 2016-02-26T21:45:48Z Joepal 14 wikitext text/x-wiki == Targets == Introductory video on MakeTarget (official) {{#ev:youtube|X13k7H3dNHo}} VScorpianC's more thorough tutorial on MakeTarget {{#ev:youtube|CqH_Ec5NKNE}} == Clothes == Make Clothes that Fit 3D Models with Blender Addon (by VscorpianC) {{#ev:youtube|eskfzfU4NsI}} Create cloth (basic vest), using sewing drafts, part 1 (grinsegold) {{#ev:youtube|loTlzhPwoqY}} Create cloth (basic vest), using sewing drafts, part 2 (grinsegold) {{#ev:youtube|1gZ62vjiZ6A}} == Animation and BVH == Easy Walk Animation with Blender and Makehuman (by Steven Whitfield) {{#ev:youtube|2hylWVut7z0}} How to make a pose for MH using Blender (by Rick Murphy) {{#ev:youtube|MQBtZgWyrI4}} 648a6dda338185ff317f2720181c13b7fdb82460 541 404 2015-10-22T17:25:49Z Lukems-br 22 /* Animation and BVH */ wikitext text/x-wiki == Targets == Introductory video on MakeTarget (official) {{#ev:youtube|X13k7H3dNHo}} VScorpianC's more thorough tutorial on MakeTarget {{#ev:youtube|CqH_Ec5NKNE}} == Clothes == Make Clothes that Fit 3D Models with Blender Addon (by VscorpianC) {{#ev:youtube|eskfzfU4NsI}} Create cloth (basic vest), using sewing drafts, part 1 (grinsegold) {{#ev:youtube|loTlzhPwoqY}} Create cloth (basic vest), using sewing drafts, part 2 (grinsegold) {{#ev:youtube|1gZ62vjiZ6A}} == Animation and BVH == Easy Walk Animation with Blender and Makehuman (by Steven Whitfield) {{#ev:youtube|2hylWVut7z0}} ca860b92cf8aa7a48c6a9c3fb0c44cf902fea750 404 311 2015-08-15T16:43:12Z Joepal 14 /* Targets */ wikitext text/x-wiki == Targets == Introductory video on MakeTarget (official) {{#ev:youtube|X13k7H3dNHo}} VScorpianC's more thorough tutorial on MakeTarget {{#ev:youtube|CqH_Ec5NKNE}} == Clothes == Make Clothes that Fit 3D Models with Blender Addon (by VscorpianC) {{#ev:youtube|eskfzfU4NsI}} Create cloth (basic vest), using sewing drafts, part 1 (grinsegold) {{#ev:youtube|loTlzhPwoqY}} Create cloth (basic vest), using sewing drafts, part 2 (grinsegold) {{#ev:youtube|1gZ62vjiZ6A}} == Animation and BVH == (to be filled) 055430a11f762d23f3696ca84792ecd67b4ee026 311 310 2015-07-28T16:42:06Z Joepal 14 /* Clothes */ wikitext text/x-wiki == Targets == Introductory video on MakeTarget {{#ev:youtube|X13k7H3dNHo}} == Clothes == Make Clothes that Fit 3D Models with Blender Addon (by VscorpianC) {{#ev:youtube|eskfzfU4NsI}} Create cloth (basic vest), using sewing drafts, part 1 (grinsegold) {{#ev:youtube|loTlzhPwoqY}} Create cloth (basic vest), using sewing drafts, part 2 (grinsegold) {{#ev:youtube|1gZ62vjiZ6A}} == Animation and BVH == (to be filled) b8c2d59088bf3c4dc8311970789626c3195a95d2 310 129 2015-07-28T16:37:18Z Joepal 14 /* Clothes */ wikitext text/x-wiki == Targets == Introductory video on MakeTarget {{#ev:youtube|X13k7H3dNHo}} == Clothes == Make Clothes that Fit 3D Models with Blender Addon (by VscorpianC) {{#ev:youtube|eskfzfU4NsI}} Create cloth (basic vest), using sewing drafts (grinsegold) {{#ev:youtube|loTlzhPwoqY}} == Animation and BVH == (to be filled) de8b09775850daf6aab9fb3ddee41ef8884b3130 129 121 2015-07-12T13:32:11Z Joepal 14 wikitext text/x-wiki == Targets == Introductory video on MakeTarget {{#ev:youtube|X13k7H3dNHo}} == Clothes == Make Clothes that Fit 3D Models with Blender Addon (by VscorpianC) {{#ev:youtube|eskfzfU4NsI}} == Animation and BVH == (to be filled) c5b6334edf64eda96dd981438760f1d4516bcb89 121 2015-07-12T13:12:48Z Joepal 14 Created page with "== Targets == Introductory video on MakeTarget {{#ev:youtube|X13k7H3dNHo}} == Clothes == (to be filled) == Animation and BVH == (to be filled)" wikitext text/x-wiki == Targets == Introductory video on MakeTarget {{#ev:youtube|X13k7H3dNHo}} == Clothes == (to be filled) == Animation and BVH == (to be filled) feddd16b216e6179d9b2b08e2ec35a2718aeee4e Video:Index 0 51 210 133 2015-07-25T14:34:12Z Joepal 14 wikitext text/x-wiki These are video tutorial categories. The videos are about MakeHuman or subjects related to MakeHuman. Note that most of these videos are not made by the MakeHuman crew, and that the MakeHuman crew gives no guarrantees concerning how up to date or accurate the videos are. == MakeHuman in general == * [[Video:Overview|Overview]]: videos about MakeHuman in general (such as introduction videos, and tutorials on the interface). * [[Video:Installation|Installation]]: videos on how to install MakeHuman and related tools * [[Video:Using and Installing Assets|Using and installing third-part assets]]: Videos on how to install and use third-part assets in MakeHuman * [[Video:Blender tools|MakeHuman Blender tools]]: videos related to MakeTarget, MakeClothes and MakeWalk. These also includes videos on how to produce assets for MakeHuman. == MakeHuman vs external applications == * [[Video:Blender|Blender]]: Videos on how to use assets from MakeHuman in Blender (outside what is already covered in the blender tools section) * [[Video:Unity|Unity]]: Videos on how to move and use assets from MakeHuman in Unity 3d. * [[Video:UE|UE]]: Videos on how to move and use assets from MakeHuman in Unreal Engine. * [[Video:OpenSim and Second Life|OpenSim and Second Life]]: Videos on how to move and use assets from MakeHuman in OpenSim and Second Life. == Generic videos on related topics == * [[Video:Modeling|Modeling]]: Videos on character modeling * [[Video:Animation|Animation]]: Videos on character animation b1e46ffc2c14645645f93682a7704dccc5a75321 133 132 2015-07-12T13:36:57Z Joepal 14 /* MakeHuman vs external applications */ wikitext text/x-wiki These are video tutorial categories. The videos are about MakeHuman or subjects related to MakeHuman. Note that most of these videos are not made by the MakeHuman crew, and that the MakeHuman crew gives no guarrantees concerning how up to date or accurate the videos are. == MakeHuman in general == * [[Video:Overview|Overview]]: videos about MakeHuman in general (such as introduction videos, and tutorials on the interface). * [[Video:Installation|Installation]]: videos on how to install MakeHuman and related tools * [[Video:Blender tools|MakeHuman Blender tools]]: videos related to MakeTarget, MakeClothes and MakeWalk. These also includes videos on how to produce assets for MakeHuman. == MakeHuman vs external applications == * [[Video:Blender|Blender]]: Videos on how to use assets from MakeHuman in Blender (outside what is already covered in the blender tools section) * [[Video:Unity|Unity]]: Videos on how to move and use assets from MakeHuman in Unity 3d. * [[Video:UE|UE]]: Videos on how to move and use assets from MakeHuman in Unreal Engine. * [[Video:OpenSim and Second Life|OpenSim and Second Life]]: Videos on how to move and use assets from MakeHuman in OpenSim and Second Life. == Generic videos on related topics == * [[Video:Modeling|Modeling]]: Videos on character modeling * [[Video:Animation|Animation]]: Videos on character animation 42a0c6e4f314c3fe805c1bbbf6fbdf06c4c14df9 132 126 2015-07-12T13:36:39Z Joepal 14 wikitext text/x-wiki These are video tutorial categories. The videos are about MakeHuman or subjects related to MakeHuman. Note that most of these videos are not made by the MakeHuman crew, and that the MakeHuman crew gives no guarrantees concerning how up to date or accurate the videos are. == MakeHuman in general == * [[Video:Overview|Overview]]: videos about MakeHuman in general (such as introduction videos, and tutorials on the interface). * [[Video:Installation|Installation]]: videos on how to install MakeHuman and related tools * [[Video:Blender tools|MakeHuman Blender tools]]: videos related to MakeTarget, MakeClothes and MakeWalk. These also includes videos on how to produce assets for MakeHuman. == MakeHuman vs external applications == * [[Video:Blender|Blender]]: Videos on how to move and use assets from MakeHuman in Unity 3d (outside what is already covered in the blender tools section) * [[Video:Unity|Unity]]: Videos on how to move and use assets from MakeHuman in Unity 3d. * [[Video:UE|UE]]: Videos on how to move and use assets from MakeHuman in Unreal Engine. * [[Video:OpenSim and Second Life|OpenSim and Second Life]]: Videos on how to move and use assets from MakeHuman in OpenSim and Second Life. == Generic videos on related topics == * [[Video:Modeling|Modeling]]: Videos on character modeling * [[Video:Animation|Animation]]: Videos on character animation f59b5103a787242f6252ccc46ef3f191c55a8aef 126 125 2015-07-12T13:24:12Z Joepal 14 /* Generic videos on related topics */ wikitext text/x-wiki These are video tutorial categories. The videos are about MakeHuman or subjects related to MakeHuman. Note that most of these videos are not made by the MakeHuman crew, and that the MakeHuman crew gives no guarrantees concerning how up to date or accurate the videos are. == MakeHuman in general == * [[Video:Overview|Overview]]: videos about MakeHuman in general (such as introduction videos, and tutorials on the interface). * [[Video:Installation|Installation]]: videos on how to install MakeHuman and related tools * [[Video:Blender tools|MakeHuman Blender tools]]: videos related to MakeTarget, MakeClothes and MakeWalk. These also includes videos on how to produce assets for MakeHuman. == MakeHuman vs external applications == * [[Video:Unity|Unity]]: Videos on how to move and use assets from MakeHuman in Unity 3d. * [[Video:UE|UE]]: Videos on how to move and use assets from MakeHuman in Unreal Engine. * [[Video:OpenSim and Second Life|OpenSim and Second Life]]: Videos on how to move and use assets from MakeHuman in OpenSim and Second Life. == Generic videos on related topics == * [[Video:Modeling|Modeling]]: Videos on character modeling * [[Video:Animation|Animation]]: Videos on character animation 5e6ae3a4f417f8f639821ec35349ecb532797977 125 120 2015-07-12T13:23:53Z Joepal 14 /* MakeHuman vs external applications */ wikitext text/x-wiki These are video tutorial categories. The videos are about MakeHuman or subjects related to MakeHuman. Note that most of these videos are not made by the MakeHuman crew, and that the MakeHuman crew gives no guarrantees concerning how up to date or accurate the videos are. == MakeHuman in general == * [[Video:Overview|Overview]]: videos about MakeHuman in general (such as introduction videos, and tutorials on the interface). * [[Video:Installation|Installation]]: videos on how to install MakeHuman and related tools * [[Video:Blender tools|MakeHuman Blender tools]]: videos related to MakeTarget, MakeClothes and MakeWalk. These also includes videos on how to produce assets for MakeHuman. == MakeHuman vs external applications == * [[Video:Unity|Unity]]: Videos on how to move and use assets from MakeHuman in Unity 3d. * [[Video:UE|UE]]: Videos on how to move and use assets from MakeHuman in Unreal Engine. * [[Video:OpenSim and Second Life|OpenSim and Second Life]]: Videos on how to move and use assets from MakeHuman in OpenSim and Second Life. == Generic videos on related topics == * [[Video:Modeling]]: Videos on character modeling * [[Video:Animation]]: Videos on character animation d00f44bb5c0e795a9ed0fcaef436a1e9549b5058 120 2015-07-12T13:10:43Z Joepal 14 Created page with "These are video tutorial categories. The videos are about MakeHuman or subjects related to MakeHuman. Note that most of these videos are not made by the MakeHuman crew, and t..." wikitext text/x-wiki These are video tutorial categories. The videos are about MakeHuman or subjects related to MakeHuman. Note that most of these videos are not made by the MakeHuman crew, and that the MakeHuman crew gives no guarrantees concerning how up to date or accurate the videos are. == MakeHuman in general == * [[Video:Overview|Overview]]: videos about MakeHuman in general (such as introduction videos, and tutorials on the interface). * [[Video:Installation|Installation]]: videos on how to install MakeHuman and related tools * [[Video:Blender tools|MakeHuman Blender tools]]: videos related to MakeTarget, MakeClothes and MakeWalk. These also includes videos on how to produce assets for MakeHuman. == MakeHuman vs external applications == * [[Video:Unity]]: Videos on how to move and use assets from MakeHuman in Unity 3d. * [[Video:UE]]: Videos on how to move and use assets from MakeHuman in Unreal Engine. * [[Video:OpenSim and Second Life]]: Videos on how to move and use assets from MakeHuman in OpenSim and Second Life. == Generic videos on related topics == * [[Video:Modeling]]: Videos on character modeling * [[Video:Animation]]: Videos on character animation 33c56c429099e8c0f01944b32cfa9792eb6a756a Video:Installation 0 53 1579 1578 2019-03-20T15:36:40Z Joepal 14 Undo revision 1578 by [[Special:Contributions/Joepal|Joepal]] ([[User talk:Joepal|talk]]) wikitext text/x-wiki == Basic installation == Install Make Human and Set up Blender 3D Tools (by VscorpianC) {{#ev:youtube|WiEDGbRnXdE}} == Developer installation == How to make a "full" installation of MakeHuman and related tools. Some links mentioned are outdated. {{#ev:youtube|3CCHGX-6Mtk}} ad155226f3ef8ce1fbb35da8a566fbdf81ad5338 1578 127 2019-03-20T15:36:18Z Joepal 14 /* Basic installation */ wikitext text/x-wiki == Basic installation == Install Make Human and Set up Blender 3D Tools (by VscorpianC) {{#ev:youtube|jRHnJX-TdT4}} == Developer installation == How to make a "full" installation of MakeHuman and related tools. Some links mentioned are outdated. {{#ev:youtube|3CCHGX-6Mtk}} 2f0c933c62b661865783280e038b65039d717718 127 122 2015-07-12T13:27:50Z Joepal 14 wikitext text/x-wiki == Basic installation == Install Make Human and Set up Blender 3D Tools (by VscorpianC) {{#ev:youtube|WiEDGbRnXdE}} == Developer installation == How to make a "full" installation of MakeHuman and related tools. Some links mentioned are outdated. {{#ev:youtube|3CCHGX-6Mtk}} ad155226f3ef8ce1fbb35da8a566fbdf81ad5338 122 2015-07-12T13:14:32Z Joepal 14 Created page with "== Basic installation == (To be filled) == Developer installation == How to make a "full" installation of MakeHuman and related tools. Some links mentioned are outdated. {..." wikitext text/x-wiki == Basic installation == (To be filled) == Developer installation == How to make a "full" installation of MakeHuman and related tools. Some links mentioned are outdated. {{#ev:youtube|3CCHGX-6Mtk}} 497270f7eb7ef2c0bb7a0585c55765e600e81072 Video:Overview 0 55 131 130 2015-07-12T13:34:52Z Joepal 14 /* Specific features */ wikitext text/x-wiki == What is MakeHuman? == (to be filled) == The user interface == Beginners Guide to the User Interface (by VscorpianC) {{#ev:youtube|PeLB63owHFc}} New mouse and camera navigation {{#ev:vimeo|89290170}} == Specific features == Make Human Characters with B.G. Reference Images (by VscorpianC) {{#ev:youtube|y2uOJmySza4}} Alternative mesh topologies {{#ev:vimeo|89291791}} c1b15683d4bfb019dbe92eec4626a82337036b0b 130 128 2015-07-12T13:34:19Z Joepal 14 /* The user interface */ wikitext text/x-wiki == What is MakeHuman? == (to be filled) == The user interface == Beginners Guide to the User Interface (by VscorpianC) {{#ev:youtube|PeLB63owHFc}} New mouse and camera navigation {{#ev:vimeo|89290170}} == Specific features == Make Human Characters with B.G. Reference Images (by VscorpianC) {{#ev:youtube|y2uOJmySza4}} e124c4ad9eaa592b336d3cc77241a3631acd5227 128 2015-07-12T13:31:14Z Joepal 14 Created page with "== What is MakeHuman? == (to be filled) == The user interface == Beginners Guide to the User Interface (by VscorpianC) {{#ev:youtube|PeLB63owHFc}} == Specific features ==..." wikitext text/x-wiki == What is MakeHuman? == (to be filled) == The user interface == Beginners Guide to the User Interface (by VscorpianC) {{#ev:youtube|PeLB63owHFc}} == Specific features == Make Human Characters with B.G. Reference Images (by VscorpianC) {{#ev:youtube|y2uOJmySza4}} 04368791a9931a8e0c11bc50bf49d217dbbffcce Video:Unity 0 54 124 123 2015-07-12T13:22:00Z Joepal 14 wikitext text/x-wiki These are videos on MakeHuman and Unity == Xenosmash games == Xenosmash made a series of videos on moving assets from MakeHuman to Unity. Both the MakeHuman and the Unity versions are somewhat outdated, but the overview is still reasonably relevant. MakeHuman 1.0 Alpha 8 into Unity {{#ev:youtube|F1xvjWc7490}} Importing MakeHuman with Mecanim in Unity 3d {{#ev:youtube|IflzMxdvEtQ}} MakeHuman Mecanim Animations in Unity 3d {{#ev:youtube|4oIoh4x7qH0}} Scripted Mecanim Animations in Unity 3d {{#ev:youtube|HjkFfkHCgCc}} 149a5576ef2c07402e46d7c96da74ca6951aa305 123 2015-07-12T13:21:21Z Joepal 14 Created page with "These are videos on MakeHuman and Unity == Xenosmash games == Xenosmash made a series of videos on moving assets from MakeHuman to Unity. Both the MakeHuman and the Unity ve..." wikitext text/x-wiki These are videos on MakeHuman and Unity == Xenosmash games == Xenosmash made a series of videos on moving assets from MakeHuman to Unity. Both the MakeHuman and the Unity versions are somewhat outdated, but the overview is still reasonably relevant. MakeHuman 1.0 Alpha 8 into Unity {{#ev:youtube|F1xvjWc7490}} Importing MakeHuman with Mecanim in Unity 3d {{#ev:youtube|fWUWdD3Uflw}} MakeHuman Mecanim Animations in Unity 3d {{#ev:youtube|4oIoh4x7qH0}} Scripted Mecanim Animations in Unity 3d {{#ev:youtube|HjkFfkHCgCc}} 0fa76cc688530ed2a5b0a8dc7851bcc64eac7edb Video:Using and Installing Assets 0 89 212 2015-07-25T14:34:47Z Joepal 14 Created page with "== Downloading and installing assets == Targets and clothes: {{#ev:youtube|lQb5JV4-wUc}}" wikitext text/x-wiki == Downloading and installing assets == Targets and clothes: {{#ev:youtube|lQb5JV4-wUc}} 14040a70f10f3acd6233c7ff0079c83c6f6bcd92 Talk:MakeHuman Workflows 1 14 64 63 2015-07-04T17:10:17Z Robbaer 12 wikitext text/x-wiki I have substantial work already on Maya and 3DSMax content, particularly on textures and transparency. These are still to be uploaded as I unravel the Wiki interface. Will need to provide addition information on skeletons. I'm locking edits from non-administrative users for now until an initial draft is complete. Administrative edits welcomed in any form! d1617062c3ee0fcb7be30a0baa3a9133b3082964 63 62 2015-07-04T17:09:31Z Robbaer 12 wikitext text/x-wiki I have substantial work already on Maya and 3DSMax content, particularly on textures and transparency. These are still to be uploaded as I unravel the Wiki interface. Will need to provide addition information on skeletons. Locking edits from non-administrative users for now until an initial draft is complete. Administrative edits welcomed in any form! f72906ac7ceee32b8e24abdfc31daefc102a66e0 62 2015-07-04T17:06:52Z Robbaer 12 Created page with "I have substantial work already on Maya and 3DSMax content, particularly on textures and transparency. Will nee to ptovide addition material on skeletons. Locking from non-a..." wikitext text/x-wiki I have substantial work already on Maya and 3DSMax content, particularly on textures and transparency. Will nee to ptovide addition material on skeletons. Locking from non-administrative editing until an initial draft is complete. Administrative edits welcomed in any form! 3df8f17679dbb39a25dcb8dd9fdca5e57f69de7f Talk:Technical notes on MakeHuman 1 561 1476 2018-08-01T19:05:37Z Brittempig 63 Brain Plus IQ: La pastilla del engaño que usa a CNN wikitext text/x-wiki Está surcando las redes a la velocidad de la luz. Comienza a viralizarse la supuesta noticia de una pastilla a la que se ha llamado “el Viagra del cerebro”. Se presenta en la forma de una noticia de la agencia internacional CNN en español donde se cita a Stephen Hawking diciendo que esta pastilla cambiará el mundo y potenciará nuestra inteligencia, y donde el supuesto jefe del área de Salud de CNN toma la pastilla en mención y apunta día a día su eficacia. 6c452f95fb294d6f5f7ec70d295b974725b9b1f1 User:866-769-8127))))turbotax customer phone number==turbotax tech support number 2 214 612 611 2016-03-07T21:45:23Z Turbotax01 24 Turbotax01 moved page [[User:Turbotax01]] to [[User:866-769-8127))))turbotax customer phone number==turbotax tech support number]] wikitext text/x-wiki )@-: Turbotax Tech Support Phone Number provides USA/CANADA clients. call 866-769-8127 to get all Turbotax account solution. @@Call, *==866.769*8127 Turbotax tech support phone number, 866-769-8127 Turbotax Tech Support Phone Number, Turbotax Help Desk Phone Number, Turbotax tech support number, Turbotax technical support phone number,@@@ Turbotax phone number, Turbotax technical support number, Turbotax support phone number, Turbotax technical support, Turbotax Customer Service Phone Number, Turbotax Customer Service Number, Turbotax Customer Support Phone Number, Turbotax Customer Support Number,@@@@ Turbotax Customer Service Helpline Number, Turbotax Customer Care Number, Turbotax support team phone number, @@@@@ Turbotax help number-Turbotax Helpline Number; Turbotax help phone number-Turbotax Helpline Number, Turbotax Tech Support Toll free Number, Turbotax Support Telephone Number, Turbotax Tech Support Telephone number, Turbotax Tech Support contact number, Turbotax support contact number, Turbotax technical support contact number. Call, Turbotax tech support phone number, Turbotax Tech Support Phone Number, Turbotax Help Desk Phone Number, Turbotax tech support number, Turbotax technical support phone number, Turbotax phone number, Turbotax technical support number, Turbotax support phone number. It is very popular toll free number which provide by Turbotax technical support, Turbotax Customer Service Phone Number, Turbotax Customer Service Number, Turbotax Customer Support Phone Number, Turbotax Customer Support Number, Turbotax Customer Service Helpline Number, Turbotax Customer Care Number, Turbotax support team phone number. Call, Turbotax tech support phone number, Turbotax Tech Support Phone Number, Turbotax Help Desk Phone Number, Turbotax tech support number, Turbotax technical support phone number, Turbotax phone number, Turbotax technical support number, Turbotax support phone number, Turbotax technical support, Turbotax Customer Service Phone Number, Turbotax Customer Service Number, Turbotax Customer Support Phone Number, Turbotax Customer Support Number, Turbotax Customer Service Helpline Number, Turbotax Customer Care Number, Turbotax support team phone number, Turbotax help number-Turbotax Helpline Number; Turbotax help phone number, Turbotax Helpline Number, Turbotax Tech Support Toll free Number, Turbotax Support Telephone Number, Turbotax Tech Support Telephone number, Turbotax Tech Support contact number, Turbotax support contact number, Turbotax technical support contact number, Turbotax pro support phone number, Turbotax PRinter support phone number. Turbotax PRinter customer support phone number 866-769-8127 Turbotax technical help telephone number, Turbotax technical help contact number, Turbotax technical support contact number, Turbotax contact number, Turbotax contact phone number, Turbotax contact telephone number, Turbotax 24 hour contact number, Turbotax customer support contact number, Turbotax customer service contact number, Turbotax official number, Turbotax official contact number, Turbotax contact number, Turbotax toll free number, number for Turbotax support, Turbotax 24/7 support phone number Turbotax 866-769-8127 support phone number,Turbotax 866-769-8127 support phone number,Turbotax 866-769-8127 help phone number, Turbotax 866-769-8127 technical support number.Turbotax 866-769-8127 support number, Turbotax 866-769-8127 phone number, Turbotax 866-769-8127 tech support number, Turbotax 866-769-8127 customer support number, Turbotax 866-769-8127 customer support phone number, Turbotax 866-769-8127 customer service phone number, Turbotax 866-769-8127 PRinter customer service phone number, Turbotax 866-769-8127 support phone number. Help@Call *==866.769*8127/.Turbotax 24/7 support phone number,Turbotax telephone number for support? call 866-769-8127@./Turbotax contact number, Turbotax contact phone number, Turbotax contact telephone number,,telephone number for Turbotax online support,Turbotax official support number,Turbotax official number,Turbotax PRinter official phone number,,,phone number for Turbotax PRinter support,,Turbotax 24/7 support phone number,,Turbotax support number,Turbotax telephone number for support TURBOTAX Toll Free, Intuit@(*==866.769*8127)@ TURBOTAX Tech Support Phone Number provides online solution for all USA/CANADA clients. For any help of query call 866-769-8127 to get all TURBOTAX account solution. @@Call, *==866.769*8127 for all type help by TURBOTAX tech support phone number, Intuit TURBOTAX Tech Support Phone Number, TURBOTAX Help Desk Phone Number, TURBOTAX tech support number, TURBOTAX technical support phone number,@@@ TURBOTAX phone number, TURBOTAX technical support number, TURBOTAX support phone number, TURBOTAX technical support, TURBOTAX Customer Service Phone Number, TURBOTAX Customer Service Number, TURBOTAX Customer Support Phone Number, TURBOTAX Customer Support Number,@@@@ TURBOTAX Customer Service Helpline Number, TURBOTAX Customer Care Number, TURBOTAX support team phone number, @@@@@ TURBOTAX help number-TURBOTAX Helpline Number; TURBOTAX help phone number-TURBOTAX Helpline Number, TURBOTAX Tech Support Toll free Number, TURBOTAX Support Telephone Number, TURBOTAX Tech Support Telephone number, TURBOTAX Tech Support contact number, TURBOTAX support contact number, TURBOTAX technical support contact number. Call, TURBOTAX tech support phone number, Intuit TURBOTAX Tech Support Phone Number, TURBOTAX Help Desk Phone Number, TURBOTAX tech support number, TURBOTAX technical support phone number, TURBOTAX phone number, TURBOTAX technical support number, TURBOTAX support phone number. It is very popular toll free number which provide by TURBOTAX technical support, TURBOTAX Customer Service Phone Number, TURBOTAX Customer Service Number, TURBOTAX Customer Support Phone Number, TURBOTAX Customer Support Number, TURBOTAX Customer Service Helpline Number, TURBOTAX Customer Care Number, TURBOTAX support team phone number. Call, TURBOTAX tech support phone number, Intuit TURBOTAX Tech Support Phone Number, TURBOTAX Help Desk Phone Number, TURBOTAX tech support number, TURBOTAX technical support phone number, TURBOTAX phone number, TURBOTAX technical support number, TURBOTAX support phone number, TURBOTAX technical support, TURBOTAX Customer Service Phone Number, TURBOTAX Customer Service Number, TURBOTAX Customer Support Phone Number, TURBOTAX Customer Support Number, TURBOTAX Customer Service Helpline Number, TURBOTAX Customer Care Number, TURBOTAX support team phone number, TURBOTAX help number-TURBOTAX Helpline Number; TURBOTAX help phone number, TURBOTAX Helpline Number, TURBOTAX Tech Support Toll free Number, TURBOTAX Support Telephone Number, TURBOTAX Tech Support Telephone number, TURBOTAX Tech Support contact number, TURBOTAX support contact number, TURBOTAX technical support contact number, Turbotax pro support phone number, Turbotax PRinter support phone number. Turbotax PRinter customer support phone number Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe 39462f76e53abbac577c75ed3e0279f8c25cf648 611 2016-03-07T21:44:01Z Turbotax01 24 Created page with " )@-: Turbotax Tech Support Phone Number provides USA/CANADA clients. call 866-769-8127 to get all Turbotax account solution. @@Call, *==866.769*8127 Turbotax tech support ph..." wikitext text/x-wiki )@-: Turbotax Tech Support Phone Number provides USA/CANADA clients. call 866-769-8127 to get all Turbotax account solution. @@Call, *==866.769*8127 Turbotax tech support phone number, 866-769-8127 Turbotax Tech Support Phone Number, Turbotax Help Desk Phone Number, Turbotax tech support number, Turbotax technical support phone number,@@@ Turbotax phone number, Turbotax technical support number, Turbotax support phone number, Turbotax technical support, Turbotax Customer Service Phone Number, Turbotax Customer Service Number, Turbotax Customer Support Phone Number, Turbotax Customer Support Number,@@@@ Turbotax Customer Service Helpline Number, Turbotax Customer Care Number, Turbotax support team phone number, @@@@@ Turbotax help number-Turbotax Helpline Number; Turbotax help phone number-Turbotax Helpline Number, Turbotax Tech Support Toll free Number, Turbotax Support Telephone Number, Turbotax Tech Support Telephone number, Turbotax Tech Support contact number, Turbotax support contact number, Turbotax technical support contact number. Call, Turbotax tech support phone number, Turbotax Tech Support Phone Number, Turbotax Help Desk Phone Number, Turbotax tech support number, Turbotax technical support phone number, Turbotax phone number, Turbotax technical support number, Turbotax support phone number. It is very popular toll free number which provide by Turbotax technical support, Turbotax Customer Service Phone Number, Turbotax Customer Service Number, Turbotax Customer Support Phone Number, Turbotax Customer Support Number, Turbotax Customer Service Helpline Number, Turbotax Customer Care Number, Turbotax support team phone number. Call, Turbotax tech support phone number, Turbotax Tech Support Phone Number, Turbotax Help Desk Phone Number, Turbotax tech support number, Turbotax technical support phone number, Turbotax phone number, Turbotax technical support number, Turbotax support phone number, Turbotax technical support, Turbotax Customer Service Phone Number, Turbotax Customer Service Number, Turbotax Customer Support Phone Number, Turbotax Customer Support Number, Turbotax Customer Service Helpline Number, Turbotax Customer Care Number, Turbotax support team phone number, Turbotax help number-Turbotax Helpline Number; Turbotax help phone number, Turbotax Helpline Number, Turbotax Tech Support Toll free Number, Turbotax Support Telephone Number, Turbotax Tech Support Telephone number, Turbotax Tech Support contact number, Turbotax support contact number, Turbotax technical support contact number, Turbotax pro support phone number, Turbotax PRinter support phone number. Turbotax PRinter customer support phone number 866-769-8127 Turbotax technical help telephone number, Turbotax technical help contact number, Turbotax technical support contact number, Turbotax contact number, Turbotax contact phone number, Turbotax contact telephone number, Turbotax 24 hour contact number, Turbotax customer support contact number, Turbotax customer service contact number, Turbotax official number, Turbotax official contact number, Turbotax contact number, Turbotax toll free number, number for Turbotax support, Turbotax 24/7 support phone number Turbotax 866-769-8127 support phone number,Turbotax 866-769-8127 support phone number,Turbotax 866-769-8127 help phone number, Turbotax 866-769-8127 technical support number.Turbotax 866-769-8127 support number, Turbotax 866-769-8127 phone number, Turbotax 866-769-8127 tech support number, Turbotax 866-769-8127 customer support number, Turbotax 866-769-8127 customer support phone number, Turbotax 866-769-8127 customer service phone number, Turbotax 866-769-8127 PRinter customer service phone number, Turbotax 866-769-8127 support phone number. Help@Call *==866.769*8127/.Turbotax 24/7 support phone number,Turbotax telephone number for support? call 866-769-8127@./Turbotax contact number, Turbotax contact phone number, Turbotax contact telephone number,,telephone number for Turbotax online support,Turbotax official support number,Turbotax official number,Turbotax PRinter official phone number,,,phone number for Turbotax PRinter support,,Turbotax 24/7 support phone number,,Turbotax support number,Turbotax telephone number for support TURBOTAX Toll Free, Intuit@(*==866.769*8127)@ TURBOTAX Tech Support Phone Number provides online solution for all USA/CANADA clients. For any help of query call 866-769-8127 to get all TURBOTAX account solution. @@Call, *==866.769*8127 for all type help by TURBOTAX tech support phone number, Intuit TURBOTAX Tech Support Phone Number, TURBOTAX Help Desk Phone Number, TURBOTAX tech support number, TURBOTAX technical support phone number,@@@ TURBOTAX phone number, TURBOTAX technical support number, TURBOTAX support phone number, TURBOTAX technical support, TURBOTAX Customer Service Phone Number, TURBOTAX Customer Service Number, TURBOTAX Customer Support Phone Number, TURBOTAX Customer Support Number,@@@@ TURBOTAX Customer Service Helpline Number, TURBOTAX Customer Care Number, TURBOTAX support team phone number, @@@@@ TURBOTAX help number-TURBOTAX Helpline Number; TURBOTAX help phone number-TURBOTAX Helpline Number, TURBOTAX Tech Support Toll free Number, TURBOTAX Support Telephone Number, TURBOTAX Tech Support Telephone number, TURBOTAX Tech Support contact number, TURBOTAX support contact number, TURBOTAX technical support contact number. Call, TURBOTAX tech support phone number, Intuit TURBOTAX Tech Support Phone Number, TURBOTAX Help Desk Phone Number, TURBOTAX tech support number, TURBOTAX technical support phone number, TURBOTAX phone number, TURBOTAX technical support number, TURBOTAX support phone number. It is very popular toll free number which provide by TURBOTAX technical support, TURBOTAX Customer Service Phone Number, TURBOTAX Customer Service Number, TURBOTAX Customer Support Phone Number, TURBOTAX Customer Support Number, TURBOTAX Customer Service Helpline Number, TURBOTAX Customer Care Number, TURBOTAX support team phone number. Call, TURBOTAX tech support phone number, Intuit TURBOTAX Tech Support Phone Number, TURBOTAX Help Desk Phone Number, TURBOTAX tech support number, TURBOTAX technical support phone number, TURBOTAX phone number, TURBOTAX technical support number, TURBOTAX support phone number, TURBOTAX technical support, TURBOTAX Customer Service Phone Number, TURBOTAX Customer Service Number, TURBOTAX Customer Support Phone Number, TURBOTAX Customer Support Number, TURBOTAX Customer Service Helpline Number, TURBOTAX Customer Care Number, TURBOTAX support team phone number, TURBOTAX help number-TURBOTAX Helpline Number; TURBOTAX help phone number, TURBOTAX Helpline Number, TURBOTAX Tech Support Toll free Number, TURBOTAX Support Telephone Number, TURBOTAX Tech Support Telephone number, TURBOTAX Tech Support contact number, TURBOTAX support contact number, TURBOTAX technical support contact number, Turbotax pro support phone number, Turbotax PRinter support phone number. Turbotax PRinter customer support phone number Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit support phone number, turbotax intuit support phone number, turbotax support phone number (+1)*866.769.8127*? .!!~~? turbotax support phone number,@@@#**__ turbotax support phone number turbotax phone number (+1)*866.769.8127*? .!!~~? turbotax phone number,@@@#**__ turbotax phone number turbotax support number (+1)*866.769.8127*? .!!~~? turbotax support number,@@@#**__ turbotax support number turbotax customer support phone number (+1)*866.769.8127*? .!!~~? turbotax customer support phone number,@@@#**__ turbotax customer support phone number turbotax customer support number (+1)*866.769.8127*? .!!~~? turbotax customer support number,@@@#**__ turbotax customer support number turbotax customer phone number (+1)*866.769.8127*? .!!~~? turbotax customer phone number,@@@#**__ turbotax customer phone number turbotax customer number (+1)*866.769.8127*? .!!~~? turbotax customer number,@@@#**__ turbotax customer number turbotax customer services number (+1)*866.769.8127*? .!!~~? turbotax customer services number,@@@#**__ turbotax customer services number turbotax customer services phone number (+1)*866.769.8127*? .!!~~? turbotax customer services phone number,@@@#**__ turbotax customer services phone number turbotax technical support phone number (+1)*866.769.8127*? .!!~~? turbotax technical support phone number,@@@#**__ turbotax technical support phonenumber turbotax technical support number (+1)*866.769.8127*? .!!~~? turbotax technical support number,@@@#**__ turbotax technical support number turbotax technical number (+1)*866.769.8127*? .!!~~? turbotax technical number,@@@#**__ turbotax technical number turbotax help support phone number (+1)*866.769.8127*? .!!~~? turbotax help support phone number,@@@#**__ turbotax help support phone number turbotax helpline phone number (+1)*866.769.8127*? .!!~~? turbotax helpline support phone number,@@@#**__ turbotax helpline phone number turbotax helpline number (+1)*866.769.8127*? .!!~~? turbotax helpline support number,@@@#**__ turbotax helpline number turbotax Toll free phone number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree support phone number, turbotax tollfree support phone number, turbotax Toll free number (+1)*866.769.8127*? .!!~~? turbotax tollfree number, @@@#**__turbotax tollfree number, turbotax intuit Toll free number (+1)*866.769.8127*? .!!~~? turbotax intuit tollfree number, @@@#**__turbotax intuit tollfree number, telephone number for turbotax (+1)*866.769.8127*? .!!~~?, telephone number for turbotax, @@@#**__telephone number for turbotax telephone number for turbotax customer service (+1)*866.769.8127*? .!!~~?, telephone number for turbotax customer service, @@@#**__telephone number for turbotax customer service turbotax call center number (+1)*866.769.8127*? .!!~~?, turbotax call center number, @@@#**__turbotax call center number phone number for turbotax (+1)*866.769.8127*? .!!~~?, phone number for turbotax, phone number for turbotax help, @@@#**__phone number for turbotax help turbotax technical supportemail (+1)*866.769.8127*? .!!~~?, turbotax technical supportemail, @@@#**__turbotax technical supportemail, @@@#**__turbotax technical supportemail turbotax customer support email +1)*866.769.8127*? .!!~~?, +turbotax customer support email, @@@#**__turbotax customer support email, turbotax customer support email (866-769-8127)_turbotax intuit customer phone number, Turbotax customer phone number, turbotax intuit support phone number, turbotax customer support phone number, turbotax intuit phone numebr, turbotax phone numeber, turbotax customer services number, turbotax intuit customer services phone number, turbotax toll free number, turbotax intuit toll free phone number, turbotax toll free service ~ turbotax support phone number [866-769-8127] turbotax support phone number [866-769-8127] turbotax intuit support phone number [866-769-8127] turbotax phone number [866-769-8127], turbotax intuit phone number [866-769-8127], turbotax [866-769-8127] intuit customer support phone number [866-769-8127], turbotax intuit customer phone number , turbotax intuit customer support number , [866-769-8127]turbotax intuit customer number , [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number+[866-769-8127]!~ turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax +[866-769-8127]!~ customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number turbotax customer support phone number +[866-769-8127]!~ turbotax customer support phone number turbotax customer support phone number [866-769-8127]turbotax customer support phone number turbotax customer support phone number turbotax customer support phone numbe 39462f76e53abbac577c75ed3e0279f8c25cf648 User:Assetdk 2 617 1761 1760 2020-04-15T13:57:32Z Assetdk 89 /* =Per Olsen */ wikitext text/x-wiki ==Per Olsen== Primarily using Makehuman for UE4, working on a howto and a MakeShapes Blender addon. 916688a417e55a696aee0816b45c8e3afa6e957e 1760 2020-04-15T13:57:13Z Assetdk 89 Created page with "==Per Olsen= Primarily using Makehuman for UE4, working on a howto and a MakeShapes Blender addon." wikitext text/x-wiki ==Per Olsen= Primarily using Makehuman for UE4, working on a howto and a MakeShapes Blender addon. 9facc48c5899b5847358146d06ee45877c11cf52 User:Ellbict 2 721 2149 2145 2022-12-19T21:50:49Z Ellbict 94 cialis pills dosage wikitext text/x-wiki She was a lovely lady and gracious every time I talked to her https://nolvadex.one - how long does it take for tamoxifen to start working Laxative Agents fb1389d93a916fced4bb2acdcf56b02caf574bca 2145 2144 2022-11-10T18:45:06Z Ellbict 94 cialis v viagra side effects wikitext text/x-wiki Lymphedema volume was defined as the difference between the lymphedematous limb VL and the healthy limb volume VH https://bestcialis20mg.com - generic cialis cost s comforting that heГў 97e4cc0edf6d1cdbec45b9fc055ed88e93b9a2e0 2144 2022-09-19T09:47:37Z Ellbict 94 chlamydia resistance to doxycycline wikitext text/x-wiki The transfer of genetic cargo into experimental cells requires various chemical or physical strategies, many involving the transient introduction of the genetic material. https://buydoxycyclineon.com - doxycycline and milk 2004 Jul; 114 1 e96- 101. efb8585c08b8bc0b5d180b7e9687aaacbf49b9ad User:Fairytail 2 160 399 2015-08-14T23:33:30Z Fairytail 16 A short bio. wikitext text/x-wiki == Who am I? == My name is Fairytail... Well, actually it isn't. It was supposed to be FaerieTail, but force of habit made me mistype it. That, and forums and the average wiki can't copy with CamelCase. == What am I? == A pedant. Seriously annoying, thoroughly persistant, annoyingly serious, and persistantly thorough. == When am I? == When am I going to go somewhere else and leave you all in peace? Heh. == Where am I? == More often than not, sitting in front of a computer screen. == Why am I? == My driving passions are playing with software that doesn't do what I want it to do, messing with code I don't understand, fansubbing anime, scanlating manga, and listening to gothic death metal. I believe in using the right tool for the job (which is NEVER going to be perl or java or emacs or info), every program should have a man page, and that documentation exists primarily to prove the programmers wrong. I firmly believe in reading the manual, and manuals that can be read. 19eb8de08a7c169bbf17433b45c0790b62cc564f User:Fortuna 2 697 2001 2021-01-26T08:15:19Z Fortuna 107 Created page with "My interessts are Unreal Engine and tools and workflows that help in development." wikitext text/x-wiki My interessts are Unreal Engine and tools and workflows that help in development. 653a9fa2c11bb0bd618196a7704554cebc1050c1 User:Injinji 2 534 1415 1414 2017-08-05T19:21:46Z Injinji 44 wikitext text/x-wiki I'm Sandra Freed, amateur (more like a noob) animator. I'm working on a Youtube movie, Linnet: Growing Wings ([https://www.youtube.com/watch?v=GLtGf6pDyyc&feature=youtu.be| trailer here]) b9108c6051f5f59e5c724e8ee70920b50c4cb5df 1414 2017-08-05T19:21:10Z Injinji 44 Created page with "I'm Sandra Freed, amateur (more like a noob) animator. I'm working on a Youtube movie, Linnet: Growing Wings ([https://www.youtube.com/watch?v=GLtGf6pDyyc&feature=youtu.be|tr..." wikitext text/x-wiki I'm Sandra Freed, amateur (more like a noob) animator. I'm working on a Youtube movie, Linnet: Growing Wings ([https://www.youtube.com/watch?v=GLtGf6pDyyc&feature=youtu.be|trailer here]) 2057603cb20de42c6465613fc43523015a79a6c9 User:Joepal 2 723 2152 2024-09-22T15:12:36Z Cheevemix 129 dapoxetine reviews reddit wikitext text/x-wiki Neuroendocrine regulation in depressed postmenopausal women and healthy subjects <a href=https://enhanceyourlife.mom/>walmart priligy</a> Aurobindo Pharma U 8f00a5b5d39b30dceeac3805e518af821cff6014 User:Robbaer 2 97 238 237 2015-07-25T18:19:20Z Robbaer 12 wikitext text/x-wiki Robert Baer, Ph.D. got his doctorate degree in Physiology from Johns Hopkins University in Baltimore, MD, USA. and did a post-doctoral fellowship at the Cardiovascular Research Institute of the University of California, San Francisco USA. His undergraduate degree came from Carleton College, Northfield, MN, USA. with a double major in chemistry and psychology. He is currently Professor of Physiology at A T Still University / Kirksville College of Osteopathic Medicine, where he has been on faculty since 1982. Rob joined the MakeHuman team in 2014 where her contributes to regression testing, video tutorials, and documentation including the MHCommunity wiki. 5d35e85f6d0e94c27ee2958fa1dd80e41a808152 237 2015-07-25T18:17:52Z Robbaer 12 Contributing to MakeHuman is a great hobby which nurtures your creative energy! wikitext text/x-wiki Robert Baer, Ph.D. got his doctorate degree in Physiology from Johns Hopkins University in Baltimore, MD, USA. and did a post-doctoral fellowship at the Cardiovascular Research Institute of the University of California, San Francisco California. His undergraduate degree came from Carleton College, Northfield, MN, USA. with a double major in chemistry and psychology. He is currently Professor of Physiology at A T Still University/Kirksville College of Osteopathic Medicine where he has been on faculty since 1982. Rob joined the MakeHuman team in 2014 where her contributes to regression testing, video tutorials, and documentation including the MHCommunity wiki. 0522c977ee8780c032e33404d4330b6efc0a19cb User:Turbotax01 2 215 613 2016-03-07T21:45:33Z Turbotax01 24 Turbotax01 moved page [[User:Turbotax01]] to [[User:866-769-8127))))turbotax customer phone number==turbotax tech support number]] wikitext text/x-wiki #REDIRECT [[User:866-769-8127))))turbotax customer phone number==turbotax tech support number]] efa6d3061f6e6bd59b20cd0a68932d0ee69e2d2d User talk:Aranuvir 3 199 522 2015-09-04T18:12:57Z Aranuvir 17 Created page with "I'm not sure if the cleannpz and compile stuff is really necessary, but you shouldn't omit removing old pyc-files." wikitext text/x-wiki I'm not sure if the cleannpz and compile stuff is really necessary, but you shouldn't omit removing old pyc-files. 422be000775f6deb1d793b5783ab2b81d285c92f User talk:Ellbict 3 722 2150 2024-02-22T18:00:05Z Iloxdlpejovum 126 Elective vegetables, solitary, reaction cornea; signified are. wikitext text/x-wiki http://fjksldhyaodh.com/ - Enidexela <a href="http://fjksldhyaodh.com/">Acavaba</a> fgk.hoyv.makehumancommunity.org.knv.rh http://fjksldhyaodh.com/ 17ccabf07c625ffa0f23670b21b73f942e23879d User talk:Fairytail 3 163 409 2015-08-16T23:24:05Z Robbaer 12 Style guides and glad for the contributions you are making wikitext text/x-wiki Got your message, and I too, am learning as I go. I had already seen your forum post and read a couple of your tips on placing images. Right now I'm still feeling my way along, but I noticed that you have some material and Joel has some material, and I will be using that as model. What Joel suggested to me when I posed the question to him was to get some content up in usable form to test learn the lay of the land. As we begin to see what works nicely we can begin to converge on some "rules". This seemed to have merit, but we must be careful not to do so much "pilot work" that it becomes enormous to make things consistent. For now I have been mostly working on the "workflows" section. The other huge job is to take the old documentation and port it to the Wiki. Aiena was starting on that and I didn't want to get too many cooks working on the same thing at the same time, but he has not done too much recently, and I haven't seen him on IRC to ask. Anyway, glad to see your contributions, and glad to her suggestions. b3680088ca03ac3bd9fa29825e5b3c0c1efe8baa User talk:Fortuna 3 696 2000 2021-01-26T07:49:57Z Fortuna 107 Created page with "You may talk here of try to contact be via discord [https://discord.gg/TvV5vtyYNu] --~~~~" wikitext text/x-wiki You may talk here of try to contact be via discord [https://discord.gg/TvV5vtyYNu] --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 07:49, 26 January 2021 (UTC) 2bee11705576bf848ae11df27f27e90d02354abd User talk:Robbaer 3 13 406 61 2015-08-15T20:41:43Z Fairytail 16 wikitext text/x-wiki == Look And Feel == : A common look and feel will make this a better Wiki! :: Hi Rob. I asked joepal on the forum if there was a policy page, and he said they hadn't got that far. May I suggest that we use the Documentation_Talk discussion page to coordinate the pages we're working on, and to discuss a common look and feel and create a style guide? I'll also post this to the forum. Please have a look at Help:Talk pages if you're unfamiliar with editing talk pages (I'm still learning as I go along) [[User:Fairytail|Fairytail]] ([[User talk:Fairytail|talk]]) 22:40, 15 August 2015 (CEST) 976a74ade319a277f2b919eb065effefb2ca7c33 61 2015-07-04T16:40:09Z Robbaer 12 Created page with "A common look and feel will make this a better Wiki!" wikitext text/x-wiki A common look and feel will make this a better Wiki! 337f377c8d434b678c9f6c43b33e6d2c6a2590ed File:00 create unity project.png 6 497 1241 2016-11-25T09:04:12Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:01 export mh 1.png 6 494 1238 2016-11-25T08:56:52Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:02 export mh 2.PNG 6 495 1239 2016-11-25T09:01:21Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:03 export mh 3.png 6 498 1242 2016-11-25T09:09:18Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:04 export mh 4.png 6 499 1243 2016-11-25T09:11:37Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:05 import unity.png 6 500 1244 2016-11-25T09:17:01Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:06 unity transparency fail.png 6 501 1247 2016-11-25T09:27:15Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:07 fix material.png 6 502 1248 2016-11-25T09:33:03Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:08 transparency fixed.png 6 503 1249 2016-11-25T09:39:51Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:09 humanoid.png 6 504 1251 2016-11-25T09:46:58Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:10 assign bones.png 6 505 1252 2016-11-25T09:52:28Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:11 bones working.png 6 506 1254 2016-11-25T09:58:31Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:12x-assetdownloader.png 6 565 1491 2018-11-14T13:20:11Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:12x-blender-ik.png 6 567 1495 2018-11-14T13:29:44Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:12x-blender-import.png 6 566 1494 2018-11-14T13:27:44Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Age 0.png 6 398 1020 2016-07-04T09:53:14Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Age 1.png 6 455 1077 2016-07-04T10:02:39Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Alphachannel1.png 6 202 543 2015-11-01T11:55:12Z Joepal 14 Eyes are rendered completely white when alpha channel isn't properly set up wikitext text/x-wiki Eyes are rendered completely white when alpha channel isn't properly set up 49c1ba8720782ae38ad3241d114cf877cd911da2 File:Alphachannel2.png 6 203 544 2015-11-01T12:03:54Z Joepal 14 Enable alpha in the material wikitext text/x-wiki Enable alpha in the material 7bfd9418bcb8d465ed5bff863834874cecd84a55 File:Alphachannel3.png 6 204 545 2015-11-01T12:05:54Z Joepal 14 Mark that the texture's alpha value should influence the transparency of the material. wikitext text/x-wiki Mark that the texture's alpha value should influence the transparency of the material. a116c0c66230e819e958983e0659d5949e6a5d75 File:Alphachannel5.png 6 205 546 2015-11-01T12:10:54Z Joepal 14 Basic node setup for texture with alpha channel wikitext text/x-wiki Basic node setup for texture with alpha channel 58b9b70d6e815c6388a9bd8fac3ea2697b598a57 File:Alphachannel6.png 6 206 547 2015-11-01T12:13:07Z Joepal 14 Render with alpha enabled wikitext text/x-wiki Render with alpha enabled abf5ffd6a3d532c915843a05682dca6f3d15dbb7 File:Asset downloader.png 6 717 2113 2021-05-19T05:31:07Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Au100-load.png 6 334 929 875 2016-05-27T15:49:17Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Au100-load.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 875 2016-05-27T15:36:56Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Au110-loaded.png 6 335 930 876 2016-05-27T15:49:22Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Au110-loaded.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 876 2016-05-27T15:37:06Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Au115-frame0121.png 6 336 931 877 2016-05-27T15:49:27Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Au115-frame0121.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 877 2016-05-27T15:37:16Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Au120-shift-arms.png 6 337 932 878 2016-05-27T15:49:32Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Au120-shift-arms.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 878 2016-05-27T15:37:25Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Au125-revfoot.png 6 338 933 879 2016-05-27T15:49:37Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Au125-revfoot.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 879 2016-05-27T15:37:35Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Au130-toes.png 6 339 934 880 2016-05-27T15:49:42Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Au130-toes.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 880 2016-05-27T15:37:45Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Au140-bend-toes.png 6 340 935 881 2016-05-27T15:49:47Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Au140-bend-toes.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 881 2016-05-27T15:37:55Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Au150-shift-down.png 6 341 936 882 2016-05-27T15:49:52Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Au150-shift-down.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 882 2016-05-27T15:38:05Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Au160-same-pose.png 6 342 937 883 2016-05-27T15:49:57Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Au160-same-pose.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 883 2016-05-27T15:38:15Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Au170-pose-looped.png 6 343 938 884 2016-05-27T15:50:02Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Au170-pose-looped.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 884 2016-05-27T15:38:25Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Au180-transfer-ik.png 6 344 939 885 2016-05-27T15:50:07Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Au180-transfer-ik.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 885 2016-05-27T15:38:35Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Au190-above-floor.png 6 345 940 886 2016-05-27T15:50:12Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Au190-above-floor.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 886 2016-05-27T15:38:45Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Au200-shift-up.png 6 346 941 887 2016-05-27T15:50:17Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Au200-shift-up.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 887 2016-05-27T15:38:55Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Au210-camera-action.png 6 347 942 888 2016-05-27T15:50:22Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Au210-camera-action.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 888 2016-05-27T15:39:05Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Au220-video.png 6 348 943 889 2016-05-27T15:50:27Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Au220-video.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 889 2016-05-27T15:39:15Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Background 0 0.png 6 433 1055 2016-07-04T09:59:01Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Badge-render.png 6 3 11 2015-06-27T18:44:16Z Joepal1 1 Test wikitext text/x-wiki Test 640ab2bae07bedc4c163f679a746f7ab7fb5d1fa File:Basemesh1.png 6 654 1864 2020-09-13T12:48:01Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Basemesh2.png 6 655 1865 2020-09-13T12:49:01Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Basemesh3.png 6 656 1866 2020-09-13T12:49:35Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Blender-sword-palm.png 6 489 1222 2016-11-12T18:28:00Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Blender-sword-vertex1.png 6 488 1221 2016-11-12T18:25:33Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Blender-sword-vertex2.png 6 490 1223 2016-11-12T18:29:32Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Blender-sword.png 6 487 1220 2016-11-12T18:22:11Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Blender buckle.png 6 493 1236 2016-11-20T20:17:45Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Btmc01.png 6 184 486 2015-08-29T10:54:56Z Fairytail 16 MakeClothes v1.1.0 wikitext text/x-wiki MakeClothes v1.1.0 dd5e06f0fcb7d221d42fb6dcd8a9ed67126170ee File:Btmc02.png 6 185 487 2015-08-29T10:56:53Z Fairytail 16 MakeClothes Loaded Human Mesh wikitext text/x-wiki MakeClothes Loaded Human Mesh 9c8629d14d469b98c5879c813e6156caf00615dd File:Btmc03.png 6 186 488 2015-08-29T10:58:06Z Fairytail 16 MakeClothes Loaded Human Mesh With Helpers wikitext text/x-wiki MakeClothes Loaded Human Mesh With Helpers c9022a6d34df745e8151538a1118cb838b48d58e File:Btmc04.png 6 187 489 2015-08-29T10:59:36Z Fairytail 16 MakeClothes Mid Vertices Assigned wikitext text/x-wiki MakeClothes Mid Vertices Assigned cfe9f8052ef27501901118df6c587c338c3c6638 File:Btmc05.png 6 188 490 2015-08-29T11:00:32Z Fairytail 16 MakeClothes Left Vertices Assigned wikitext text/x-wiki MakeClothes Left Vertices Assigned ebc4eec4463b86d13fe6f8661cfbd6acb30f29d5 File:Btmc06.png 6 189 491 2015-08-29T11:01:29Z Fairytail 16 MakeClothes Show Selection wikitext text/x-wiki MakeClothes Show Selection ae08edc4ca6f75169265277ffcdb7378fa28b453 File:Btmc07.png 6 190 492 2015-08-29T11:02:41Z Fairytail 16 MakeClothes Show Materials And UV Projection wikitext text/x-wiki MakeClothes Show Materials And UV Projection 6472c9d53b4d17946d1ed8e21d9095c5fda92bbd File:Btmc08.png 6 192 494 2015-08-29T11:05:13Z Fairytail 16 MakeClothes Show Z-Depth wikitext text/x-wiki MakeClothes Show Z-Depth 12b5fe8a3c02419d28422dc7e73ee47812e1b3a4 File:Btmc09.png 6 191 493 2015-08-29T11:04:07Z Fairytail 16 MakeClothes Show Offset Scaling wikitext text/x-wiki MakeClothes Show Offset Scaling 11f2e0ec7fbf9b63199598f39e122fcca3e09b4d File:Btmc10.png 6 193 495 2015-08-29T11:06:11Z Fairytail 16 MakeClothes Show Settings wikitext text/x-wiki MakeClothes Show Settings 08c02471a4d627437436a023c44c6548fcafb1c2 File:Btmc11.png 6 194 496 2015-08-29T11:07:07Z Fairytail 16 MakeClothes Show License wikitext text/x-wiki MakeClothes Show License 411ed7c5ff2015325068c3f129a78fddae26cf6f File:Clothes2 0 0.png 6 412 1034 2016-07-04T09:55:33Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Clothes 1 0.png 6 426 1048 2016-07-04T09:57:52Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:CrudeSword-render.png 6 491 1224 2016-11-12T18:31:21Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Customtab 0.png 6 448 1070 2016-07-04T10:01:30Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Dress-example-geometry.png 6 671 1935 2020-11-14T19:57:04Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Dress-example-gimtex.png 6 674 1938 2020-11-14T19:59:53Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Dress-example-lose-geom1.png 6 679 1943 2020-11-15T13:09:45Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Dress-example-lose-geom2.png 6 680 1944 2020-11-15T13:10:21Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Dress-example-manual-normalmap.png 6 675 1939 2020-11-14T20:00:36Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Dress-example-poles.png 6 681 1945 2020-11-15T13:10:56Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Dress-example-save.png 6 673 1937 2020-11-14T19:59:10Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Dress-example-smooth-mh.jpg 6 678 1942 2020-11-15T13:09:11Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Dress-example-smoothing.jpg 6 677 1941 2020-11-15T13:08:32Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Dress-example-texturedchar.png 6 672 1936 2020-11-14T19:57:49Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Dress-example-vgroups.png 6 670 1934 2020-11-14T19:56:11Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Edit-action.png 6 397 1019 2016-07-04T09:53:04Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Export labelled.png 6 395 1017 2016-07-04T09:52:44Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Eyes maskedspecular vs translucent.jpg 6 692 1987 2021-01-19T06:40:45Z Fortuna 107 CC0 wikitext text/x-wiki CC0 cfc2c6505d098ccd1d0667c1ebc09ae32b970cc2 File:Face modifier labelled.png 6 425 1047 2016-07-04T09:57:42Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Facebones.png 6 719 2115 2021-05-29T09:03:37Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Fashion blender inside box.png 6 510 1264 2016-12-11T14:23:52Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Fashion blender sampling.png 6 511 1265 2016-12-11T14:27:06Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Fashion mhx2.png 6 509 1263 2016-12-11T14:20:02Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Fashion upload 1.png 6 512 1267 2016-12-11T14:32:37Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Fashion upload 2.png 6 513 1268 2016-12-11T14:37:09Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Feet-010-copy-files.png 6 349 944 890 2016-05-27T15:50:32Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-010-copy-files.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 890 2016-05-27T15:39:25Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-020-enable-addon.png 6 350 945 891 2016-05-27T15:50:37Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-020-enable-addon.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 891 2016-05-27T15:39:34Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-030-load-bvh.png 6 351 946 892 2016-05-27T15:50:41Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-030-load-bvh.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 892 2016-05-27T15:39:44Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-050-anim-loaded.png 6 352 947 893 2016-05-27T15:50:46Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-050-anim-loaded.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 893 2016-05-27T15:39:54Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-110-export-default.png 6 353 948 894 2016-05-27T15:50:51Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-110-export-default.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 894 2016-05-27T15:40:04Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-120-import-mhx.png 6 354 949 895 2016-05-27T15:50:56Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-120-import-mhx.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 895 2016-05-27T15:40:14Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-130-delete-skin.png 6 355 950 896 2016-05-27T15:51:01Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-130-delete-skin.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 896 2016-05-27T15:40:24Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-140-anim-imported.png 6 356 951 897 2016-05-27T15:51:06Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-140-anim-imported.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 897 2016-05-27T15:40:34Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-150-intersection.png 6 357 952 898 2016-05-27T15:51:11Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-150-intersection.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 898 2016-05-27T15:40:44Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-160-start-edit.png 6 358 953 899 2016-05-27T15:51:16Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-160-start-edit.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 899 2016-05-27T15:40:54Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-170-confirm-edit.png 6 359 954 900 2016-05-27T15:51:21Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-170-confirm-edit.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 900 2016-05-27T15:41:04Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-180-similar-poses.png 6 360 955 901 2016-05-27T15:51:26Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-180-similar-poses.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 901 2016-05-27T15:41:14Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-190-loop-and-repeat.png 6 361 956 902 2016-05-27T15:51:31Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-190-loop-and-repeat.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 902 2016-05-27T15:41:24Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-200-long-animation.png 6 362 957 903 2016-05-27T15:51:36Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-200-long-animation.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 903 2016-05-27T15:41:34Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-210-add-plane.png 6 363 958 904 2016-05-27T15:51:41Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-210-add-plane.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 904 2016-05-27T15:41:43Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-220-below-plane.png 6 364 959 905 2016-05-27T15:51:46Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-220-below-plane.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 905 2016-05-27T15:41:53Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-230-keep-above-floor.png 6 365 960 906 2016-05-27T15:51:51Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-230-keep-above-floor.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 906 2016-05-27T15:42:03Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-240-transfer-ik.png 6 366 961 907 2016-05-27T15:51:56Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-240-transfer-ik.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 907 2016-05-27T15:42:13Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-250-keep-above-ik.png 6 367 962 908 2016-05-27T15:52:01Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-250-keep-above-ik.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 908 2016-05-27T15:42:23Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-260-keep-above-better.png 6 368 963 909 2016-05-27T15:52:06Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-260-keep-above-better.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 909 2016-05-27T15:42:33Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-310-init-pose.png 6 369 964 910 2016-05-27T15:52:11Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-310-init-pose.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 910 2016-05-27T15:42:43Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-320-pose-feet.png 6 370 965 911 2016-05-27T15:52:16Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-320-pose-feet.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 911 2016-05-27T15:42:53Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-330-pose-ik.png 6 371 966 912 2016-05-27T15:52:21Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-330-pose-ik.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 912 2016-05-27T15:43:03Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-340-current2rest.png 6 372 967 913 2016-05-27T15:52:26Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-340-current2rest.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 913 2016-05-27T15:43:13Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-350-new-rest-pose.png 6 373 968 914 2016-05-27T15:52:31Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-350-new-rest-pose.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 914 2016-05-27T15:43:23Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-360-markers.png 6 374 969 915 2016-05-27T15:52:36Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-360-markers.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 915 2016-05-27T15:43:33Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-370-markers.png 6 375 970 916 2016-05-27T15:52:41Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-370-markers.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 916 2016-05-27T15:43:43Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-380-hill.png 6 376 971 917 2016-05-27T15:52:46Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-380-hill.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 917 2016-05-27T15:43:52Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-390-multiple-floors.png 6 377 973 918 2016-05-27T15:52:51Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-390-multiple-floors.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 918 2016-05-27T15:44:02Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-400-uphill1.png 6 378 974 919 2016-05-27T15:52:55Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-400-uphill1.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 919 2016-05-27T15:44:12Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-410-uphill2.png 6 379 975 920 2016-05-27T15:53:00Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-410-uphill2.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 920 2016-05-27T15:44:22Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-510-rescale.png 6 380 976 921 2016-05-27T15:53:05Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-510-rescale.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 921 2016-05-27T15:44:32Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-520-scaled-1.png 6 381 977 922 2016-05-27T15:53:10Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-520-scaled-1.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 922 2016-05-27T15:44:42Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-530-fcurves-1.png 6 382 978 923 2016-05-27T15:53:15Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-530-fcurves-1.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 923 2016-05-27T15:44:52Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-540-scaled-2.png 6 383 979 924 2016-05-27T15:53:20Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-540-scaled-2.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 924 2016-05-27T15:45:02Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-550-fcurves-2.png 6 384 980 925 2016-05-27T15:53:25Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-550-fcurves-2.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 925 2016-05-27T15:45:12Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-610-shift.png 6 385 981 926 2016-05-27T15:53:30Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-610-shift.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 926 2016-05-27T15:45:22Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-620-penetration.png 6 386 982 927 2016-05-27T15:53:35Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-620-penetration.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 927 2016-05-27T15:45:32Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Feet-630-frame-109.png 6 387 983 928 2016-05-27T15:53:40Z Maintenance script 0 Maintenance script uploaded a new version of [[File:Feet-630-frame-109.png]] wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 928 2016-05-27T15:45:42Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Fork.jpg 6 447 1069 2016-07-04T10:01:20Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:General.png 6 410 1032 2016-07-04T09:55:13Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Glitter1.png 6 524 1395 2017-06-06T14:20:53Z Joepal 14 Eyes without "glitter" wikitext text/x-wiki Eyes without "glitter" 591e6e324706c9fcc5c1fefd537c529ef7d41e2f File:Glitter2.png 6 525 1396 2017-06-06T14:24:24Z Joepal 14 Eyes with "glitter" wikitext text/x-wiki Eyes with "glitter" a19ca89455c986176df6deb3963eece68df082e4 File:Glitter3.png 6 526 1397 2017-06-06T14:25:44Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Glitter4.png 6 527 1398 2017-06-06T14:26:39Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Glsettings.png 6 636 1820 2020-07-23T12:53:12Z Joepal 14 Settings that can be manipulated if the 3d engine seems to struggle. wikitext text/x-wiki Settings that can be manipulated if the 3d engine seems to struggle. e03a99a49ed3a76640a3b19099a84f9eea2c8d9d File:Hair2 0 0.png 6 467 1089 2016-07-04T10:04:38Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Hair 1 0 0.png 6 417 1039 2016-07-04T09:56:22Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Heads 0.png 6 470 1092 2016-07-04T10:05:08Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Helper details.png 6 132 363 2015-08-09T18:48:44Z Fairytail 16 MHBlenderTools: MakeTarget helper_details.png wikitext text/x-wiki MHBlenderTools: MakeTarget helper_details.png dbfac66dd8f5b432a2e0c9ff1d277991827fbaaf File:Hm01 0.png 6 474 1096 2016-07-04T10:05:48Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Image00.png 6 430 1052 2016-07-04T09:58:31Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Image01.png 6 452 1074 2016-07-04T10:02:09Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:ImpExp-001.png 6 69 177 2015-07-25T08:00:17Z Robbaer 12 Workflow export example for use in import workflow comparisons wikitext text/x-wiki Workflow export example for use in import workflow comparisons fbaca685a3e7ff39e550e0636fec25e9399d3248 File:ImpExp03.png 6 70 181 2015-07-25T12:25:13Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp04.png 6 71 182 2015-07-25T12:26:49Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp05.png 6 72 183 2015-07-25T12:27:43Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp06.png 6 73 184 2015-07-25T12:29:05Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp07.png 6 74 185 2015-07-25T12:30:04Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp08.png 6 75 186 2015-07-25T12:32:17Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp09.png 6 76 187 2015-07-25T12:32:56Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp10.png 6 77 188 2015-07-25T12:33:36Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp11.png 6 78 189 2015-07-25T12:34:22Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp12.png 6 79 192 190 2015-07-25T12:36:38Z Robbaer 12 Robbaer uploaded a new version of [[File:ImpExp12.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 190 2015-07-25T12:34:54Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp13.png 6 80 202 191 2015-07-25T14:21:28Z Robbaer 12 Robbaer uploaded a new version of [[File:ImpExp13.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 191 2015-07-25T12:35:29Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp14.png 6 81 203 2015-07-25T14:24:07Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp15.png 6 82 204 2015-07-25T14:24:40Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp16.png 6 84 206 2015-07-25T14:29:19Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp17.png 6 83 205 2015-07-25T14:26:32Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp18.png 6 85 207 2015-07-25T14:30:28Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp19.png 6 86 208 2015-07-25T14:31:34Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp20.png 6 87 209 2015-07-25T14:32:19Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp21.png 6 88 211 2015-07-25T14:34:20Z Robbaer 12 Lower resolution version of ImpExp20 wikitext text/x-wiki Lower resolution version of ImpExp20 f922a741313491df5d1c270e9d2db14bde88719f File:ImpExp22.png 6 90 213 2015-07-25T14:36:07Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp23.png 6 91 214 2015-07-25T14:36:58Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp24.png 6 92 215 2015-07-25T14:37:26Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp25.png 6 93 216 2015-07-25T14:38:08Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp26.png 6 94 217 2015-07-25T14:38:58Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp27.png 6 95 218 2015-07-25T14:40:29Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp28.png 6 96 219 2015-07-25T14:41:17Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp30.png 6 101 269 2015-07-25T21:31:49Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp31.png 6 100 268 2015-07-25T21:30:41Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp32.png 6 102 270 2015-07-25T21:32:38Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp34.png 6 103 271 2015-07-25T21:33:32Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp35.png 6 119 308 2015-07-26T23:56:11Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp36.png 6 105 273 2015-07-25T21:35:32Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp37.png 6 106 282 274 2015-07-26T20:06:23Z Robbaer 12 Robbaer uploaded a new version of [[File:ImpExp37.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 274 2015-07-25T21:36:05Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp38.png 6 107 283 275 2015-07-26T20:06:51Z Robbaer 12 Robbaer uploaded a new version of [[File:ImpExp38.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 275 2015-07-25T21:36:59Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp39.png 6 108 284 2015-07-26T20:07:30Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp40.png 6 109 285 2015-07-26T20:08:13Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp41.png 6 110 321 290 2015-07-28T21:15:40Z Robbaer 12 Robbaer uploaded a new version of [[File:ImpExp41.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 290 289 2015-07-26T20:40:29Z Robbaer 12 Robbaer uploaded a new version of [[File:ImpExp41.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 289 2015-07-26T20:39:16Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp42.png 6 111 292 2015-07-26T21:06:12Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp43.png 6 112 293 2015-07-26T22:33:56Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp44.png 6 113 296 2015-07-26T22:53:47Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp45.png 6 114 297 2015-07-26T22:54:19Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp46.png 6 117 301 2015-07-26T23:09:11Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp47.png 6 118 302 2015-07-26T23:21:47Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp48.png 6 120 313 2015-07-28T20:29:42Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp49.png 6 121 314 2015-07-28T20:30:18Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp50.png 6 164 412 2015-08-16T23:37:09Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp50a.png 6 122 316 2015-07-28T20:44:32Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp50b.png 6 123 317 2015-07-28T20:45:32Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp51.png 6 165 413 2015-08-16T23:37:44Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp52.png 6 166 414 2015-08-16T23:38:13Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp53.png 6 182 438 2015-08-17T00:53:34Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp54.png 6 168 440 416 2015-08-17T01:01:34Z Robbaer 12 Robbaer uploaded a new version of [[File:ImpExp54.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 416 2015-08-16T23:39:08Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp55.png 6 169 417 2015-08-16T23:39:36Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp55a.png 6 183 443 2015-08-17T13:19:09Z Robbaer 12 Changing lamp to hemi wikitext text/x-wiki Changing lamp to hemi 5d9c26152bad99e546a01a389541d4d934250cc8 File:ImpExp56.png 6 170 418 2015-08-16T23:44:26Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp57.png 6 171 419 2015-08-16T23:44:55Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp58.png 6 172 420 2015-08-16T23:45:27Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp59.png 6 173 421 2015-08-16T23:47:31Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp60.png 6 174 422 2015-08-16T23:47:56Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp61.png 6 175 454 423 2015-08-17T14:40:02Z Robbaer 12 Robbaer uploaded a new version of [[File:ImpExp61.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 423 2015-08-16T23:48:47Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp62.png 6 176 424 2015-08-16T23:49:21Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp63.png 6 177 425 2015-08-16T23:49:49Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp64.png 6 178 426 2015-08-16T23:50:22Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp65.png 6 179 427 2015-08-16T23:51:00Z Robbaer 12 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:ImpExp66.png 6 181 432 431 2015-08-17T00:17:37Z Robbaer 12 Robbaer uploaded a new version of [[File:ImpExp66.png]] wikitext text/x-wiki Effect of "cast" shadow in blender internal render for eyebrows, eyelashes, and hair. 92eecc01d81f6aef4c47b5a04aab2609b0e5129c 431 430 2015-08-17T00:16:03Z Robbaer 12 Robbaer uploaded a new version of [[File:ImpExp66.png]] wikitext text/x-wiki Effect of "cast" shadow in blender internal render for eyebrows, eyelashes, and hair. 92eecc01d81f6aef4c47b5a04aab2609b0e5129c 430 2015-08-17T00:12:58Z Robbaer 12 Effect of "cast" shadow in blender internal render for eyebrows, eyelashes, and hair. wikitext text/x-wiki Effect of "cast" shadow in blender internal render for eyebrows, eyelashes, and hair. 92eecc01d81f6aef4c47b5a04aab2609b0e5129c File:Included ccby.jpg 6 536 1422 2017-08-20T08:25:58Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Infographic 110.png 6 218 620 2016-04-15T10:00:56Z Joepal 14 Release infographic for 1.1.0 wikitext text/x-wiki Release infographic for 1.1.0 d4bcf2f18d0b35f632b12575c6fcd5815aac57a5 File:Installclothes1.png 6 58 139 2015-07-18T07:59:53Z Joepal 14 Create a directory for your clothes. wikitext text/x-wiki Create a directory for your clothes. 25a96dc5264dcc46585ae97fb0766197c4f51f28 File:Installclothes2.png 6 59 140 2015-07-18T08:01:40Z Joepal 14 Copy the files to the new directory. wikitext text/x-wiki Copy the files to the new directory. 5e27a6b71d08f7b4cb3ea6e6ffc031e7f69992e3 File:Interface-labelled new.png 6 434 1056 2016-07-04T09:59:11Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Languages.png 6 468 1090 2016-07-04T10:04:48Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Legs modelling 2 0.png 6 465 1087 2016-07-04T10:04:18Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Load1.png 6 415 1037 2016-07-04T09:56:02Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Lse quick.png 6 400 1022 2016-07-04T09:53:34Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Lse tabs.png 6 436 1058 2016-07-04T09:59:31Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:MC2 extract helpers.png 6 658 1873 2020-09-13T14:59:09Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MH&Purp NQ.jpg 6 6 35 2015-06-30T19:37:51Z Aiena1 3 MakeHuman and its Purpose main image. (Normal Quality) wikitext text/x-wiki MakeHuman and its Purpose main image. (Normal Quality) b9d9f31572ff24085e6d6b9ed3f0be330ea78579 File:MH-Anim-Skeleton.png 6 691 1980 2021-01-16T17:36:17Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MH-Base-Animation-Retarget.png 6 600 1681 2020-02-19T15:08:42Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MH-Base-Blender-setup.png 6 593 1657 2020-02-17T22:22:52Z Assetdk 89 Blender setup for Collections wikitext text/x-wiki Blender setup for Collections 3467d027b30f554b903fecc0c9b7aa42b573057b File:MH-Base-Character-Folder-textures.png 6 586 1642 2020-02-17T20:10:01Z Assetdk 89 Textures wikitext text/x-wiki Textures 5aa8824d5c3096f4df15e810b0938086516cca9b File:MH-Base-Character-Folder-textures2.png 6 587 1646 1644 2020-02-17T20:25:34Z Assetdk 89 Assetdk uploaded a new version of [[File:MH-Base-Character-Folder-textures2.png]] wikitext text/x-wiki More textures 77bd79e07e4292921aab3a1b446b06c11a9ba57f 1644 2020-02-17T20:20:51Z Assetdk 89 More textures wikitext text/x-wiki More textures 77bd79e07e4292921aab3a1b446b06c11a9ba57f File:MH-Base-Character-Folder.png 6 585 1641 2020-02-17T20:08:09Z Assetdk 89 Base-Character-Folder wikitext text/x-wiki Base-Character-Folder 0c1f74deca0689d3556ef1e8fccbc8fadf579651 File:MH-Base-FBX-main-root.png 6 597 1670 2020-02-19T14:13:35Z Assetdk 89 main_root wikitext text/x-wiki main_root 1d6bd5cb7cd66093e991caff29a14240ee11a53d File:MH-Base-FBX-operator-presets.png 6 598 1674 1672 2020-02-19T14:26:56Z Assetdk 89 Assetdk uploaded a new version of [[File:MH-Base-FBX-operator-presets.png]] wikitext text/x-wiki FBX export from blender, Operator presets c51d2f64a0711f7c73acbfa0c22bd9a4fea7a8c5 1672 2020-02-19T14:21:11Z Assetdk 89 FBX export from blender, Operator presets wikitext text/x-wiki FBX export from blender, Operator presets c51d2f64a0711f7c73acbfa0c22bd9a4fea7a8c5 File:MH-Base-Skeleton-Retarget.png 6 599 1678 2020-02-19T14:44:46Z Assetdk 89 Retarget skeleton wikitext text/x-wiki Retarget skeleton b7759be4b9721ecfc984c70c740a05fd3befcfef File:MH-Blender-FBX-import-options.png 6 594 1663 1660 2020-02-17T22:44:12Z Assetdk 89 Assetdk uploaded a new version of [[File:MH-Blender-FBX-import-options.png]] wikitext text/x-wiki Import FBX, std. options! d1c6cd5754cdc552e48f0f0eba4afb16cf713125 1660 2020-02-17T22:35:35Z Assetdk 89 Import FBX, std. options! wikitext text/x-wiki Import FBX, std. options! d1c6cd5754cdc552e48f0f0eba4afb16cf713125 File:MH-Blender-base-imported-icons.png 6 596 1666 2020-02-17T23:01:23Z Assetdk 89 Blender icons wikitext text/x-wiki Blender icons 367ff56467d7ced3380bfea336a8b0efd1bd8e59 File:MH-Blender-base-imported.png 6 595 1665 2020-02-17T22:54:38Z Assetdk 89 First import of FBX and MHX2 wikitext text/x-wiki First import of FBX and MHX2 d9b52d27e04e4cdb85b3eeb56c907e9063525845 File:MH-Blender-shapekey1.png 6 601 1696 2020-02-27T18:05:47Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MH-Blender-shapekey2.png 6 602 1698 2020-02-27T18:12:17Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MH-FBX-export-options.png 6 592 1654 2020-02-17T21:47:22Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MH-MH-FBX-imported-materials.png 6 589 1649 2020-02-17T21:07:02Z Assetdk 89 Character with materials, MH-FBX wikitext text/x-wiki Character with materials, MH-FBX 05270de897e720674ec0d21eb729495148ca8218 File:MH-MH-FBX-imported.png 6 588 1647 2020-02-17T21:01:57Z Assetdk 89 What you get from MH FBX Binary wikitext text/x-wiki What you get from MH FBX Binary 326918d228b4331e9843422c02410e3cf9739723 File:MH-Smooth-option.png 6 584 1637 2020-02-17T19:24:53Z Assetdk 89 The smooth "button".. wikitext text/x-wiki The smooth "button".. e1547fca0069ffe292cd7c88d55419b53241ba30 File:MH-UE4-Eye-material.png 6 590 1650 2020-02-17T21:31:19Z Assetdk 89 Unreal4 Eye material wikitext text/x-wiki Unreal4 Eye material c8c24660ed44e2d115adcb8ff68b2d9208d14e80 File:MH-UE4-Eyelashes-material.png 6 591 1652 2020-02-17T21:40:10Z Assetdk 89 Eyelashes and Eyebrows wikitext text/x-wiki Eyelashes and Eyebrows 9372c4b960759b2179deece54827a9dd98b75b23 File:MH2Blender MakeTarget1.png 6 699 2010 2021-01-30T09:40:23Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MH2Blender MakeTarget2.png 6 700 2011 2021-01-30T09:50:53Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MHC GenericMH BP-V1.png 6 708 2065 2021-03-31T12:50:35Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MHC GenericMH BPMT-V1.png 6 711 2074 2021-03-31T16:09:02Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MHC GenericMH Comp-V1.png 6 709 2070 2021-03-31T13:10:24Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MHC GenericMH Cust-MT.png 6 710 2072 2021-03-31T13:35:42Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MHDirectories.png 6 638 1826 2020-07-25T13:25:00Z Punkduck 38 directory structure of system and user space wikitext text/x-wiki directory structure of system and user space 0fe4028051d1f9a6b5cb5db0f9cfd2c6b44893c0 File:MH UE4 MaterialCustom 1.png 6 704 2033 2021-02-14T13:55:16Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MH UE4 MaterialInstance 1.png 6 701 2029 2028 2021-02-14T13:29:06Z Assetdk 89 Assetdk uploaded a new version of [[File:MH UE4 MaterialInstance 1.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 2028 2021-02-14T13:26:59Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MH UE4 MaterialMaster 1.png 6 702 2030 2021-02-14T13:30:35Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MH UE4 MaterialMaster 2.png 6 703 2031 2021-02-14T13:31:16Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MH UE Poses.png 6 706 2045 2021-03-14T17:21:52Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MPFB2-DeveloperOptions.PNG 6 716 2096 2021-05-11T18:14:55Z Assetdk 89 MPFB Developer options wikitext text/x-wiki MPFB Developer options fba736c8af3d476b22b0563275ed8058c557a722 File:MPFB2-Options.PNG 6 715 2095 2021-05-11T18:01:10Z Assetdk 89 MPFB2 preferences wikitext text/x-wiki MPFB2 preferences e61e92247796fa327a22b340a4f843e771d2b309 File:MPFB2-VS1.PNG 6 714 2089 2021-05-11T17:45:41Z Assetdk 89 Thing I noted about running 2.9.2 and VS code. wikitext text/x-wiki Thing I noted about running 2.9.2 and VS code. fe1412c2cf81a289561d879674194193b6d84d9d File:MTG CreateTarget.png 6 684 1955 2020-11-29T11:22:11Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MTG LoadMesh.png 6 682 1953 2020-11-29T11:18:38Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MTG LoadTarget.png 6 687 1958 2020-11-29T11:24:47Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MTG SaveTarget.png 6 686 1957 2020-11-29T11:23:52Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MTG SymmetrizeTarget.png 6 685 1956 2020-11-29T11:23:07Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MTG ToggleHelper.png 6 683 1954 2020-11-29T11:21:09Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Main labelled.png 6 450 1072 2016-07-04T10:01:50Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Maintab.png 6 419 1041 2016-07-04T09:56:42Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:MakeShapes-buttons.png 6 621 1776 2020-04-18T13:00:05Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MakeShapes-custom-targets.png 6 620 1774 2020-04-18T12:43:40Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MakeShapes-faceshape base.png 6 619 1771 2020-04-18T12:24:01Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MakeShapes-icon.png 6 622 1778 2020-04-18T13:05:13Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MakeTarget2-data.png 6 618 1769 2020-04-18T12:12:42Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:MakeTargetDiscardAndApplyTarget.png 6 138 371 2015-08-09T19:16:20Z Fairytail 16 MHBlenderTools: MakeTarget MakeTargetDiscardAndApplyTarget.png wikitext text/x-wiki MHBlenderTools: MakeTarget MakeTargetDiscardAndApplyTarget.png ba4c65455743f31806b2d71e1f0c755b84cc205c File:MakeTargetFitTargetButton.png 6 141 374 2015-08-09T19:21:19Z Fairytail 16 MHBlenderTools: MakeTarget MakeTargetFitTargetButton.png wikitext text/x-wiki MHBlenderTools: MakeTarget MakeTargetFitTargetButton.png 0376318035f118e07f6954aea52f047512ec2587 File:MakeTargetLoadSecondaryTarget.png 6 137 370 2015-08-09T19:14:48Z Fairytail 16 MHBlenderTools: MakeTarget MakeTargetLoadSecondaryTarget.png wikitext text/x-wiki MHBlenderTools: MakeTarget MakeTargetLoadSecondaryTarget.png b9155bd968d155d92d9b86cd8624aa7070078e6b File:MakeTargetSaveTargetSection.png 6 140 373 2015-08-09T19:19:55Z Fairytail 16 MakeTargetSaveTargetSection.png wikitext text/x-wiki MakeTargetSaveTargetSection.png f104ce4abaf17b25f506c067f60c1eb62df7978e File:MakeTargetSkirtEditingAffectOnly3.png 6 142 375 2015-08-09T19:22:27Z Fairytail 16 MHBlenderTools: MakeTarget MakeTargetSkirtEditingAffectOnly3.png wikitext text/x-wiki MHBlenderTools: MakeTarget MakeTargetSkirtEditingAffectOnly3.png 083bebf104e5eccbd2346f173bd91ae5df69bb8f File:MakeTargetTargetSymmetryButtons.png 6 139 372 2015-08-09T19:18:26Z Fairytail 16 MHBlenderTools: MakeTarget MakeTargetTargetSymmetryButtons.png wikitext text/x-wiki MHBlenderTools: MakeTarget MakeTargetTargetSymmetryButtons.png 094c279fb900ce2b62329c1b868be68a96950a92 File:MakeTarget load.png 6 134 366 2015-08-09T19:06:20Z Fairytail 16 MHBlenderTools: MakeTarget MakeTarget_load.png wikitext text/x-wiki MHBlenderTools: MakeTarget MakeTarget_load.png d8970d8785e21ce53024940718f1784f47dc59aa File:Makeclothestitle.jpg 6 626 1803 2020-06-21T14:21:39Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Maketarget-base.png 6 133 364 2015-08-09T18:52:12Z Fairytail 16 MHBlenderTools: MakeTarget maketarget-base.png wikitext text/x-wiki MHBlenderTools: MakeTarget maketarget-base.png 9b7d27d52f963541e9eec9d4572354f8dd1868ad File:Maketarget131-area.png 6 130 361 2015-08-09T18:41:31Z Fairytail 16 MHBlenderTools: MakeTarget maketarget131-area.png wikitext text/x-wiki MHBlenderTools: MakeTarget maketarget131-area.png f96980f29ab2e658c2404451a63b8b4ff28cafb4 File:Maketarget131-panels.png 6 135 368 2015-08-09T19:10:27Z Fairytail 16 MHBlenderTools: MakeTarget maketarget131-panels.png wikitext text/x-wiki MHBlenderTools: MakeTarget maketarget131-panels.png 7525a78841f7782d0e056ad50974d1cb608d07e1 File:Maketarget131.png 6 131 362 2015-08-09T18:46:03Z Fairytail 16 MHBlenderTools: MakeTarget maketarget131.png wikitext text/x-wiki MHBlenderTools: MakeTarget maketarget131.png 611f4b0ff865df7161dc4f022b404f59217e5d8d File:Maketarget3.png 6 136 369 2015-08-09T19:11:56Z Fairytail 16 MHBlenderTools: MakeTarget maketarget3.png wikitext text/x-wiki MHBlenderTools: MakeTarget maketarget3.png 7bb39852668915a6e41729b9c243210330a151e1 File:Makewalk-1.png 6 464 1086 2016-07-04T10:04:08Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Makewalk-3.png 6 463 1085 2016-07-04T10:03:58Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Makewalk-4.png 6 437 1059 2016-07-04T09:59:41Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Makewalk-5.png 6 453 1075 2016-07-04T10:02:19Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Makewalk-6.png 6 443 1065 2016-07-04T10:00:40Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Makewalk-7 0.png 6 408 1030 2016-07-04T09:54:53Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Makewalk-8.png 6 444 1066 2016-07-04T10:00:50Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Makewalk 2.png 6 466 1088 2016-07-04T10:04:28Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Materials 0.png 6 435 1057 2016-07-04T09:59:21Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc-1010-user-pref.png 6 317 846 2016-05-26T12:44:34Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc-1022-load-human.png 6 318 847 2016-05-26T12:44:43Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc-1040-hide-hair.png 6 319 848 2016-05-26T12:44:53Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc-1110-model.png 6 320 849 2016-05-26T12:45:03Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc-1120-human.png 6 321 850 2016-05-26T12:45:13Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc-1130-unwrap.png 6 322 851 2016-05-26T12:45:23Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc-1240-left.png 6 323 852 2016-05-26T12:45:33Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc-1250-delete.png 6 324 853 2016-05-26T12:45:43Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc-1412-makeclothes.png 6 325 854 2016-05-26T12:45:53Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc-1420-progress.png 6 326 855 2016-05-26T12:46:03Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc-1430-mh.png 6 327 856 2016-05-26T12:46:13Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2-520-examine.png 6 293 822 2016-05-26T12:40:35Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2 checkclothes.png 6 630 1807 2020-06-21T14:29:12Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 checkhuman.png 6 631 1808 2020-06-21T14:29:54Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 customprops.png 6 632 1809 2020-06-21T14:30:37Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 heels1.png 6 660 1880 2020-09-26T13:56:18Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 heels2.png 6 661 1881 2020-09-26T13:57:07Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 heels3.png 6 662 1882 2020-09-26T13:57:39Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 heels4.png 6 663 1883 2020-09-26T13:58:15Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 importclothes.png 6 639 1828 2020-07-25T16:20:28Z Punkduck 38 Clothes and material after importing the asset wikitext text/x-wiki Clothes and material after importing the asset 70f821061c45994b65a460d4245e751dc749d02d File:Mc2 intersections.png 6 652 1858 2020-08-06T18:02:15Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 intersections issue.jpg 6 651 1857 2020-08-06T18:01:29Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 loadhumanmfb.png 6 637 1874 1824 2020-09-13T15:27:49Z Punkduck 38 Punkduck uploaded a new version of [[File:Mc2 loadhumanmfb.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 1824 2020-07-24T19:26:00Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 loadpredef.png 6 627 1804 2020-06-21T14:27:50Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 makeclothes2.png 6 628 1872 1805 2020-09-13T14:51:01Z Punkduck 38 Punkduck uploaded a new version of [[File:Mc2 makeclothes2.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 1805 2020-06-21T14:28:13Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 meshes to use.png 6 633 1870 1869 2020-09-13T14:29:31Z Punkduck 38 Punkduck uploaded a new version of [[File:Mc2 meshes to use.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 1869 1810 2020-09-13T14:29:14Z Punkduck 38 Punkduck uploaded a new version of [[File:Mc2 meshes to use.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 1810 2020-06-21T14:31:06Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 tagselector.png 6 629 1806 2020-06-21T14:28:42Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 togglehelper.png 6 659 1875 2020-09-13T15:45:35Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 vertex groups howto.jpg 6 646 1851 2020-08-03T18:31:29Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 vertexgroups1.png 6 647 1852 2020-08-03T18:32:24Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 vertexgroups2.png 6 648 1853 2020-08-03T18:33:16Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 vertexgroups3.png 6 649 1854 2020-08-03T18:33:48Z Punkduck 38 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Mc2 zdepth.png 6 634 1816 2020-07-06T13:03:27Z Punkduck 38 the effects of different z-depth settings wikitext text/x-wiki the effects of different z-depth settings eec63da5ba9697206983ffa0c1246d8896b90328 File:Mc2a-010-female.png 6 257 786 2016-05-26T12:34:38Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-020-model-dress.png 6 258 787 2016-05-26T12:34:48Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-030-material.png 6 259 788 2016-05-26T12:34:58Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-040-seams.png 6 260 789 2016-05-26T12:35:08Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-050-uvs.png 6 261 790 2016-05-26T12:35:18Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-060-make-clothes.png 6 262 791 2016-05-26T12:35:28Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-070-terminal.png 6 263 792 2016-05-26T12:35:38Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-090-files.png 6 264 793 2016-05-26T12:35:48Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-100-mh.png 6 265 794 2016-05-26T12:35:58Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-110-adjust.png 6 266 795 2016-05-26T12:36:08Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-210-separate-skirt.png 6 267 796 2016-05-26T12:36:18Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-220-rename.png 6 268 797 2016-05-26T12:36:28Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-230-snap-waist.png 6 269 798 2016-05-26T12:36:37Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-240-materials.png 6 270 799 2016-05-26T12:36:47Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-250-error.png 6 271 800 2016-05-26T12:36:57Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-260-auto.png 6 272 801 2016-05-26T12:37:07Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-410-texture.png 6 273 802 2016-05-26T12:37:17Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-420-assign-texture.png 6 274 803 2016-05-26T12:37:27Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-430-tex-in-mh.png 6 275 804 2016-05-26T12:37:37Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-510-blotches.png 6 276 805 2016-05-26T12:37:47Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-520-delete-group.png 6 277 806 2016-05-26T12:37:57Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-530-mh-deleted.png 6 278 807 2016-05-26T12:38:07Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-540-behind.png 6 279 808 2016-05-26T12:38:17Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-550-better-delete.png 6 280 809 2016-05-26T12:38:27Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-560-updating.png 6 281 810 2016-05-26T12:38:36Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-610-icon.png 6 282 811 2016-05-26T12:38:46Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-620-render.png 6 283 812 2016-05-26T12:38:56Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-630-thumb.png 6 284 813 2016-05-26T12:39:06Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2a-640-mh.png 6 285 814 2016-05-26T12:39:16Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-010-sel-helpers.png 6 286 815 2016-05-26T12:39:26Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-020-non-quad.png 6 287 816 2016-05-26T12:39:36Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-030-poles.png 6 288 817 2016-05-26T12:39:46Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-040-medallion.png 6 289 818 2016-05-26T12:39:56Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-050-mh-med.png 6 290 819 2016-05-26T12:40:06Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-060-vgroups.png 6 291 820 2016-05-26T12:40:16Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-070-scale.png 6 292 821 2016-05-26T12:40:26Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-080-noscale.png 6 294 823 2016-05-26T12:40:45Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-090-uniform.png 6 295 824 2016-05-26T12:40:55Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-610-teeth.png 6 296 825 2016-05-26T12:41:05Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-620-outdir.png 6 297 826 2016-05-26T12:41:15Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-630-teeth-mh.png 6 298 827 2016-05-26T12:41:25Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-641-auto.png 6 299 828 2016-05-26T12:41:35Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-650-mouth-open.png 6 300 829 2016-05-26T12:41:45Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-660-vgroups.png 6 301 830 2016-05-26T12:41:55Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-670-vgroups.png 6 302 831 2016-05-26T12:42:05Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-680-gums.png 6 303 832 2016-05-26T12:42:15Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-690-teeth1.png 6 304 833 2016-05-26T12:42:25Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-700-asymm.png 6 305 834 2016-05-26T12:42:34Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-710-mouth-open.png 6 306 835 2016-05-26T12:42:44Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-720-head-jaw.png 6 307 836 2016-05-26T12:42:54Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-730-6groups.png 6 308 837 2016-05-26T12:43:04Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-740-6groups-result.png 6 309 838 2016-05-26T12:43:14Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-750-midline-results.png 6 311 840 2016-05-26T12:43:34Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-750-midline.png 6 310 839 2016-05-26T12:43:24Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-760-bottom-line.png 6 312 841 2016-05-26T12:43:44Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-770-bottom-line-results.png 6 313 842 2016-05-26T12:43:54Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-780-shapes.png 6 314 843 2016-05-26T12:44:04Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-790-copy-vgroups.png 6 315 844 2016-05-26T12:44:14Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mc2b-800-vgroups-copied.png 6 316 845 2016-05-26T12:44:24Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mcp-ret-060-calibrate.png 6 475 1097 2016-07-04T10:05:58Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Measure 1.png 6 424 1046 2016-07-04T09:57:32Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mh-hg-infographic01.png 6 404 1026 2016-07-04T09:54:13Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mh-hg-infographic02.png 6 414 1036 2016-07-04T09:55:53Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mh-hg-infographic03.png 6 421 1043 2016-07-04T09:57:02Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mh-hg-infographic04.png 6 472 1094 2016-07-04T10:05:28Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mh-hg-infographic05.png 6 438 1060 2016-07-04T09:59:51Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mh-uiarchitecture.png 6 420 1042 2016-07-04T09:56:52Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mh grid interface.png 6 461 1083 2016-07-04T10:03:39Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mh grid interface2.png 6 396 1018 2016-07-04T09:52:54Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mh interface cam.png 6 476 1098 2016-07-04T10:06:07Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mh material editor.png 6 210 589 2016-01-27T16:56:34Z Duststorm 19 This screenshot shows how the material editor displays shader properties visually. wikitext text/x-wiki This screenshot shows how the material editor displays shader properties visually. 373686aa2bc870c0c700426a325bba3082d5a2d9 File:Mh material editor2.png 6 211 590 2016-01-27T16:57:04Z Duststorm 19 This screenshot shows how the material editor displays shader properties visually. wikitext text/x-wiki This screenshot shows how the material editor displays shader properties visually. 373686aa2bc870c0c700426a325bba3082d5a2d9 File:Morph1.png 6 129 359 2015-08-09T18:34:46Z Fairytail 16 MHBlenderTools: MakeTarget morph1.png wikitext text/x-wiki MHBlenderTools: MakeTarget morph1.png e02b98047fe9e48c0f031f2893d0736c207050c6 File:Mouse 001.png 6 418 1040 2016-07-04T09:56:32Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mpfbeevee.png 6 667 1900 2020-10-25T12:31:49Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Ms assignmtextures.png 6 643 1838 2020-07-26T09:15:17Z Punkduck 38 assign textures to materials wikitext text/x-wiki assign textures to materials ac2d313ce13a0108da663e686100656a75c2111e File:Ms menu.png 6 644 1839 2020-07-26T09:16:17Z Punkduck 38 MakeSkin menu wikitext text/x-wiki MakeSkin menu 483c302d4671eee8024386d64cd09ffa7eab3dd5 File:Ms newsetup.png 6 642 1837 2020-07-26T09:14:02Z Punkduck 38 Setup of a new material wikitext text/x-wiki Setup of a new material a4ec9779672619ea867e1ff5d501abf5263cf304 File:Mwa-010-armature.png 6 454 1076 2016-07-04T10:02:29Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mwa-020-myrig.png 6 423 1045 2016-07-04T09:57:22Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mwa-100-error.png 6 413 1035 2016-07-04T09:55:43Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mwa-110-reverse-hip.png 6 411 1033 2016-07-04T09:55:23Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mwa-120-reversehip.png 6 402 1024 2016-07-04T09:53:54Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mwe-315-local-keys.png 6 473 1095 2016-07-04T10:05:38Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mws-010-panel.png 6 439 1061 2016-07-04T10:00:00Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mws-020-auto.png 6 471 1093 2016-07-04T10:05:18Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mwt-011-panel.png 6 405 1027 2016-07-04T09:54:23Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mwt-020-metarig.png 6 449 1071 2016-07-04T10:01:40Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mwu-010-panel.png 6 399 1021 2016-07-04T09:53:24Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Mwu-030-temp-props.png 6 446 1068 2016-07-04T10:01:10Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:NoShaders2.png 6 486 1207 1205 2016-10-21T17:04:29Z Robbaer 12 Robbaer uploaded a new version of [[File:NoShaders2.png]] wikitext text/x-wiki Replacement version includes quotes as requested by a forum user 32dd5941f9ed698cba8db84ab2b8f493570cbe86 1205 2016-10-21T16:58:48Z Robbaer 12 Replacement version includes quotes as requested by a forum user wikitext text/x-wiki Replacement version includes quotes as requested by a forum user 32dd5941f9ed698cba8db84ab2b8f493570cbe86 File:Noshaders1.png 6 200 530 2015-10-03T14:21:23Z Joepal 14 Create a shortcut to makehuman wikitext text/x-wiki Create a shortcut to makehuman d42c01607092c85ff9c9412af4d71ce92a141599 File:Noshaders2.png 6 201 531 2015-10-03T14:22:14Z Joepal 14 Add --noshaders to the command line wikitext text/x-wiki Add --noshaders to the command line 075dd4b31109be0d63f73e7c5d6de53df20396ad File:Nsmooth.png 6 416 1038 2016-07-04T09:56:12Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Obs-flow-chart-scaled.png 6 441 1063 2016-07-04T10:00:20Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Odd colours.png 6 693 1993 2021-01-25T23:25:38Z Hfugfn65438 108 Quirky rendering of http://www.makehumancommunity.org/clothes/cargo_pants.html_0 wikitext text/x-wiki Quirky rendering of http://www.makehumancommunity.org/clothes/cargo_pants.html_0 d8b3f1c1e90c9a0dc65ffdb9b287746aa95855dd File:Part 1 01.jpg 6 541 1453 2018-05-05T09:54:46Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 1 02.jpg 6 542 1454 2018-05-05T09:55:19Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 1 03.jpg 6 543 1455 2018-05-05T09:55:36Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 1 04.jpg 6 544 1456 2018-05-05T09:56:04Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 1 05.jpg 6 545 1457 2018-05-05T09:56:35Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 1 06.jpg 6 546 1458 2018-05-05T09:57:04Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 1 07.jpg 6 547 1459 2018-05-05T09:57:40Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 1 08.jpg 6 548 1460 2018-05-05T09:57:50Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 1 09.jpg 6 549 1461 2018-05-05T09:58:00Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 1 10.jpg 6 550 1462 2018-05-05T09:58:40Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 2 01.jpg 6 551 1463 2018-05-05T10:00:05Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 2 02.jpg 6 552 1464 2018-05-05T10:00:15Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 2 03.jpg 6 553 1465 2018-05-05T10:00:25Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 2 04.jpg 6 554 1466 2018-05-05T10:00:40Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 2 05.jpg 6 555 1467 2018-05-05T10:00:50Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 2 06.jpg 6 556 1468 2018-05-05T10:01:05Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 3 01.jpg 6 557 1469 2018-05-05T10:03:00Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 3 02.jpg 6 558 1470 2018-05-05T10:03:10Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Part 3 03.jpg 6 559 1471 2018-05-05T10:03:20Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Plugins-mh 002.png 6 458 1080 2016-07-04T10:03:09Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Proxies1.png 6 409 1031 2016-07-04T09:55:03Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Publisher verified.png 6 212 607 2016-03-06T12:43:07Z Joepal 14 Error message about unverified publisher wikitext text/x-wiki Error message about unverified publisher 751840041053f9b69520b2f7a08157327ca16325 File:Random2 2 0.png 6 457 1079 2016-07-04T10:02:59Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Refoot.png 6 406 1028 2016-07-04T09:54:33Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Render 0.png 6 460 1082 2016-07-04T10:03:29Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Savetarget.png 6 61 153 2015-07-25T06:36:52Z Joepal 14 Where to save custom targets wikitext text/x-wiki Where to save custom targets a153b5b629f411cbc8169e50e7ee477c18f036db File:Shortcuts-mh 002.jpg 6 469 1091 2016-07-04T10:04:58Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Symm.png 6 459 1081 2016-07-04T10:03:19Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Texpaint01.png 6 147 386 2015-08-14T14:52:59Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Texpaint02.png 6 148 387 2015-08-14T14:55:04Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Texpaint03.png 6 149 388 2015-08-14T14:55:26Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Texpaint04.png 6 150 389 2015-08-14T14:55:53Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Texpaint05.png 6 151 390 2015-08-14T14:57:46Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Texpaint06.png 6 152 391 2015-08-14T14:58:04Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Texpaint07.png 6 153 392 2015-08-14T14:58:28Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Texpaint08.png 6 154 393 2015-08-14T14:58:52Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Texpaint09.png 6 155 394 2015-08-14T14:59:10Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Texpaint10.png 6 156 395 2015-08-14T14:59:33Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Texpaint11.png 6 157 396 2015-08-14T15:00:03Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Texpaint12.png 6 158 397 2015-08-14T15:00:39Z Joepal 14 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:The toolbar-cameraviews.jpeg 6 428 1050 2016-07-04T09:58:11Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:The toolbar-file.jpeg 6 429 1051 2016-07-04T09:58:21Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:The toolbar-screengrbhelp.jpeg 6 442 1064 2016-07-04T10:00:30Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:The toolbar-smoothandwire.jpeg 6 462 1084 2016-07-04T10:03:49Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:The toolbar-symmetry.jpeg 6 403 1025 2016-07-04T09:54:03Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:The toolbar-undoredo.jpeg 6 427 1049 2016-07-04T09:58:01Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:The toolbar.jpeg 6 422 1044 2016-07-04T09:57:12Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Topologies.png 6 432 1054 2016-07-04T09:58:51Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Topologies 0.png 6 440 1062 2016-07-04T10:00:10Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Torso cropped labelled.png 6 451 1073 2016-07-04T10:01:59Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Transifex.png 6 407 1029 2016-07-04T09:54:43Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:UE4-Truck-Result.png 6 605 1719 2020-03-09T18:27:29Z Assetdk 89 After... wikitext text/x-wiki After... 06793857d718e5f88896e1a3d451ffe5aabbdfae File:UE4-Truck-Window1.png 6 607 1723 2020-03-09T19:16:10Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:UE4-Truck-Window2.png 6 608 1726 1725 2020-03-09T19:31:05Z Assetdk 89 Assetdk uploaded a new version of [[File:UE4-Truck-Window2.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 1725 1724 2020-03-09T19:27:51Z Assetdk 89 Assetdk uploaded a new version of [[File:UE4-Truck-Window2.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 1724 2020-03-09T19:22:28Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:UE4-Truck-Window3.png 6 609 1734 1732 2020-03-09T20:02:58Z Assetdk 89 Assetdk uploaded a new version of [[File:UE4-Truck-Window3.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 1732 2020-03-09T19:58:32Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:UE4-Truck-Window4.png 6 610 1737 2020-03-09T20:37:11Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:UE4-Truck-Window5.png 6 611 1739 2020-03-09T21:15:46Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:UE4-Truck-Window6.png 6 612 1740 2020-03-09T21:24:13Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:UE4-Truck-Window7.png 6 613 1744 1742 2020-03-09T21:37:32Z Assetdk 89 Assetdk uploaded a new version of [[File:UE4-Truck-Window7.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 1742 2020-03-09T21:32:15Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:UE4-Truck-Window8.png 6 614 1745 2020-03-09T21:50:16Z Assetdk 89 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Ue4-26-eye-material.JPG 6 695 1998 1997 2021-01-26T07:44:55Z Fortuna 107 Fortuna uploaded a new version of [[File:Ue4-26-eye-material.JPG]] wikitext text/x-wiki Sample Configuration of eye material in Unreal Engine 4.26. CC0 950bc4bff039d8e52ae0b8a2c0c529ab0180e9f9 1997 2021-01-26T07:43:04Z Fortuna 107 Sample Configuration of eye material in Unreal Engine 4.26. CC0 wikitext text/x-wiki Sample Configuration of eye material in Unreal Engine 4.26. CC0 950bc4bff039d8e52ae0b8a2c0c529ab0180e9f9 File:Ue4-26-teeth-material.jpg 6 698 2002 2021-01-26T08:43:05Z Fortuna 107 Teeth material configuration in Unreal Engine 4.26. CC0 wikitext text/x-wiki Teeth material configuration in Unreal Engine 4.26. CC0 9206fb0fc0b9113d1f9b721e98dda08cf5053c18 File:UtilitiesExampleControls.png 6 401 1023 2016-07-04T09:53:44Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:UtilitiesExampleTab3.png 6 456 1078 2016-07-04T10:02:49Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Viewer 0.png 6 445 1067 2016-07-04T10:01:00Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 File:Weird transparency.png 6 694 1994 2021-01-25T23:26:20Z Hfugfn65438 108 Funny rendering wikitext text/x-wiki Funny rendering 0fb7e3d9dd742a14d0d43b098e607927b3e30457 File:Wip03 0.png 6 431 1053 2016-07-04T09:58:41Z Maintenance script 0 Importing file wikitext text/x-wiki Importing file e4cd7723e5d375272bbfee6a5774f658d7ccdf66 MediaWiki:Common.css 8 127 355 354 2015-08-04T10:16:59Z Joepal 14 css text/css /* CSS placed here will be applied to all skins */ div#mw-panel div.portal div.body ul li a:visited { color: #0645ad; } div#mw-panel div.portal div.body ul li a { color: #0645ad; } a, a:visited { color: #0645ad; } a.new, a.new:visited { color: red; } 87f803645c6adea02a8931e95dbe9c5b830d2a2b 354 353 2015-08-04T10:15:51Z Joepal 14 css text/css /* CSS placed here will be applied to all skins */ div#mw-panel div.portal div.body ul li a:visited { color: #0645ad; } div#mw-panel div.portal div.body ul li a { color: #0645ad; } a, a:visited { color: #0645ad; } 920ba356eb7f25864010f6565ab7a68760c3fe60 353 2015-08-04T10:13:25Z Joepal 14 Created page with "/* CSS placed here will be applied to all skins */ a, a:visited { color: #0b0090; }" css text/css /* CSS placed here will be applied to all skins */ a, a:visited { color: #0b0090; } 1c2c6bd2c8570335d387240cd51f3a33b060ccf5 MediaWiki:Sidebar 8 63 382 378 2015-08-13T11:31:55Z Joepal 14 wikitext text/x-wiki * navigation ** mainpage|mainpage-description ** Documentation:Index|Documentation ** FAQ:Index|FAQ ** Video:Index|Video tutorials ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help * SEARCH * TOOLBOX * LANGUAGES 4fb7eff5dcffd094af7c18cb5e95846839cb6c45 378 160 2015-08-13T11:25:09Z Joepal 14 wikitext text/x-wiki * navigation ** mainpage|mainpage-description ** Documentation:Index|Documentation ** Video:Index|Video tutorials ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help * SEARCH * TOOLBOX * LANGUAGES f9ad2a97c2f82479bf9a799dfc4da07ed9f54add 160 158 2015-07-25T06:44:47Z Joepal 14 wikitext text/x-wiki * navigation ** mainpage|mainpage-description ** Documentation:Index|Documentation ** FAQ:Index|FAQ ** Video:Index|Video tutorials ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help * SEARCH * TOOLBOX * LANGUAGES 4fb7eff5dcffd094af7c18cb5e95846839cb6c45 158 2015-07-25T06:43:30Z Joepal 14 Created page with " * navigation ** mainpage|mainpage-description ** FAQ:Index|FAQ ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help * SEARCH * TOOLBOX * LANGUAGES" wikitext text/x-wiki * navigation ** mainpage|mainpage-description ** FAQ:Index|FAQ ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help * SEARCH * TOOLBOX * LANGUAGES c1a496ebb45063d3fe363012500cde82cdc36920 Documentation:Alternative topologies 3000 233 1110 693 2016-07-05T17:21:30Z Aranuvir 17 wikitext text/x-wiki Makehuman provides a group of alternative topologies which replace the base mesh and are designed for special purposes. These are useful for various applications such as simulation (E.g. a car crash computer simulator), games and so on. [[File:topologies_0.png]] In order to use the alternative topologies provided by MakeHuman; go to Geometries -> Topologies. For alternative topologies we follow a specific naming convention having the structureNameVertex-countE.g. proxy741 is a alternative topology named proxy with 741 vertices, female1605 is an alternative topology designed for females with 1605 vertices in the mesh. For illustration purposes we show the wireframe/mesh view of female1605 with 1605 vertices in the figure below. [[File:Proxies1.png]] d9d71cde5e720afc4fc17c2becc48a5bc641698c 693 2016-05-20T09:04:38Z Joepal 14 Created page with "Makehuman provides a group of alternative topologies which replace the base mesh and are designed for special purposes. These are useful for various applications such as simul..." wikitext text/x-wiki Makehuman provides a group of alternative topologies which replace the base mesh and are designed for special purposes. These are useful for various applications such as simulation (E.g. a car crash computer simulator), games and so on. !IMAGE!Pictures/topologies_0.png!/IMAGE! In order to use the alternative topologies provided by MakeHuman; go to Geometries -> Topologies. For alternative topologies we follow a specific naming convention having the structureNameVertex-countE.g. proxy741 is a alternative topology named proxy with 741 vertices, female1605 is an alternative topology designed for females with 1605 vertices in the mesh. For illustration purposes we show the wireframe/mesh view of female1605 with 1605 vertices in the figure below. !IMAGE!Pictures/Proxies1.png!/IMAGE! 3e49c2b911ca453ba4b39dca230d25bd4ce08782 Documentation:Application design and Code overview 3000 249 1119 726 2016-07-05T17:37:08Z Aranuvir 17 /* The MakeHuman Graphical User Interface (GUI): */ wikitext text/x-wiki === Application design and Code overview === ==== Structural Organization of MakeHuman ==== MakeHuman is organized hierarchically. There is a root application (type gui3d.Application) that handles rendering of objects (guicommon.Object). These objects can be added/removed to/from the root application. Objects added to root application are always visible in the canvas.[I'm wondering if this is really true? - There are object on hidden tabs and the skeleton or mesh can be visible or not. Am I confusing the distinction between 'canvass' and 'view'? - RWB] Every added object has an openGL counterpart. mhmain.MHApplication inherits from root application to constructmain application. A view is a visual context. A tab is a view, for example, the main application is a view.[The main application IS a view or the main application HAS a view? "the "main application frame/window is a view?"- RWB] The Root application[you do meanrootand notmain? - RWB]contains Categories. A Category (gui3d.Category) is a specialised view object which contains multple taskiew objects (gui3d.TaskView). Taskview objects are specialised view objects with a panes and tab. In context of MakeHuman interface, Category objects constitute the upper row of tabs while taskview objects constitute the lower row of tabs. Objects (guicommon.Object) can be added/removed to/from a taskview. Objects added to a taskview are only visible if the taskview is visible. For example, a skeleton added to the skeleton chooser is only visible when the skeleton chooser taskview is visible. Objects added to root application[root not main? - RWB]are always visible. Thus objects like human and all proxies such as clothes are added to theapplication,because they should always be visible. Visiblilty can be disabled by setting the visibility flag on objects but an object that is not added to a currently visible taskview, or the application, is not visible, even if its visibility flag is set positive. [Wording needs improving -- 'should always be visible' and a 'visibility flag' are mixed message - RWB] An object can only be added to one context. So an object is either added to one taskview, or the application, not two different taskviews. Apart from root application, there is another application (type qtui.Application) which implements MH gui structures using Qtlibraries. mhmain.MHApplication inherits from this application too for handling of gui content.e General structure in MH can be represented as: !IMAGE!Pictures/mh-inheritance.png!/IMAGE! ==== Basics of event handling in Makehuman: ==== Makehuman is a GUI based, interactive, Qt application in which objects interact by sending messages to each other. The Qt class QEvent encapsulates notion of low level events like mouse events, key press events, action events, etc. A Qt application is event loop-based, which is basically a program structure which allows events to be prioritized, queued and dispatched to application objects. In a Qt based application, there are different sources of events. Some events like key events and mouse events come from window system, while some others originate from within application. When an event occurs, Qt creates an event object to represent it by constructing an instance of the appropriate QEvent subclass, and delivers it to a particular instance of QObject (or one of its subclasses) by calling its event() function. This function does not handle the event itself, but rather, it calls an event handlerbased on the type of event delivered, and sends an acknowlegement based on whether the event was accepted or ignored. QCoreApplication::exec()method enters the main event loop and waits until exit() is called. It is necessary to call this function to start event handling. In MH, it is done in lib.qtui.Applicationwhich inherits fromQApplicationwhich in turn inherits fromQCoreApplication: def start(self): self.OnInit() self.callAsync(self.started) self.messages.start() self.exec_() In MH, event handling falls in two broad categories. * Event handling forcontainers(application, categories, taskviews) * Event handling forwidgets(contained in containers) ==== Event handling for containers: ==== MH is organized hierarchically in the context of containers. At top is the main application (core.mhmain.MHMainApplication). It contains categories (core.gui.Category), which in turn contains taskviews (core.gui.TaskView). In a Qt-based application, there are five different ways of events processing, as listed below: * * Reimplementing an event handler function like paintEvent(), mousePressEvent() and so on. This is the most common, easiest, but least powerful approach. * ReimplementingQCoreApplication::notify( QObject * receiver, QEvent * event ). This is very powerful, providing complete control; but only one subclass can be active at a time. Qt's event loop and sendEvent() calls use this approach to dispatch events. * Installing an event filter onQCoreApplication::instance(). Such an event filter is able to process all events for all widgets. It's just as powerful as reimplementing notify(); furthermore, it's possible to have more than one application-global event filter. Global event filters even see mouse events for disabled widgets. Note that application event filters are only called for objects that live in the main thread.[I believe that MH is single threaded - implications? RWB] * ReimplementingQObject::event()(as QWidget does). If you do this you get Tab key presses[<--Explain what is special about TAB and shift-TAB presses ?- RWB], and you get to see the events before any widget-specific event filters. * Installing an event filter on the object itself. Such an event filter gets all the events, including Tab and Shift+Tab key press events[<--Explain what is special about TAB and shift-TAB presses ?- RWB], as long as they do not change the focus widget. In MakeHuman, approaches 2 and 4 are used for extensively for event handling. As part of strategy 2,inlib.qtui.Application (which extendsQApplication), notify has been reimplemented:[I don''t understand the implication of this? Expond? -RWB] def notify(self, object, event): self.logger_event.debug('notify(%s, %s(%s))', object, event, event.type()) return super(Application, self).notify(object, event) object is the receiver object. Class implementing notify has to be singleton. [Clarify? - RWB] In MakeHuman,MHApplicationsubclasseslib.qtui.Application.MHApplicationobject is the main application object. It's notify function receives notification from the event loop in the underlying Qt layer about each[container only or widgets too?]event, which is then relayed to receiver object's event method. Thereceiver object's event method is either inherited from QObject or reimplemented. The Receiver object then either sends TRUE or FALSE, as the case may be, to[WHERE??] - RWB lib.qtui.Applicationalso implements an event function, which is called if the receiver object isMHApplication objectitself. Then,lib.qtui.Application.event()checks if its a user-defined event or not,and it is so true is returned, else we call super class's event(). In case of true being returned,Qt dispatches event to receiver object's callEvent function which determines which function to be called on object to handle the event. Called function then handles the event or propagate it to its parent(or to current task if its application object), as may seem fit. ==== Event handling for widgets ==== Most of MH widgets are wrappers around Qt widgets. These widgets (defined in module lib.qtgui) inherit from the respective Qt widgets and the Widget class (lib.qtgui.Widget). MH makes use ofsignal and slot mechanismby making the connection between the signal originating from the Qt layer and the corresponding handler function. For example, class TabBase connects the signal 'currentChanged' to its function 'tabChanged' as follows: class TabsBase(Widget): def __init__(self): super(TabsBase, self).__init__() self.tabBar().setExpanding(False) self.connect(self, QtCore.SIGNAL('currentChanged(int)'), self.tabChanged) ...................... Any class inheriting from TabsBase(e.g., lib.qtgui.Tabs or lib.qtgui.TabBar) also gets this facility. So now whenever signal 'currentChanged' is emitted from Qt layer function 'tabChanged' is called. The result is that when a user clicks the mouse on a tab, the 'tabChanged' code will be called, Similarly, MH Slider widget connects various slider operations to its event handling functions as: ........................... self.connect(self.slider, QtCore.SIGNAL('sliderMoved(int)'), self._changing) self.connect(self.slider, QtCore.SIGNAL('valueChanged(int)'), self._changed) self.connect(self.slider, QtCore.SIGNAL('sliderReleased()'), self._released) self.connect(self.slider, QtCore.SIGNAL('sliderPressed()'), self._pressed) ........................... [-- EDITING/PROOFING ENDS HERE - RWB --] ==== Overriding vs event decorators: ==== The View, Category and Application classes inherit from events3d.EventHandler, hence they have callEvent() function. The events that apply to this category are usually application-wide. If user make a change that impacts the whole application, and whole application must know about this change, then best way to do so is to call callEvent() for all the taskviews of the application,as follows: for category in self.categories.itervalues(): for task in category.tasks: task.callEvent('onMyEvent', params) A good example is the event of makehuman's scene changing(core.qtui.MHApplication._sceneChanged). So when callEvent is called on a taskview object and it has onMyEvent implemented,it is being called. In core.gui3d.View too one can see that most of the events (onShow, onMouseDown,...) on the taskview are propagated by default to their parents - the categories. The categories also are views, so the events are propagated again to their parent, the application. If, again, the application or any category has an onMyEvent method, it is executed. There are some events that affect the application, but only a single task at a time,for example onMouseDown event. It only happens to the active taskview (the others are hidden, so they receive no mouse events). Once the mouse is pressed, an Application.currentTask.callEvent("onMouseDown", event)is issued. This causes the onMouseDown event to be received by the active Taskview, its parent Category, and finally the Application. This call executes any onMouseDown method in these objects. Apart from the Category events described above, there are events used for local purposes. Such events are handled withevent decorators. Suppose we have a new Taskview, FooTaskView. This Taskview has a 'mybar' member variable, which is of type Bar(events3d.eventHandler). The requirement is that when self.mybar executes code, we may want to communicate with its parent to inform it about an event that just happened. So, inside the code for Bar, is located a 'self.callEvent('onBaz', 42)' command. Thus, in the Bar class, we emit a timely event signal and use the event decorator to let the parent Taskview know about the event. In the FooTaskView class, but below the place where self.mybar is created, we add: @self.mybar.mhEvent def onBaz(event): # code on event. # guess what, event == 42. When now the self.mybar Bar reaches that callEvent, the above method, located in FooTaskView, will be executed. core.mhmain.MHApplication's human is perfect example of this approach.Human has onMouseDown event handler and we need to relay it to application. In loadMainGui function of MHApplication, we add decorator to human attribute as: def loadMainGui(self): .............. @self.selectedHuman.mhEvent def onMouseDown(event): if self.tool: self.selectedGroup = self.getSelectedFaceGroup() self.tool.callEvent("onMouseDown", event) else: self.currentTask.callEvent("onMouseDown", event) ............. Application.human.onMouseDown event is caught and it starts its trip from the Human; it is captured by the decorated method located in Application.loadMainGui (this is the place where the method is bound with the event), it is sent to the currentTask, propagated through the parent category, and finally reaches its destination, the Application. A more intense process happens on Human.onChanged. This is emitted when a save/load happpens, so the whole application has to know. So it starts from the human, captured by the decorated method in app, sent to ALL the taskviews in MH, and finally through the categories again to the app. ==== The MakeHuman Graphical User Interface (GUI): ==== The MakeHuman GUI is based on the pyQt library which, in turn, is built on the Qt library. Qt is a development framework for the creation of applications and user interfaces for desktop. Important GUI classes in MakeHuman are: lib.qtui.Canvas:This is the class in MakeHuman which takes care of rendering openGL graphics.It inherits from Qt's QGLWidget class which is a widget for rendering OpenGL graphics. QGLWidget provides functionality for displaying OpenGL graphics integrated into a Qt application. It is very simple to use. You inherit from it and use the subclass like any other QWidget, except that you have the choice between using QPainter and standard OpenGL rendering commands. The Canvas class reimplements three functions from parent class to perform openGL tasks: * paintGL() - Renders the OpenGL scene. It gets called whenever the widget needs to be updated. * resizeGL() - Sets up the OpenGL viewport, projection, etc. Gets called whenever the widget has been resized (and also when it is shown for the first time because all newly created widgets get a resize event automatically). * initializeGL() - Sets up the OpenGL rendering context, defines display lists, etc. Gets called once before the first timeresizeGL() orpaintGL() is called. lib.qtui.Application: This is the foundation class which manages GUI's control flow and main settings. It inherits fromQtGui.QApplicationandevents3d.EventHandler. QApplicationcontains the main event loop, where all events from the window system and other sources are processed and dispatched. It also handles the application's initialization and finalization.Application class holds gui main window(instance of lib.qtui.Frame). Application class receives event notifications from underlying Qt user intrface framework and dispatches them to appropriateuser intrface elements in MakeHuman. GUI architecture inMakeHumanMH can be depicted as follows: [[File:mh-uiarchitecture.png]] === Application Design Notes from IRC Chat with Thanassis === Thanasis comments on gaining the big picture of MH coding * [16:12:57] <Thanasis> I would avoid describing the different parts of code as different entities * [16:13:43] <Thanasis> ie. follow the object-oriented paradigm, and avoid thinking who is inherited by who etc. * [16:13:48] <Thanasis> more specifically * [16:15:03] <Thanasis> I mean, treat an object as a single object * [16:15:08] <Thanasis> I'll show an example * [16:15:45] <Thanasis> you have the application. Inheritance says it consists of three classes, QApplication, MHApplication, and mhmain.Application (names may differ a bit). * [16:15:58] <Thanasis> but it is only one object * [16:16:42] <Thanasis> We don't care if the QApplication activates a function in MH application, because it happens inside the same object * [16:16:50] <Thanasis> the application * [16:17:18] <Thanasis> we only pay attention to the interactions the application object has with other objects * [16:17:43] <Doctor_Hell_> but if you need to find a function, you need to follow the inheritage chain...no? * [16:18:24] <Thanasis> of course, in the code, yes. but in a diagram it will make it complex * [16:21:02] <Thanasis> well, let's go top-down * [16:21:29] <Thanasis> we have: QT, App, Tab, Task * [16:21:56] <Thanasis> The event starts from QT, and activates a handler in App * [16:22:22] <Thanasis> The App sends a new event to the current Task * [16:22:46] <Thanasis> The task handles it, and sends a copy to the parent Tab * [16:23:13] <Thanasis> And finally the Tab handles it and sends a copy to the App * [16:23:35] <Thanasis> which handles it, and stops * [Referring to how distrating it is to describe the big picture of MH, Thanasis comments ...] * "Distract? no, this does not consume any brain energy" * We love your help- the more the bettter -- Thanks [RWB] Comments Regarding MacroTarget slider processing/handling based on naming conventions: * [16:36:24] <Doctor_Hell_> [23:26] <Doctor_Hell_> another complex part to know is the engine coded by Jonas to automatically handel the targets using their name * [16:37:58] <Thanasis> uh. yes, that's a tough one too. I think it does, but I don't remember why and how, because it was a long time ago and Jonas changed the human modifier class since then * [16:38:18] <Thanasis> he simplified it, actually, but I haven't seen the new version yet * [16:38:34] <Doctor_Hell_> where is the code? * [16:38:49] <Thanasis> apps/humanmodifier.py, I think * [16:39:01] <Doctor_Hell_> Jonas should be very busy recently, since I asked him but he didn't reply me yet. * [16:42:37] <Thanasis> um by the way, reading humanmodifier alone won't help a lot. I would suggest starting from the macro plugin, to trace what happens when a slider is created, and when the user moves a slider. It might be easier this way Difficulties in understanding relationships between folder names / module names and the object structure * [16:39:36] <Doctor_Hell_> ANother thing to understand is why we have some code inapps, other incore, other in libs..the logic is not clear for me.. * [16:39:52] <Thanasis> ah, ignore logic in that part. :) * [16:40:20] <Thanasis> as far as I know it is all because of mh history so far * [16:40:29] <Thanasis> the way it developed. * [16:40:56] <Doctor_Hell_> I know some of it * [16:41:24] <Doctor_Hell_> in the early times,it was planned to have a core folder, with all important main files * [16:42:03] <Doctor_Hell_> then anapps folder, to contain many application based on the core files: makeHuman, makeANime, MakeToon, etc.. * [16:42:29] <Doctor_Hell_> butsharedandlibswere added later...I don't know why * [16:43:10] <Thanasis>libs, they are classes imported from c++ directly * [16:43:48] <Doctor_Hell_> ah ..so only the "shared" folder is the mystery * [16:44:04] <Thanasis> shared, they are later classes used by many different parts of the code at the same time * [16:44:15] <Thanasis> classes created later* * [16:44:28] <Thanasis> ie. material. It's used literally everywhere * [16:44:32] <Thanasis> progress too * [16:44:58] <Doctor_Hell_> ok..at least now it make sense, thank you * Comments on New API project * [16:45:39] <Doctor_Hell_> now that you have more time, will you look at the API? * [16:46:55] <Thanasis> 'time' != 'creativity'. I expect it will be easier to me after the start of the semester * [16:46:27] <Doctor_Hell_> if you are logged to MH site, you can see this:!LINK!http://www.makehuman.org/blog/the_makehuman_api_project_mhapi.html -- http://www.makehuman.org/blog/the_makehuman_api_project_mhapi.html!/LINK! * [16:47:02] <Doctor_Hell_> Also Joel has already created this:!LINK!https://bitbucket.org/joepal1976/makehuman-api-project/overview -- https://bitbucket.org/joepal1976/makehuman-api-project/overview!/LINK! * [16:48:52] <Doctor_Hell_> at the moment, you can just post a list of wished api in the issue 534 * [16:49:16] <Doctor_Hell_> we want to start the API in few weeks..they are fundamental, in order to have more contributors... * [16:51:05] <Thanasis> oh, boy. I want to clean up this code!LINK!https://bitbucket.org/joepal1976/makehuman-api-project/commits/aa5c12953fb2c8a1723b21bb0b7d90667653d615 -- https://bitbucket.org/joepal1976/makehuman-api-project/commits/aa5c12953...!/LINK!* ​Go for it? [RWB] :) The Doc_Hell Diagram (green and red arrows that even Glynn couln't understand) [Summary - concentrate on green arrows not red arrows to get the big picture] * <Doctor_Hell_> this is an example of bad diagram:!LINK!https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0 -- https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0!/LINK! * [16:52:48] <Thanasis> well, in your shape, the actual thing is about the green arrows * [16:53:19] <Thanasis> the red arrows could have been implemented in hundreds of different ways * [16:53:44] <Thanasis> but the important is their result, the green arrows * [16:53:53] <Doctor_Hell_> talking about how to draw the objects? * [16:54:26] <Thanasis> well, my idea was, do two shapes * [16:54:36] <Thanasis> the first without code * [16:55:10] <Thanasis> only showing the 5 steps like I explained above, ie, the green arrows * [16:55:28] <Thanasis> the second can explain each step in detail using the red arrows * [16:55:50] <Thanasis> but in any case the definition is the following * [16:56:04] <Thanasis> an event is, you send the name of a method to someone * [16:56:14] <Doctor_Hell_> ok...but also we have the description written by Manish. I'll show you it tomorrow * [16:56:21] <Thanasis> and that someone executes that method of theirs * [16:56:47] <Thanasis> sure, there are many ways to describe it * [16:57:00] <Doctor_Hell_> I hope we can find the best one * [16:57:07] <Thanasis> I think that they all match though in some certain key points * [16:57:52] <Thanasis> if these are filtered out, the explanation may be more simple And touching on API ideas ... * [16:59:09] <Doctor_Hell_> since the core is too complex for average python programmers * [16:59:36] <Thanasis> yes... perhaps the code could be organized in tiers. * [17:00:00] <Thanasis> core, classes, plugins, scripts * [17:00:27] <Doctor_Hell_> ah you are talking of the current code, not the simplified api * [17:00:54] <Doctor_Hell_> yes, it's a good idea..but what group under "core" ? * [17:01:25] <Thanasis> theapplication and its interfaces(ie.communication with the system and devices. QT, GL etc.) * [17:01:59] <Thanasis> classes are abstract, they use the application by calling its methods * [17:02:35] <Thanasis> the application uses the interfaces (QT, GL.these are actually harder than the application andcould be a sepparate tier) * [17:02:54] <Thanasis> thepluginsuse the classes to create objects * [17:03:26] <Doctor_Hell_> I see some possible confusion because: * [17:04:24] <Doctor_Hell_> - not all core modules are into core folder (for example qtui and qtgui are in libs) * [17:04:49] <Doctor_Hell_> - Classes are everywhere * [17:05:07] <Thanasis> yes, libs folder consists of both core and classes... indeed * [17:05:23] <Thanasis> andinterfacestoo * [17:06:51] <Thanasis> but in general, this separation exists somehow. I'm not sure how, but the past programmers instinctively created it, perhaps for better manageability * [17:08:14] <Thanasis> ie. Human is a class, Material too, Armature (probably making name wrong again), and to function I observe that they use callbacks of Application * [17:08:38] <Thanasis> They never use interfaces directly * [17:09:46] <Thanasis> Even for drawing the human, it is the Application that will give the Human's object3d to OpenGL, not the Human directly * [17:10:31] <Thanasis> and plugins use classes ie. they use the callbacks that Human, Material etc. have * [17:11:08] <Doctor_Hell_> Do you mean abstraction classes? * [17:13:27] <Doctor_Hell_> Thanasis: about new API:!LINK!http://bugtracker.makehuman.org/issues/534 -- http://bugtracker.makehuman.org/issues/534!/LINK! * [17:13:42] <Doctor_Hell_> and!LINK!http://bugtracker.makehuman.org/projects/makehuman/wiki/Abstraction_API_for_plugins -- http://bugtracker.makehuman.org/projects/makehuman/wiki/Abstraction_API_...!/LINK! * [17:13:57] <Doctor_Hell_> Feel free to add wished api calls === Q & A with Glynn Clements === Question: For an event when user clicks on a tab, Tabs class method tabChanged is called. QTabWidget documentation.There is no such method. Response: The tabChanged method is defined for qtgui.TabsBase (and overridden for qtgui.Tabs). Both qtgui.Tabs and qtgui.TabBar inherit from qtgui.TabsBase. Tabs inherits from both TabsBase and QTabWidget while TabBar inherits from both TabsBase and QTabBar. Both QTabWidget and QTabBar define the currentChanged signal, which is emitted whenever the current tab changes. The TabsBase initialiser connects this signal to the tabChanged method (lib/qtgui.py:109): class TabsBase(Widget): def __init__(self): ... self.connect(self, QtCore.SIGNAL('currentChanged int)'), self.tabChanged) ========================================================== Question: is it true that qtui module: low level module, that handles signals directly from QtCore, QtGui and QtOpenGL? Response: qtui defines the classes for the application (QApplication subclass), main window QMainWindow subclass), drawing canvas (QGLWidget subclass), and some associated support classes. In other words, it implements the high-level UI, or at least the aspects which are tied to Qt. Question: is it true that qtgui module: low level module, that define the basic widgets of the GUI as buttons, radiobuttons, etc.. Response: Yes; qtgui is essentially a compatibility layer between the Qt widget classes and the legacy MH GUI toolkit. The classes provide methods which more closely mimic the behaviour of original gui3d widgets. Qt events are translated to MH events3d events. Question: Is it true that gui3d module: high level module, that define the principal public classes of MakeHuman: Application, Category, TaskView and View. Response: This is what's left of the legacy MH GUI toolkit. Before the move to Qt, everything was a "View". Now it's just the high-level containers (Application, Category, Task) which exist as somewhere to put event handlers. Question: What is the purpose of the module guicommon.py? Looking at the module name, it appears to be a sort of library for the GUI functions, but it's a completely different thing. What is it really? Response: Object used to be part of gui3d. Its primary function is to be the base class for Human. It's the other main subclass of events3d.EventHandler (the first being gui3d.View). It's not really accurate to call it a "wrapper" around Object3D (although it can have instances of both module3d.Object3D and object3d.Object3D as members). One of the main differences between guicommon.Object and module3d.Object3D is that the latter is a single mesh, while the former has up to four meshes (all of type module3d.Object3D): the base (or "seed") mesh, a proxy mesh, a subdivided mesh, and a subdivided proxy mesh. It [guicommon.py or guicommon.Object ??RWB] also contains an object transformation (location, rotattion, scale) [method?], and optionally a display mesh (object3d.Object3D). As a subclass of EventHandler, it [guicommon.Object ??RWB] provides mouse handlers which propagate the event to the object's view (these are overridden for the Human within MHApplication.loadMainGui). Question: G.app is the singular mhmain.MHApplication instance; the callEvent method (inherited from event3d.EventHandler) will end up calling G.app.onMouseDownCallback. How the function callEvent end up calling G.app.onMouseDownCallback? Response: "direction" will be either onMouseDownCallback or onMouseUpCallback. Note the "Callback" suffix. So typical event flow for clicking on the human model is: G.app.mainwin.canvas.mouseUpDownEvent ("onMouseDownCallback") [Canvas.mouseUpDownEvent] G.app.callEvent("onMouseDownCallback") [EventHandler.callEvent] G.app.onMouseDownCallback() [gui3d.Application.onMouseDownCallback] G.app.selectedHuman.callEvent('onMouseDown', event) [EventHandler.callEvent] G.app.selectedHuman.onMouseDown() [local function in MHApplication.loadMainGui] G.app.currentTask.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.currentTask.onMouseDown() [View.onMouseDown] G.app.currentCategory.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.currentCategory.onMouseDown() [View.onMouseDown] G.app.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.onMouseDown() [MHApplication.onMouseDown] Notes: G.app.currentTask.parent == G.app.currentCategory G.app.currentCategory.parent == G.app Question: is the eventType string (also called 'direction') originated by QT? Response: No. "direction" is just so that code which is common to both mouse press and mouse release events can go into a single method (mouseUpDownEvent) rather than duplicating it in mousePressEvent() and mouseReleaseEvent(). Those functions are identical except for the name of the event passed to callEvent. Bear in mind that self.callEvent("onMouseDown", event) is almost the same as self.onMouseDown(event), except that callEvent forces a redraw after the event has been dealt with, and has some support for logging and profiling. Once you strip that away, the guts of callEvent() is just: method = getattr(self, eventType) method(event) ====================================================================== Question: Can the modularization of the code can be improved? Response: Modularisation is already quite good. Too much of it can make the code harder to understand. Currently, we try to avoid importing OpenGL or Qt modules (directly or indirectly) into modules which don't inherently depend upon them (e.g. guicommon.Object imports object3d locally in the attachMesh and detachMesh methods, so it only gets imported if you actually need to render the object). TODO ACTION. One minor point which I noticed: lib/camera.py imports glmodule solely for the queryDepth() call in convertToWorld2D (the Z coordinate is obtained by retrieving a value from the depth buffer using the X,Y coordinates). This should probably be a local import in that method, so that camera.py could be used in e.g. import/export utilities. ========================================================================== Question: [Referring to DocHell's red and green diagram (!LINK!https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0] -- https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0]!/LINK!] Response: I have no idea; I can't follow that [diagram]. It would probably help if you simply ignore CallEvent(), and treat object.callEvent('method',event) as just object.method(event). The two factors which make following the flow slightly complicated are: Methods aren't always defined within the class used to create an object, but may be inherited from one of its base classes. Event handlers may be dynamically added to an object with the mhEvent method (which is usually invoked using Python's decorator syntax). This is done for the Human object in MHApplication.loadMainGui(): @self.selectedHuman.mhEvent def onMouseDown(event): .... If you aren't familiar with the decorator syntax, the above is equivalent to: def onMouseDown(event): ... self.selectedHuman.mhEvent(onMouseDown) which in turn boils down to: def onMouseDown(event): ... self.selectedHuman.onMouseDown = onMouseDown ================================================================================= Question: Could you provide an explanation of what a weak reference is? How might this impact MakeHuman? Response: [Jonas Hauquier ] A weak reference, one that is not accounted for by the garbage collection. Garbage collection removes objects from memory that have no pointers to them anymore. Weakrefs are not counted among those, so if the object has only weakrefs pointing to it, and not real pointers, it will be removed anyway. This is to make sure that object A and B that always point to each other, are not kept in memory just because they keep referencing each other (I believe the garbage collection does not do expensive graph traversals to check what is still referenced by the active context). [Glynn Clements] Sort of. Python uses both reference-counting (which can't handle circular references) and reachability-based garbage collection (which can). If an object's reference count reaches zero, it will be finalised immediately. But an object with a non-zero reference count can still be finalised if it can be determined that it isn't reachable during a garbage-collection sweep. However: the garbage collector won't attempt to finalise reference cycles if any of the objects in the cycle have a __del__ method, as it can't determine a safe order in which to execute them. Instead, it adds them to a list, accessible as gc.garbage. Application code can inspect this list, manually finalise the objects (which should break the cycles), then remove them from the list (otherwise their presence in gc.garbage will itself constitute a reference). It's possible to have the garbage collector report such cases using gc.set_debug(gc.DEBUG_UNCOLLECTABLE). Only a few MH classes contain __del__ methods. These will only present a problem if the object itself is part of a cycle (i.e. contains references to "complex" objects which themselves contain references which could lead back to the original object). "Leaf-node" classes such as Texture and Shader shouldn't present a problem unless their creators attach additonal references to them. This may be an issue for e.g. qtgui.Slider and qtgui.RadioButton, as these have __del__ methods and will naturally create circular references. Use of weakref may be advised here. Similarly for queue.Thread. SceneItem in plugins/7_scene_editor.py may also be a problem. ============================================================================= Question: Could you clarify wherther the following acurately describe the use of decorators? A basic decorator is a function that: 1) Gets a function "A" as argument 2) Modifies the behavior of "A" 3) Returns a "decorated" version of "A" Response: Correct. Question: Topic: Decorators and side-effects. When is a decorator not about generating a function? So, if the above accurately descibes a decorator, consider the code: @self.selectedHuman.mhEvent def onMouseDown(event): This should translate: onMouseDown = self.selectedHuman.mhEvent(onMouseDown) One would expect that using mhEvent as decorator, it returns a function, but instead, it returns None: def mhEvent(self, eventMethod): self.attachEvent(eventMethod.__name__, eventMethod) How can it be used as decorator? Response: Because the returned "function" isn't actually used anywhere. The definition is local to loadMainGui(), which doesn't reference the functions, so the fact that e.g. onMouseDown is None within loadMainGui() doesn't matter. The mhEvent() method is used for its side-effects, not its return value. It attaches an event to the selectedHuman. It is equivalent to: self.selectedHuman.attachEvent(onMouseDown.__name__, onMouseDown) ============================================================================== 300a932a8267589872248ca320b1f13353b328de 726 2016-05-20T11:35:21Z Joepal 14 Created page with " === Application design and Code overview === ==== Structural Organization of MakeHuman ==== MakeHuman is organized hierarchically. There is a root application (type gui3d..." wikitext text/x-wiki === Application design and Code overview === ==== Structural Organization of MakeHuman ==== MakeHuman is organized hierarchically. There is a root application (type gui3d.Application) that handles rendering of objects (guicommon.Object). These objects can be added/removed to/from the root application. Objects added to root application are always visible in the canvas.[I'm wondering if this is really true? - There are object on hidden tabs and the skeleton or mesh can be visible or not. Am I confusing the distinction between 'canvass' and 'view'? - RWB] Every added object has an openGL counterpart. mhmain.MHApplication inherits from root application to constructmain application. A view is a visual context. A tab is a view, for example, the main application is a view.[The main application IS a view or the main application HAS a view? "the "main application frame/window is a view?"- RWB] The Root application[you do meanrootand notmain? - RWB]contains Categories. A Category (gui3d.Category) is a specialised view object which contains multple taskiew objects (gui3d.TaskView). Taskview objects are specialised view objects with a panes and tab. In context of MakeHuman interface, Category objects constitute the upper row of tabs while taskview objects constitute the lower row of tabs. Objects (guicommon.Object) can be added/removed to/from a taskview. Objects added to a taskview are only visible if the taskview is visible. For example, a skeleton added to the skeleton chooser is only visible when the skeleton chooser taskview is visible. Objects added to root application[root not main? - RWB]are always visible. Thus objects like human and all proxies such as clothes are added to theapplication,because they should always be visible. Visiblilty can be disabled by setting the visibility flag on objects but an object that is not added to a currently visible taskview, or the application, is not visible, even if its visibility flag is set positive. [Wording needs improving -- 'should always be visible' and a 'visibility flag' are mixed message - RWB] An object can only be added to one context. So an object is either added to one taskview, or the application, not two different taskviews. Apart from root application, there is another application (type qtui.Application) which implements MH gui structures using Qtlibraries. mhmain.MHApplication inherits from this application too for handling of gui content.e General structure in MH can be represented as: !IMAGE!Pictures/mh-inheritance.png!/IMAGE! ==== Basics of event handling in Makehuman: ==== Makehuman is a GUI based, interactive, Qt application in which objects interact by sending messages to each other. The Qt class QEvent encapsulates notion of low level events like mouse events, key press events, action events, etc. A Qt application is event loop-based, which is basically a program structure which allows events to be prioritized, queued and dispatched to application objects. In a Qt based application, there are different sources of events. Some events like key events and mouse events come from window system, while some others originate from within application. When an event occurs, Qt creates an event object to represent it by constructing an instance of the appropriate QEvent subclass, and delivers it to a particular instance of QObject (or one of its subclasses) by calling its event() function. This function does not handle the event itself, but rather, it calls an event handlerbased on the type of event delivered, and sends an acknowlegement based on whether the event was accepted or ignored. QCoreApplication::exec()method enters the main event loop and waits until exit() is called. It is necessary to call this function to start event handling. In MH, it is done in lib.qtui.Applicationwhich inherits fromQApplicationwhich in turn inherits fromQCoreApplication: def start(self): self.OnInit() self.callAsync(self.started) self.messages.start() self.exec_() In MH, event handling falls in two broad categories. * Event handling forcontainers(application, categories, taskviews) * Event handling forwidgets(contained in containers) ==== Event handling for containers: ==== MH is organized hierarchically in the context of containers. At top is the main application (core.mhmain.MHMainApplication). It contains categories (core.gui.Category), which in turn contains taskviews (core.gui.TaskView). In a Qt-based application, there are five different ways of events processing, as listed below: * * Reimplementing an event handler function like paintEvent(), mousePressEvent() and so on. This is the most common, easiest, but least powerful approach. * ReimplementingQCoreApplication::notify( QObject * receiver, QEvent * event ). This is very powerful, providing complete control; but only one subclass can be active at a time. Qt's event loop and sendEvent() calls use this approach to dispatch events. * Installing an event filter onQCoreApplication::instance(). Such an event filter is able to process all events for all widgets. It's just as powerful as reimplementing notify(); furthermore, it's possible to have more than one application-global event filter. Global event filters even see mouse events for disabled widgets. Note that application event filters are only called for objects that live in the main thread.[I believe that MH is single threaded - implications? RWB] * ReimplementingQObject::event()(as QWidget does). If you do this you get Tab key presses[<--Explain what is special about TAB and shift-TAB presses ?- RWB], and you get to see the events before any widget-specific event filters. * Installing an event filter on the object itself. Such an event filter gets all the events, including Tab and Shift+Tab key press events[<--Explain what is special about TAB and shift-TAB presses ?- RWB], as long as they do not change the focus widget. In MakeHuman, approaches 2 and 4 are used for extensively for event handling. As part of strategy 2,inlib.qtui.Application (which extendsQApplication), notify has been reimplemented:[I don''t understand the implication of this? Expond? -RWB] def notify(self, object, event): self.logger_event.debug('notify(%s, %s(%s))', object, event, event.type()) return super(Application, self).notify(object, event) object is the receiver object. Class implementing notify has to be singleton. [Clarify? - RWB] In MakeHuman,MHApplicationsubclasseslib.qtui.Application.MHApplicationobject is the main application object. It's notify function receives notification from the event loop in the underlying Qt layer about each[container only or widgets too?]event, which is then relayed to receiver object's event method. Thereceiver object's event method is either inherited from QObject or reimplemented. The Receiver object then either sends TRUE or FALSE, as the case may be, to[WHERE??] - RWB lib.qtui.Applicationalso implements an event function, which is called if the receiver object isMHApplication objectitself. Then,lib.qtui.Application.event()checks if its a user-defined event or not,and it is so true is returned, else we call super class's event(). In case of true being returned,Qt dispatches event to receiver object's callEvent function which determines which function to be called on object to handle the event. Called function then handles the event or propagate it to its parent(or to current task if its application object), as may seem fit. ==== Event handling for widgets ==== Most of MH widgets are wrappers around Qt widgets. These widgets (defined in module lib.qtgui) inherit from the respective Qt widgets and the Widget class (lib.qtgui.Widget). MH makes use ofsignal and slot mechanismby making the connection between the signal originating from the Qt layer and the corresponding handler function. For example, class TabBase connects the signal 'currentChanged' to its function 'tabChanged' as follows: class TabsBase(Widget): def __init__(self): super(TabsBase, self).__init__() self.tabBar().setExpanding(False) self.connect(self, QtCore.SIGNAL('currentChanged(int)'), self.tabChanged) ...................... Any class inheriting from TabsBase(e.g., lib.qtgui.Tabs or lib.qtgui.TabBar) also gets this facility. So now whenever signal 'currentChanged' is emitted from Qt layer function 'tabChanged' is called. The result is that when a user clicks the mouse on a tab, the 'tabChanged' code will be called, Similarly, MH Slider widget connects various slider operations to its event handling functions as: ........................... self.connect(self.slider, QtCore.SIGNAL('sliderMoved(int)'), self._changing) self.connect(self.slider, QtCore.SIGNAL('valueChanged(int)'), self._changed) self.connect(self.slider, QtCore.SIGNAL('sliderReleased()'), self._released) self.connect(self.slider, QtCore.SIGNAL('sliderPressed()'), self._pressed) ........................... [-- EDITING/PROOFING ENDS HERE - RWB --] ==== Overriding vs event decorators: ==== The View, Category and Application classes inherit from events3d.EventHandler, hence they have callEvent() function. The events that apply to this category are usually application-wide. If user make a change that impacts the whole application, and whole application must know about this change, then best way to do so is to call callEvent() for all the taskviews of the application,as follows: for category in self.categories.itervalues(): for task in category.tasks: task.callEvent('onMyEvent', params) A good example is the event of makehuman's scene changing(core.qtui.MHApplication._sceneChanged). So when callEvent is called on a taskview object and it has onMyEvent implemented,it is being called. In core.gui3d.View too one can see that most of the events (onShow, onMouseDown,...) on the taskview are propagated by default to their parents - the categories. The categories also are views, so the events are propagated again to their parent, the application. If, again, the application or any category has an onMyEvent method, it is executed. There are some events that affect the application, but only a single task at a time,for example onMouseDown event. It only happens to the active taskview (the others are hidden, so they receive no mouse events). Once the mouse is pressed, an Application.currentTask.callEvent("onMouseDown", event)is issued. This causes the onMouseDown event to be received by the active Taskview, its parent Category, and finally the Application. This call executes any onMouseDown method in these objects. Apart from the Category events described above, there are events used for local purposes. Such events are handled withevent decorators. Suppose we have a new Taskview, FooTaskView. This Taskview has a 'mybar' member variable, which is of type Bar(events3d.eventHandler). The requirement is that when self.mybar executes code, we may want to communicate with its parent to inform it about an event that just happened. So, inside the code for Bar, is located a 'self.callEvent('onBaz', 42)' command. Thus, in the Bar class, we emit a timely event signal and use the event decorator to let the parent Taskview know about the event. In the FooTaskView class, but below the place where self.mybar is created, we add: @self.mybar.mhEvent def onBaz(event): # code on event. # guess what, event == 42. When now the self.mybar Bar reaches that callEvent, the above method, located in FooTaskView, will be executed. core.mhmain.MHApplication's human is perfect example of this approach.Human has onMouseDown event handler and we need to relay it to application. In loadMainGui function of MHApplication, we add decorator to human attribute as: def loadMainGui(self): .............. @self.selectedHuman.mhEvent def onMouseDown(event): if self.tool: self.selectedGroup = self.getSelectedFaceGroup() self.tool.callEvent("onMouseDown", event) else: self.currentTask.callEvent("onMouseDown", event) ............. Application.human.onMouseDown event is caught and it starts its trip from the Human; it is captured by the decorated method located in Application.loadMainGui (this is the place where the method is bound with the event), it is sent to the currentTask, propagated through the parent category, and finally reaches its destination, the Application. A more intense process happens on Human.onChanged. This is emitted when a save/load happpens, so the whole application has to know. So it starts from the human, captured by the decorated method in app, sent to ALL the taskviews in MH, and finally through the categories again to the app. ==== The MakeHuman Graphical User Interface (GUI): ==== The MakeHuman GUI is based on the pyQt library which, in turn, is built on the Qt library. Qt is a development framework for the creation of applications and user interfaces for desktop. Important GUI classes in MakeHuman are: lib.qtui.Canvas:This is the class in MakeHuman which takes care of rendering openGL graphics.It inherits from Qt's QGLWidget class which is a widget for rendering OpenGL graphics. QGLWidget provides functionality for displaying OpenGL graphics integrated into a Qt application. It is very simple to use. You inherit from it and use the subclass like any other QWidget, except that you have the choice between using QPainter and standard OpenGL rendering commands. The Canvas class reimplements three functions from parent class to perform openGL tasks: * paintGL() - Renders the OpenGL scene. It gets called whenever the widget needs to be updated. * resizeGL() - Sets up the OpenGL viewport, projection, etc. Gets called whenever the widget has been resized (and also when it is shown for the first time because all newly created widgets get a resize event automatically). * initializeGL() - Sets up the OpenGL rendering context, defines display lists, etc. Gets called once before the first timeresizeGL() orpaintGL() is called. lib.qtui.Application: This is the foundation class which manages GUI's control flow and main settings. It inherits fromQtGui.QApplicationandevents3d.EventHandler. QApplicationcontains the main event loop, where all events from the window system and other sources are processed and dispatched. It also handles the application's initialization and finalization.Application class holds gui main window(instance of lib.qtui.Frame). Application class receives event notifications from underlying Qt user intrface framework and dispatches them to appropriateuser intrface elements in MakeHuman. GUI architecture inMakeHumanMH can be depicted as follows: !IMAGE!Pictures/mh-uiarchitecture.png!/IMAGE! === Application Design Notes from IRC Chat with Thanassis === Thanasis comments on gaining the big picture of MH coding * [16:12:57] <Thanasis> I would avoid describing the different parts of code as different entities * [16:13:43] <Thanasis> ie. follow the object-oriented paradigm, and avoid thinking who is inherited by who etc. * [16:13:48] <Thanasis> more specifically * [16:15:03] <Thanasis> I mean, treat an object as a single object * [16:15:08] <Thanasis> I'll show an example * [16:15:45] <Thanasis> you have the application. Inheritance says it consists of three classes, QApplication, MHApplication, and mhmain.Application (names may differ a bit). * [16:15:58] <Thanasis> but it is only one object * [16:16:42] <Thanasis> We don't care if the QApplication activates a function in MH application, because it happens inside the same object * [16:16:50] <Thanasis> the application * [16:17:18] <Thanasis> we only pay attention to the interactions the application object has with other objects * [16:17:43] <Doctor_Hell_> but if you need to find a function, you need to follow the inheritage chain...no? * [16:18:24] <Thanasis> of course, in the code, yes. but in a diagram it will make it complex * [16:21:02] <Thanasis> well, let's go top-down * [16:21:29] <Thanasis> we have: QT, App, Tab, Task * [16:21:56] <Thanasis> The event starts from QT, and activates a handler in App * [16:22:22] <Thanasis> The App sends a new event to the current Task * [16:22:46] <Thanasis> The task handles it, and sends a copy to the parent Tab * [16:23:13] <Thanasis> And finally the Tab handles it and sends a copy to the App * [16:23:35] <Thanasis> which handles it, and stops * [Referring to how distrating it is to describe the big picture of MH, Thanasis comments ...] * "Distract? no, this does not consume any brain energy" * We love your help- the more the bettter -- Thanks [RWB] Comments Regarding MacroTarget slider processing/handling based on naming conventions: * [16:36:24] <Doctor_Hell_> [23:26] <Doctor_Hell_> another complex part to know is the engine coded by Jonas to automatically handel the targets using their name * [16:37:58] <Thanasis> uh. yes, that's a tough one too. I think it does, but I don't remember why and how, because it was a long time ago and Jonas changed the human modifier class since then * [16:38:18] <Thanasis> he simplified it, actually, but I haven't seen the new version yet * [16:38:34] <Doctor_Hell_> where is the code? * [16:38:49] <Thanasis> apps/humanmodifier.py, I think * [16:39:01] <Doctor_Hell_> Jonas should be very busy recently, since I asked him but he didn't reply me yet. * [16:42:37] <Thanasis> um by the way, reading humanmodifier alone won't help a lot. I would suggest starting from the macro plugin, to trace what happens when a slider is created, and when the user moves a slider. It might be easier this way Difficulties in understanding relationships between folder names / module names and the object structure * [16:39:36] <Doctor_Hell_> ANother thing to understand is why we have some code inapps, other incore, other in libs..the logic is not clear for me.. * [16:39:52] <Thanasis> ah, ignore logic in that part. :) * [16:40:20] <Thanasis> as far as I know it is all because of mh history so far * [16:40:29] <Thanasis> the way it developed. * [16:40:56] <Doctor_Hell_> I know some of it * [16:41:24] <Doctor_Hell_> in the early times,it was planned to have a core folder, with all important main files * [16:42:03] <Doctor_Hell_> then anapps folder, to contain many application based on the core files: makeHuman, makeANime, MakeToon, etc.. * [16:42:29] <Doctor_Hell_> butsharedandlibswere added later...I don't know why * [16:43:10] <Thanasis>libs, they are classes imported from c++ directly * [16:43:48] <Doctor_Hell_> ah ..so only the "shared" folder is the mystery * [16:44:04] <Thanasis> shared, they are later classes used by many different parts of the code at the same time * [16:44:15] <Thanasis> classes created later* * [16:44:28] <Thanasis> ie. material. It's used literally everywhere * [16:44:32] <Thanasis> progress too * [16:44:58] <Doctor_Hell_> ok..at least now it make sense, thank you * Comments on New API project * [16:45:39] <Doctor_Hell_> now that you have more time, will you look at the API? * [16:46:55] <Thanasis> 'time' != 'creativity'. I expect it will be easier to me after the start of the semester * [16:46:27] <Doctor_Hell_> if you are logged to MH site, you can see this:!LINK!http://www.makehuman.org/blog/the_makehuman_api_project_mhapi.html -- http://www.makehuman.org/blog/the_makehuman_api_project_mhapi.html!/LINK! * [16:47:02] <Doctor_Hell_> Also Joel has already created this:!LINK!https://bitbucket.org/joepal1976/makehuman-api-project/overview -- https://bitbucket.org/joepal1976/makehuman-api-project/overview!/LINK! * [16:48:52] <Doctor_Hell_> at the moment, you can just post a list of wished api in the issue 534 * [16:49:16] <Doctor_Hell_> we want to start the API in few weeks..they are fundamental, in order to have more contributors... * [16:51:05] <Thanasis> oh, boy. I want to clean up this code!LINK!https://bitbucket.org/joepal1976/makehuman-api-project/commits/aa5c12953fb2c8a1723b21bb0b7d90667653d615 -- https://bitbucket.org/joepal1976/makehuman-api-project/commits/aa5c12953...!/LINK!* ​Go for it? [RWB] :) The Doc_Hell Diagram (green and red arrows that even Glynn couln't understand) [Summary - concentrate on green arrows not red arrows to get the big picture] * <Doctor_Hell_> this is an example of bad diagram:!LINK!https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0 -- https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0!/LINK! * [16:52:48] <Thanasis> well, in your shape, the actual thing is about the green arrows * [16:53:19] <Thanasis> the red arrows could have been implemented in hundreds of different ways * [16:53:44] <Thanasis> but the important is their result, the green arrows * [16:53:53] <Doctor_Hell_> talking about how to draw the objects? * [16:54:26] <Thanasis> well, my idea was, do two shapes * [16:54:36] <Thanasis> the first without code * [16:55:10] <Thanasis> only showing the 5 steps like I explained above, ie, the green arrows * [16:55:28] <Thanasis> the second can explain each step in detail using the red arrows * [16:55:50] <Thanasis> but in any case the definition is the following * [16:56:04] <Thanasis> an event is, you send the name of a method to someone * [16:56:14] <Doctor_Hell_> ok...but also we have the description written by Manish. I'll show you it tomorrow * [16:56:21] <Thanasis> and that someone executes that method of theirs * [16:56:47] <Thanasis> sure, there are many ways to describe it * [16:57:00] <Doctor_Hell_> I hope we can find the best one * [16:57:07] <Thanasis> I think that they all match though in some certain key points * [16:57:52] <Thanasis> if these are filtered out, the explanation may be more simple And touching on API ideas ... * [16:59:09] <Doctor_Hell_> since the core is too complex for average python programmers * [16:59:36] <Thanasis> yes... perhaps the code could be organized in tiers. * [17:00:00] <Thanasis> core, classes, plugins, scripts * [17:00:27] <Doctor_Hell_> ah you are talking of the current code, not the simplified api * [17:00:54] <Doctor_Hell_> yes, it's a good idea..but what group under "core" ? * [17:01:25] <Thanasis> theapplication and its interfaces(ie.communication with the system and devices. QT, GL etc.) * [17:01:59] <Thanasis> classes are abstract, they use the application by calling its methods * [17:02:35] <Thanasis> the application uses the interfaces (QT, GL.these are actually harder than the application andcould be a sepparate tier) * [17:02:54] <Thanasis> thepluginsuse the classes to create objects * [17:03:26] <Doctor_Hell_> I see some possible confusion because: * [17:04:24] <Doctor_Hell_> - not all core modules are into core folder (for example qtui and qtgui are in libs) * [17:04:49] <Doctor_Hell_> - Classes are everywhere * [17:05:07] <Thanasis> yes, libs folder consists of both core and classes... indeed * [17:05:23] <Thanasis> andinterfacestoo * [17:06:51] <Thanasis> but in general, this separation exists somehow. I'm not sure how, but the past programmers instinctively created it, perhaps for better manageability * [17:08:14] <Thanasis> ie. Human is a class, Material too, Armature (probably making name wrong again), and to function I observe that they use callbacks of Application * [17:08:38] <Thanasis> They never use interfaces directly * [17:09:46] <Thanasis> Even for drawing the human, it is the Application that will give the Human's object3d to OpenGL, not the Human directly * [17:10:31] <Thanasis> and plugins use classes ie. they use the callbacks that Human, Material etc. have * [17:11:08] <Doctor_Hell_> Do you mean abstraction classes? * [17:13:27] <Doctor_Hell_> Thanasis: about new API:!LINK!http://bugtracker.makehuman.org/issues/534 -- http://bugtracker.makehuman.org/issues/534!/LINK! * [17:13:42] <Doctor_Hell_> and!LINK!http://bugtracker.makehuman.org/projects/makehuman/wiki/Abstraction_API_for_plugins -- http://bugtracker.makehuman.org/projects/makehuman/wiki/Abstraction_API_...!/LINK! * [17:13:57] <Doctor_Hell_> Feel free to add wished api calls === Q & A with Glynn Clements === Question: For an event when user clicks on a tab, Tabs class method tabChanged is called. QTabWidget documentation.There is no such method. Response: The tabChanged method is defined for qtgui.TabsBase (and overridden for qtgui.Tabs). Both qtgui.Tabs and qtgui.TabBar inherit from qtgui.TabsBase. Tabs inherits from both TabsBase and QTabWidget while TabBar inherits from both TabsBase and QTabBar. Both QTabWidget and QTabBar define the currentChanged signal, which is emitted whenever the current tab changes. The TabsBase initialiser connects this signal to the tabChanged method (lib/qtgui.py:109): class TabsBase(Widget): def __init__(self): ... self.connect(self, QtCore.SIGNAL('currentChanged int)'), self.tabChanged) ========================================================== Question: is it true that qtui module: low level module, that handles signals directly from QtCore, QtGui and QtOpenGL? Response: qtui defines the classes for the application (QApplication subclass), main window QMainWindow subclass), drawing canvas (QGLWidget subclass), and some associated support classes. In other words, it implements the high-level UI, or at least the aspects which are tied to Qt. Question: is it true that qtgui module: low level module, that define the basic widgets of the GUI as buttons, radiobuttons, etc.. Response: Yes; qtgui is essentially a compatibility layer between the Qt widget classes and the legacy MH GUI toolkit. The classes provide methods which more closely mimic the behaviour of original gui3d widgets. Qt events are translated to MH events3d events. Question: Is it true that gui3d module: high level module, that define the principal public classes of MakeHuman: Application, Category, TaskView and View. Response: This is what's left of the legacy MH GUI toolkit. Before the move to Qt, everything was a "View". Now it's just the high-level containers (Application, Category, Task) which exist as somewhere to put event handlers. Question: What is the purpose of the module guicommon.py? Looking at the module name, it appears to be a sort of library for the GUI functions, but it's a completely different thing. What is it really? Response: Object used to be part of gui3d. Its primary function is to be the base class for Human. It's the other main subclass of events3d.EventHandler (the first being gui3d.View). It's not really accurate to call it a "wrapper" around Object3D (although it can have instances of both module3d.Object3D and object3d.Object3D as members). One of the main differences between guicommon.Object and module3d.Object3D is that the latter is a single mesh, while the former has up to four meshes (all of type module3d.Object3D): the base (or "seed") mesh, a proxy mesh, a subdivided mesh, and a subdivided proxy mesh. It [guicommon.py or guicommon.Object ??RWB] also contains an object transformation (location, rotattion, scale) [method?], and optionally a display mesh (object3d.Object3D). As a subclass of EventHandler, it [guicommon.Object ??RWB] provides mouse handlers which propagate the event to the object's view (these are overridden for the Human within MHApplication.loadMainGui). Question: G.app is the singular mhmain.MHApplication instance; the callEvent method (inherited from event3d.EventHandler) will end up calling G.app.onMouseDownCallback. How the function callEvent end up calling G.app.onMouseDownCallback? Response: "direction" will be either onMouseDownCallback or onMouseUpCallback. Note the "Callback" suffix. So typical event flow for clicking on the human model is: G.app.mainwin.canvas.mouseUpDownEvent ("onMouseDownCallback") [Canvas.mouseUpDownEvent] G.app.callEvent("onMouseDownCallback") [EventHandler.callEvent] G.app.onMouseDownCallback() [gui3d.Application.onMouseDownCallback] G.app.selectedHuman.callEvent('onMouseDown', event) [EventHandler.callEvent] G.app.selectedHuman.onMouseDown() [local function in MHApplication.loadMainGui] G.app.currentTask.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.currentTask.onMouseDown() [View.onMouseDown] G.app.currentCategory.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.currentCategory.onMouseDown() [View.onMouseDown] G.app.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.onMouseDown() [MHApplication.onMouseDown] Notes: G.app.currentTask.parent == G.app.currentCategory G.app.currentCategory.parent == G.app Question: is the eventType string (also called 'direction') originated by QT? Response: No. "direction" is just so that code which is common to both mouse press and mouse release events can go into a single method (mouseUpDownEvent) rather than duplicating it in mousePressEvent() and mouseReleaseEvent(). Those functions are identical except for the name of the event passed to callEvent. Bear in mind that self.callEvent("onMouseDown", event) is almost the same as self.onMouseDown(event), except that callEvent forces a redraw after the event has been dealt with, and has some support for logging and profiling. Once you strip that away, the guts of callEvent() is just: method = getattr(self, eventType) method(event) ====================================================================== Question: Can the modularization of the code can be improved? Response: Modularisation is already quite good. Too much of it can make the code harder to understand. Currently, we try to avoid importing OpenGL or Qt modules (directly or indirectly) into modules which don't inherently depend upon them (e.g. guicommon.Object imports object3d locally in the attachMesh and detachMesh methods, so it only gets imported if you actually need to render the object). TODO ACTION. One minor point which I noticed: lib/camera.py imports glmodule solely for the queryDepth() call in convertToWorld2D (the Z coordinate is obtained by retrieving a value from the depth buffer using the X,Y coordinates). This should probably be a local import in that method, so that camera.py could be used in e.g. import/export utilities. ========================================================================== Question: [Referring to DocHell's red and green diagram (!LINK!https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0] -- https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0]!/LINK!] Response: I have no idea; I can't follow that [diagram]. It would probably help if you simply ignore CallEvent(), and treat object.callEvent('method',event) as just object.method(event). The two factors which make following the flow slightly complicated are: Methods aren't always defined within the class used to create an object, but may be inherited from one of its base classes. Event handlers may be dynamically added to an object with the mhEvent method (which is usually invoked using Python's decorator syntax). This is done for the Human object in MHApplication.loadMainGui(): @self.selectedHuman.mhEvent def onMouseDown(event): .... If you aren't familiar with the decorator syntax, the above is equivalent to: def onMouseDown(event): ... self.selectedHuman.mhEvent(onMouseDown) which in turn boils down to: def onMouseDown(event): ... self.selectedHuman.onMouseDown = onMouseDown ================================================================================= Question: Could you provide an explanation of what a weak reference is? How might this impact MakeHuman? Response: [Jonas Hauquier ] A weak reference, one that is not accounted for by the garbage collection. Garbage collection removes objects from memory that have no pointers to them anymore. Weakrefs are not counted among those, so if the object has only weakrefs pointing to it, and not real pointers, it will be removed anyway. This is to make sure that object A and B that always point to each other, are not kept in memory just because they keep referencing each other (I believe the garbage collection does not do expensive graph traversals to check what is still referenced by the active context). [Glynn Clements] Sort of. Python uses both reference-counting (which can't handle circular references) and reachability-based garbage collection (which can). If an object's reference count reaches zero, it will be finalised immediately. But an object with a non-zero reference count can still be finalised if it can be determined that it isn't reachable during a garbage-collection sweep. However: the garbage collector won't attempt to finalise reference cycles if any of the objects in the cycle have a __del__ method, as it can't determine a safe order in which to execute them. Instead, it adds them to a list, accessible as gc.garbage. Application code can inspect this list, manually finalise the objects (which should break the cycles), then remove them from the list (otherwise their presence in gc.garbage will itself constitute a reference). It's possible to have the garbage collector report such cases using gc.set_debug(gc.DEBUG_UNCOLLECTABLE). Only a few MH classes contain __del__ methods. These will only present a problem if the object itself is part of a cycle (i.e. contains references to "complex" objects which themselves contain references which could lead back to the original object). "Leaf-node" classes such as Texture and Shader shouldn't present a problem unless their creators attach additonal references to them. This may be an issue for e.g. qtgui.Slider and qtgui.RadioButton, as these have __del__ methods and will naturally create circular references. Use of weakref may be advised here. Similarly for queue.Thread. SceneItem in plugins/7_scene_editor.py may also be a problem. ============================================================================= Question: Could you clarify wherther the following acurately describe the use of decorators? A basic decorator is a function that: 1) Gets a function "A" as argument 2) Modifies the behavior of "A" 3) Returns a "decorated" version of "A" Response: Correct. Question: Topic: Decorators and side-effects. When is a decorator not about generating a function? So, if the above accurately descibes a decorator, consider the code: @self.selectedHuman.mhEvent def onMouseDown(event): This should translate: onMouseDown = self.selectedHuman.mhEvent(onMouseDown) One would expect that using mhEvent as decorator, it returns a function, but instead, it returns None: def mhEvent(self, eventMethod): self.attachEvent(eventMethod.__name__, eventMethod) How can it be used as decorator? Response: Because the returned "function" isn't actually used anywhere. The definition is local to loadMainGui(), which doesn't reference the functions, so the fact that e.g. onMouseDown is None within loadMainGui() doesn't matter. The mhEvent() method is used for its side-effects, not its return value. It attaches an event to the selectedHuman. It is equivalent to: self.selectedHuman.attachEvent(onMouseDown.__name__, onMouseDown) ============================================================================== 3446713e9110719ac2dbaa3d155dbf20848b50be Documentation:Automatic animation 3000 333 874 2016-05-27T15:36:00Z Joepal 14 Created page with "http://www.youtube.com/embed/HODnmb0WzN8 Design a character in MakeHuman and export him in the MHX format. Import the character into Blender using the MHX importer. Make sure..." wikitext text/x-wiki http://www.youtube.com/embed/HODnmb0WzN8 Design a character in MakeHuman and export him in the MHX format. Import the character into Blender using the MHX importer. Make sure that the MakeWalk plugin is enabled. It is found in the MakeHuman category. Select the character and press the Load And Retarget button in the main MakeWalk panel. Select a bvh file in the file selector. [[File:au100-load.png]] The animation is loaded onto the character. In this case the character is running in a figure eight pattern. [[File:au110-loaded.png]] However, the animation has many imperfections. This is perfectly normal. Loading and retargeting the animation is only the first step. To obtain an acceptable result, the animation must be tweaked. Doing this manually is a major undertaking, which possibly requires more effort than animating by hand. Fortunately, MakeWalk has several tools for automating this task. The editing tools are found in the MakeWalk: Edit Actions panel. The picture below shows frame 121 before and after editing. [[File:au115-frame0121.png]] The first problem is that the arms and hands penetrate the body multiple times. This probably happens because the original actor had a different body shape that the present, quite muscular, character. At some frame where the problem is apparent, select the upper arms and rotate them out so they are safely away from the body. With both upper arms selected, press Shift Animation in the Global Edit section. After some time, the arms have been rotated for the entire animation. [[File:au120-shift-arms.png]] We will fix floor penetrations by transfer the FK animation to the IK bones. The MHX rig has a reverse foot setup, which allows the foot to rotate around the toe, ball, and heel. The reverse foot and toe bones are completely fixed by the corresponding FK bones, but the IK effector can be placed arbitrarily, as long as it ends at the toe tip. The transfer tool uses this freedom to make the IK effector perfectly horizontal, provided that the toe is below the ball and heel. [[File:au125-revfoot.png]] To use this feature we must ensure that the toe is below the ball of the foot. In the foot section, press the Offset Toes button. This changes the direction of the toe bones so the toe tip is below the ball in global space throughout the animation. [[File:au130-toes.png]] The previous step causes some awkward bending of the toes when the heel is the lowest point. The toe should never be bend down in local space. Since the local X axis points to the left, this means that the toe's local X rotation must not be positive. In the graph editor, select all keyframe points with positive X rotation, scale the Y coordinates to zero (S Y 0) and move the points down to the Y axis (G Y). [[File:au140-bend-toes.png]] We will employ a tool that lifts the feet to the floor if they are below, but the tool does nothing if the foot is already above the floor. To prevent that the foot ever floats above the floor, select the hip bone, move it slightly down, and press Shift Animation again. The foot should be on or below the floor at every frame that it is supposed to rest on it. [[File:au150-shift-down.png]] Before we transfer the animation to the IK bones, we will make it loop seamlessly. Looping takes more time when there are several bones with location F-curves, and it may cause feet to move away from the floor. We find two keyframes where the character is in similar positions; frames 97 and 173 are a good pair. Set timeline markers at these frames, and change the animation range to 97-172; since the poses at 97 and 173 will become identical, we must make sure that it is only included once. In the Loop And Retarget section, set the Blend Range to 10, enable the Loop in place checkbox, and press Loop F-curves. Loop in place must be enabled, because we want the location to be the same in the beginning and end of the animation. [[File:au160-same-pose.png]] The animation in the beginning and end of the selected time range (between the two selected time markers) is blended, and the poses at frames 97 and 173 become identical. [[File:au170-pose-looped.png]] Next we transfer the FK animation to the IK bones. With some bone selected, press the Transfer FK =&gt; IK button in the Inverse Kinematics section. Make sure that the Legs checkbox is enabled and that Arms is disabled. [[File:au180-transfer-ik.png]] In the Feet section, press the Keep Feet Above Floor button. At every keyframe where a leg IK effector is below the floor, it is lifted up to rest on it. [[File:au190-above-floor.png]] Since we moved the hips down before, the character will be kneeling slightly. To compensate for that, we can move the hips up slightly and press Shift Animation again. However, make sure to not move them up too much, lest the distance between the hip and the foot becomes longer than the leg length. [[File:au200-shift-up.png]] The camera is also animated to keep the character always in sight. Make sure that the camera animation is also periodic. [[File:au210-camera-action.png]] Finally the scene was rendered to png files and assembled in the video sequencer. The final clip consists of two copies of the raw animation (directly after Load And Retarget), three copies of the edited animation, and some stills. [[File:au220-video.png]] 718b604e907840354de6cd79c0e1412bf2832d45 Documentation:Basemesh 3000 657 2116 1950 2021-05-29T09:21:54Z Punkduck 38 wikitext text/x-wiki In this chapter the base mesh is explained. The base mesh is the standard body mesh used in MakeHuman. MakeHuman displays a visible mesh on the screen but inside it works with additional geometry to allow a better handling of clothes, to have helping geometry for bones etc. [[File:Basemesh1.png]] The complete mesh has an exact number of vertices and each vertex has a number, starting with number 0 to 13379 for the body and then continues to 19157 for the helper-geometry. These are current number ranges: {|class="wikitable" !colspan="4"|Vertex numbers |- !name !! start !! end || purpose |- |body || 0 || 13379 || visible mesh |- |helper-tongue || 13380 || 13605 || weighting and deforming the tongue |- |joints || 13606 || 14597 || used to connect bones to |- |helper-x-eye || 14598 || 14741 || weighting and deforming the eyes |- |helper-x-eyelashes-y || 14742 || 14991 || weighting and deforming the eyelashes |- |helper-lower-teeth || 14992 || 15059 || weighting and deforming the lower teeth |- |helper-upper-teeth || 15060 || 15127 || weighting and deforming the upper teeth |- |helper-genital || 15128 || 15327 || weighting and deforming the male genitals |- |helper-tights || 15328 || 18001 || weigthing and deforming clothes near the body |- |helper-skirt || 18002 || 18721 || weighting and deforming a skirt |- |helper-hair || 18722 || 19149 || weighting and deforming the hair |- |ground || 19150 || 19157 || calculation of difference between root-bone and ground |} Internally that means: when a target e.g. resizes an arm, then also the tight-helper must be deformed. If the arm will be longer, some of the cubes for the joints will also be moved. For a better overview: these are the components of the helper. [[File:Basemesh2.png]] The joints are a special helper. These are tiny cubes placed (mostly) inside the body. Each cube has 8 vertices, the median is used e.g. as a start- or end-point for a bone. This allows to determine the bone position inside the body. The following overview shows the joints of the upper body [[File:Basemesh3.png]] Some bones do not end in such a cube. The reason: bones can use each vertex available in helper-geometry or body. For the default skeleton there are two different other methods used: (1) red dots: for e.g. the lowerarm01 and -02 bone the connecting point in the middle is calculated by simply summarizing the start and the end point of the complete lower arm. So this is a special case where rotation only is allowed in radial direction like in reality (simulating the bones ulna and radius of the lower arm). (2) blue and yellow dots: The bones end directly on a vertex of the skin. Especially for facial expressions the face-bones (simulating muscles) use vertices on the skin directly. The yellow dots are use for the tongue, they end on the tongue helper. [[File:Facebones.png]] A few sentences for the standard skeleton here. For most bones the purpose in MakeHuman is simple to understand. The root bone is used to place character and it does not deform parts of the skin. Most of the other bones do. They can rotate and will influence the skin. A little more complicated is the facial region. Here some bones can be rotated and also translated to another location (painted in yellow in the demo picture). All "helper bones" have no own weight groups, they are only used to guide the other bones. And we have four bones which should be left untouched. These I call constant bones. So in theory when using this in e.g. Blender, the face could be reduced to less bones, but then the location of the yellow bones must be part of the parameters saved. This could be an optimization when you do an animation later. 0cad688d911a6476732bc08f1b1e267e467e1821 1950 1867 2020-11-29T11:11:07Z Punkduck 38 wikitext text/x-wiki In this chapter the base mesh is explained. The base mesh is the standard body mesh used in MakeHuman. MakeHuman displays a visible mesh on the screen but inside it works with additional geometry to allow a better handling of clothes, to have helping geometry for bones etc. [[File:Basemesh1.png]] The complete mesh has an exact number of vertices and each vertex has a number, starting with number 0 to 13379 for the body and then continues to 19157 for the helper-geometry. These are current number ranges: {|class="wikitable" !colspan="4"|Vertex numbers |- !name !! start !! end || purpose |- |body || 0 || 13379 || visible mesh |- |helper-tongue || 13380 || 13605 || weighting and deforming the tongue |- |joints || 13606 || 14597 || used to connect bones to |- |helper-x-eye || 14598 || 14741 || weighting and deforming the eyes |- |helper-x-eyelashes-y || 14742 || 14991 || weighting and deforming the eyelashes |- |helper-lower-teeth || 14992 || 15059 || weighting and deforming the lower teeth |- |helper-upper-teeth || 15060 || 15127 || weighting and deforming the upper teeth |- |helper-genital || 15128 || 15327 || weighting and deforming the male genitals |- |helper-tights || 15328 || 18001 || weigthing and deforming clothes near the body |- |helper-skirt || 18002 || 18721 || weighting and deforming a skirt |- |helper-hair || 18722 || 19149 || weighting and deforming the hair |- |ground || 19150 || 19157 || calculation of difference between root-bone and ground |} Internally that means: when a target e.g. resizes an arm, then also the tight-helper must be deformed. If the arm will be longer, some of the cubes for the joints will also be moved. For a better overview: these are the components of the helper. [[File:Basemesh2.png]] The joints are a special helper. These are tiny cubes placed (mostly) inside the body. Each cube has 8 vertices, the median is used e.g. as a start- or end-point for a bone. This allows to determine the bone position inside the body. The following overview shows the joints of the upper body [[File:Basemesh3.png]] Some bones do not end in such a cube. The reason: bones can use each vertex available in helper-geometry or body. For the default skeleton there are two different other methods used: (1) red dots: for e.g. the lowerarm01 and -02 bone the connecting point in the middle is calculated by simply summarizing the start and the end point of the complete lower arm. So this is a special case where rotation only is allowed in radial direction like in reality (simulating the bones ulna and radius of the lower arm). (2) blue and yellow dots: The bones end directly on a vertex of the skin. Especially for facial expressions the face-bones (simulating muscles) use vertices on the skin directly. The yellow dots are use for the tongue, they end on the tongue helper. 871abf4ec8b889e1890a83b2b09d5063cef54439 1867 2020-09-13T14:06:50Z Punkduck 38 Created page with " In this chapter the base mesh is explained. The base mesh is the standard body mesh used in MakeHuman. MakeHuman displays a visible mesh on the screen but inside it works wi..." wikitext text/x-wiki In this chapter the base mesh is explained. The base mesh is the standard body mesh used in MakeHuman. MakeHuman displays a visible mesh on the screen but inside it works with additional geometry to allow a better handling of clothes, to have helping geometry for bones etc. [[File:Basemesh1.png]] The complete mesh has an exact number of vertices and each vertex has a number, starting with number 0 to 13379 for the body and then continues to 19157 for the helper-geometry. These are current number ranges: {|class="wikitable" !colspan="4"|Vertex numbers |- !name !! start !! end || purpose |- |body || 0 || 13379 || visible mesh |- |helper-tongue || 13380 || 13605 || weighting and deforming the tongue |- |joints || 13606 || 14597 || used to connect bones to |- |helper-x-eye || 14598 || 14741 || weighting and deforming the eyes |- |helper-x-eyelashes-y || 14742 || 14991 || weighting and deforming the eyelashes |- |helper-lower-teeth || 14992 || 15059 || weighting and deforming the lower teeth |- |helper-upper-teeth || 15060 || 15127 || weighting and deforming the upper teeth |- |helper-genital || 15128 || 15327 || weighting and deforming the male genitals |- |helper-tights || 15328 || 18001 || weigthing and deforming clothes near the body |- |helper-skirt || 18002 || 18721 || weighting and deforming a skirt |- |helper-hair || 18722 || 19149 || weighting and deforming the hair |- |ground || 19150 || 19157 || calculation of difference between root-bone and ground |} Internally that means: when a target e.g. resizes an arm, then also the tight-helper must be deformed. If the arm will be longer, some of the cubes for the joints will also be moved. For a better overview: these are the components of the helper. [[File:Basemesh2.png]] The joints are a special helper. These are tiny cubes placed (mostly) inside the body. Each cube has 8 vertices, the median is used e.g. as a start- or end-point for a bone. This allows to determine the bone position inside the body. The following overview shows the joints of the upper body [[File:Basemesh3.png]] Some bones do not end in such a cube. The reason: bones can use each vertex available in helper-geometry or body. For the default skeleton there are two different other methods used: (1) red dots: for e.g. the lowerarm01 and -02 bone the connecting point in the middle is calculated buy simply summarizing the start and the end point of the complete lower arm. So this is a special case where rotation only is allowed in radial direction like in reality (simulating the bones ulna and radius of the lower arm). (2) blue and yellow dots: The bones end directly on a vertex of the skin. Especially for facial expressions the face-bones (simulating muscles) use vertices on the skin directly. The yellow dots are use for the tongue, they end on the tongue helper. eb7c05032ad0aad7fc7a558710d91e68e78f7e03 Documentation:Big dump from drupal 3000 8 42 2015-07-01T10:03:42Z Joepal1 1 Semi-processed automated dump from drupal wikitext text/x-wiki == Introduction == MakeHuman (MH) is Open Source software (AGPL3.0) for creating lightweight, realistic 3D models of the human form. It is designed to be easy to use and flexible. The models are based upon real data for ethnicity, sex and body type and can produce an almost limitless range of human and human-like forms. The forms can be posed and rendered in the software itself or exported into other softwares for further manipulation. It is developed by a community of programmers, artists, academics and enthusiasts interested in 3D computer models of human beings. MakeHuman™ is used to create a 3D mesh with optimized topology representing human beings with a user-controlled mix of characteristics including race, sex, size, muscularity and other features. The models thus created are integrated into one of two typical pipelines or workflows. In the first one, MakeHuman™ is integrated in a professional pipeline, where the A-posed mesh is exported into a full-featured 3D CGI system such as Blender, Maya, XSI, C4D, Zbrush etc.. in order to be included in complex scenes and renderings, or used for games. In the second pipeline the mesh is posed and clothed directly in MakeHuman™, then rendered with an external engine, for 2D art or quick demo reel of a character. This section contains high-level articles that describe the purpose and features of the MakeHuman software. * Features-- describes the technical features of the program * Evolution towards a Universal Model Topology: the HoMunculus-- gives an interesting background history of the development of the MakeHuman model The MakeHuman User Documentation includes articles for installing the software and using it 'out of the box' as well as extending and/or configuring MH for your own purposes. Beginners will want to begin with theInstallationsections for their computer systems and theGUI and Modellingsection for using the program. === Legal === The MakeHuman License The MakeHuman license is a split AGPL/CC0 setup.!LINK!/content/license.html -- The full text of the license can be found here!/LINK!. There is also a!LINK!/content/license_explanation.html -- license explanation page!/LINK!. External Tools Licenses From time to time the MakeHuman™ Team may release new external tools in various forms. Unless otherwise explicitly stated they are covered by the GNU AGPL 3. Current tools are: * MakeTarget scripts for Blenderis distributed under the GNU AGPL 3. The MakeHuman morph target files that it generates are per default not covered by any license, since they are designed by you. However, if you make a morph target based on another pre-existing morph target (or a combination of pre-existing morph targets) you must fulfill the license terms of the pre-existing morph target. Note that all targets in the MakeHuman base distribution are licensed AGPL and that any target derived from these must also be licensed AGPLunless you get written permission by the author of the target file you derive from. * MakeClothes script for Blenderis distributed under the GNU AGPL 3. If the user is the original author of the clothes, he is free to choose any license for them. * MakeWalk script for Blenderis distributed under the GNU GPL 2. The license of output files generated using it is free to determine by the user, except when mocap data was used that enforces a specific license. * MHX Importer.It is distributed under the GNU GPL 2. * MakeTarget standaloneis distributed under the GNU AGPL 3. The MakeHuman morph target files that it generates are per default not covered by any license, since they are designed by you. However, if you make a morph target based on another pre-existing morph target (or a combination of pre-existing morph targets) you must fulfill the license terms of the pre-existing morph target. Note that all targets in the MakeHuman base distribution are licensed AGPL and that any target derived from these must also be licensed AGPLunless you get written permission by the author of the target file you derive from. See the!LINK!http://www.gnu.org/licenses/agpl-3.0.html -- GNU Affero General Public License!/LINK!and!LINK!http://www.gnu.org/licenses/gpl-2.0.html -- General Public License!/LINK!for more details === MakeHuman™ and its Purpose === MakeHuman™ is a tool designed to simplify the creation of virtual humans using a Graphical User Interface, also commonly referred to as a GUI. This is a specialized branch of the more general subject of 3D modelling. The MakeHuman Team is focused on this specific branch of the broader subject in order to achieve the best possible level of quality and ease of use in that area. The ultimate goal is to be able to quickly produce a wide array of realistic virtual humans with only a few clicks of the mouse and be able to render or export them for use in other projects. !IMAGE!Pictures/gui_0.png!/IMAGE! Humans are created through the manipulation of controls that allow for the blending of different human attributes to create unique 3D human characters. The controls are intended to provide the user with a simple way to create characters that give expression to the widest possible range of human forms.The controllable attributes are broken into two groups: macro and detail. The macro targets deal with overall human characteristics like gender, age, height, weight and ethnicity. The detail targets allow for the character to be further refined by focusing on the low level details ofsuch things as the eye's shape or finger's length. TheMakeHuman™project strives to provide a complete tool that allows for the management of all things needed to create realistic virtual humans. This includes some tools that have not yet been created or are in the early stages of development for things like poses, animation cycles, managing facial expressions, hair and clothes.With the exception of modelling, most of these tools follow a "point and click" approach by using the MakeHuman™'s Library. Via the MH Library, users preview and load poses, animation cycles, facial expressions, hair, shoes and clothes onto their character. MakeHuman™ also offers tools for exporting virtual humans to other software (such as the Blender 3D modeling suite) where further refinements can be made. === Short and Long Pipeline === Makehuman was created to provide everyone with specialized software that strives to be the state of the art in a very specific field: the virtual human. The goal is to see it used in two different pipelines or workflows. ==== Short Pipeline ==== The short pipeline is intended for quick character prototyping and for 2D art. The user defines the character, adds clothes, hair, a pose and expressions, by selecting them from our libraries, and running the render to obtain an image of the character (future goal: indistinguishable from a real photo of him).This output can be used as a character preview, fineart, blueprints, storyboards, comics, illustrations, etc.. No special skill is required from the user. ==== Long Pipeline ==== The long pipeline is intended to create a 3D character in rest pose for export to external software (Blender, Maya, Max, C4D, etc..) in order to be tweaked, animated and rendered. Another common usage of the rest-posed character is for games. The long pipeline requires the user to have professional skills and a good working knowledge of the external tools chosen to produce the desired final product. === Professional mesh topology === ==== The Homunculus ==== The principal aim of MakeHuman project is to develop an open source application capable to create realistic tridimensional humans. Since the early release in 2001, by pursuing this aim the MakeHuman Team have developed a model that can combine different anatomical parameters to transition smoothly from the infant to the elderly, from man to woman and from fat to slim. The vast wealth of potential combinations provides the artist an extraordinarily broad range of possibilities for artistic expression but presents many problems to the development team. !IMAGE!Pictures/age_1.png!/IMAGE! In particular it adds to the classical problems of 3D modelling (number of polygons, square or triangular faces, etc.) the problems of constructing a super mesh that can be transformed into any form of human while being sufficiently optimised to be able to be manipulated on desktop machines, yet still producing a professional quality of output. These discussions resulted in agreement that the initial mesh should occupy a middle ground, being neither pronounced masculine, nor pronounced feminine, neither young nor old and having a medium muscular definition. An androgynous form, the HoMunculus. !IMAGE!Pictures/hm01_0.png!/IMAGE! The Homunculus 00 (2002). No male, no female, nor young or old. A perfect neutral body. ==== Evolution of the topology ==== The current MakeHuman mesh has evolved through successive iterations of the project, incorporating lessons learned, community feedback and the results of considerable amounts of studies and experimentations. The current version, known as the ‘Homunculus 08’ comprises a state of the art universal humanoid model, including: * Light and optimized for subdivision surfaces modelling (14766 faces). * Quads only. The human mesh is completely triangles free. * Optimized for animation and sculpting (Zbrush, Mudbox) * MInimal number of poles * Max number of edges admitted for a pole: 5 !IMAGE!Pictures/heads_0.png!/IMAGE! The Homunculus evolution through the heads === Homunculus releases === * The first prototype of an universal mesh (head only) was done in 1999 in the makeHead script, and then adapted for the early MH (2000), * The Homunculus00, was realized by Enrico Valenza in 2002. * The Homunculus01 (or K-Mesh) was modelled by Kaushik Pal in 2005 * The Homunculus02 was modelled by Manuel Bastioni (Z-Mesh); * The Homunculus03 was modelled by Gianluca Miragoli (aka Yashugan) in 2007 and builds upon the experience gained on the preceding versions (Y-Mesh) * The Homunculus04 build upon the previous one by Gianluca Miragoli and Manuel Bastioni * The Homunculus05 build upon the previous one by Gianluca Miragoli. * The Homunculus06 released in 2010 (artists: Waldemar Perez Jr., André Richard, Manuel Bastioni). * The Homunculus07 completely remodelled by Manuel Bastioni in 2011 * The Homunculus08 remodelled from scratch by Manuel Bastioni in 2013 !IMAGE!Pictures/wip03_0.png!/IMAGE! An image from the "Making of" the Homunculus 08 ==== Alternative topologies ==== The base mesh is capable to be morphed practically in any human character, but in some cases it is preferred to have a very specialized topology. For this reason, since the version 1.0 alpha 7, MakeHuman includes a function to change the mesh of the character, just selecting it from a simple chooser. The makeHuman team is studying the requirements needed for different purposes (animation, games, crowd, closeups, etc..) in order to create a database of professional topologies. !IMAGE!Pictures/topologies.png!/IMAGE! == General overview == Brief description of the various components which makeup the Makehuman Graphical User Interface (GUI). === Install MakeHuman™ === ==== Installable versions of MakeHuman™ are available for Windows, Mac OS X and Linux. ==== The installable versions of the current!LINK!http://www.makehuman.org/content/download_makehuman_102.html -- stable !/LINK!!LINK!http://www.makehuman.org/content/download_makehuman_102.html -- release!/LINK!of MakeHuman are available for downlaod, as are!LINK!http://www.makehuman.org/content/download_nightlybuild.html -- nightly builds!/LINK! representing the latest deveopmental updates (not guaranteed stable) for the same platforms. ==== System Requirements ==== You will need about 250 MB of disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "-noshaders" command line switch. On Windows, this switch can be added to your shortcut. ==== Choice of Installation Directory ==== The preferred install location location for MakeHuman is a directory simply named "MakeHuman", but in practice you can use another meaningful name. if it is constructed of ASCII characters. On Windows, C:\Makehuman would make a good choice, and on Linux-alike OS's ~/MakeHuman would make a good choice. Program data is written to the user's home directory by default, and not to the program install directory. Thus, it is not essential that users have write privledges to the program install directory. One caution on Windows systems is that the installation directory should not contain non-ASCII characters as this has been reported to cause problems for some users. This also implies that if your username includes non-ASCII letters that the desktop and Docuemts folders will not be appropriate places for installation because they would result in a path containing non-ASCII cahracters [e.g., C:\users\Åke\MakeHuman or C:\users\Desktop\Åke\MakeHuman are likely to cause problems). ==== Windows ==== Download the zip file (or the installer, if available) from the from the download page (!LINK!http://makehuman.org/content/download.html -- http://makehuman.org/content/download.html!/LINK!). * Installer (not available yet): just run it. The application will be accessible from the Start menu. * Zip arhive: just to unzip it where you prefer, and double click on makehuman.exe to start the application. ==== Mac OS X ==== Download and run the installer (or the zip file) from the from the download page (!LINK!http://makehuman.org/content/download.html -- http://makehuman.org/content/download.html!/LINK!). Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman™ supports Snow Leopard and newer. ==== Linux ==== Installers are avaiaible for debian (E.g Ubuntu, Debian etc.) and rpm based distributions (E.g Red-hat, Suse etc.). Please use the appropriate package for your distribution. If you do not want to use the prebuilt packages or are having trouble with the packages refer to "Installing from source" below. ==== Installing from source ==== If you want to install from source or are having trouble with the prepackaged binaries; Makehuman provides compressed source packages. These will work on all supported platforms provided all dependencies are satisfied. To execute MakeHuman simply run makehuman.py located in your unzipped makehuman source directory. For dependencies and libraries, please read the section "!LINK!http://www.makehuman.org/doc/node/libraries_and_build_procedures.html -- Libraries and build procedures!/LINK!". === The Interface and basic functions. === ==== An Interface Overview: ==== !IMAGE!Pictures/interface-labelled_new.png!/IMAGE! The application user interface comprises of the various elements. The core elements are : 1) the toolbar with its various partitions. 2) The tabs and sub-tabs which allow you to navigate the application, and utilise its various features in a coherent easy to understand manner. 3) The 3D view window which allows you to view the human as it is morphed, posed etc. 4) The left and right option panels whose options change depending upon the tab/sub-tab you are in. 5) Finally there is a progress Bar which shows the progress of an operation and the Information Bar providing useful information. Note:Different views may contain different options. These options are described in more detail in the appropriate heads in the rest of the documentation. === The Toolbar === The "Main Toolbar" is actually made up of six separate partitions. !IMAGE!Pictures/the_toolbar.jpeg!/IMAGE! They are: 1) Files partition 2) The Edit partition 3) The View partition 4) The Symmetry partition 5) The Camera partition === Files partition === !IMAGE!Pictures/the_toolbar-file.jpeg!/IMAGE! This partition provides shortcut buttons that deal with saving or loading files (Save, Load, Export). The save button performs the same action as pressing the Files tab and then the Save tab when there is no filename specified. If the file was given a name earlier and saved once this button performs a quick save over the file specified earlier. The Load button takes you to the file loading window where you can choose the file to load. The Export button takes you to the export tab and allows you to export your current MakeHuman project to one of the variety of export formats the MakeHuman program supports. Supported formats include mesh formats such as Filmbox (fbx),Wavefront obj, Sterolithography (stl), rig/rigging related formats such as Biovision Hierarchy and various maps such as Light Maps, and UV maps. Load, Save and Export options are explained in more detail!LINK!http://www.makehuman.org/doc/node/load_save_and_export.html -- here!/LINK!. === The Edit partition === !IMAGE!Pictures/the_toolbar-undoredo.jpeg!/IMAGE! The Edit partitionof the toolbar, provides shortcut buttons that deal with editing actions. The Undo button is to undo the last action that has been performed. Undo can be pressed to cancel actions until you have undone all of the actions taken during your current MakeHuman session. The Redo button is related to the Undo button and will restore the last action that has been undone. Redo can be pressed until all undone actions performed during the current MakeHuman session have been restored. The reset button will cancel all actions within the current MakeHuman session and restore the default settings for all MakeHuman controls. This effectively returns your MakeHuman session to the state shown when the program first opens. === The View partition === !IMAGE!Pictures/the_toolbar-smoothandwire.jpeg!/IMAGE! The View partitiontoolbar, provides buttons that manage the display mode of the character (Smooth, Wireframe, Background on/off). Wireframe mode allows you to view the mesh in Wireframe mode like in many other 3D applications. The Background option allows you to load a background reference image. The pose button is used for posing. When a rig and pose is active this button is enabled and allows you to toggle between the selected pose and the default rest pose. The "smooth" is particularly interesting since it subdivides the mesh. The image below shows the mesh smooth and normal, using the wireframe mode. This usesCatmull–Clarksubdivision to create a much more dense smoother mesh. !IMAGE!Pictures/nsmooth.png!/IMAGE! === The Symmetry partition === !IMAGE!Pictures/the_toolbar-symmetry.jpeg!/IMAGE! The Symmetry partitiontoolbar, provides buttons that manage transferring settings applied to one side of the character to the other side of the character so that the character features become symmetrical. !IMAGE!Pictures/symm.png!/IMAGE! There are options for right to left symmetry, left to right symmetry and a general symmetry mode. Left to right symmetry applies all changes made on the left side to the right side of the human/character. Right to left symmetry applies all changes made on the right side to the left side of the human/character. General symmetry mode behaves differently. When it is active all changes made are symmetrical when it is inactive any changes made to any one side affect that one side only. So this mode therefore allows the user to selectively apply symmetry. In the above image the Left side of the character is made symmetrical with the right side of the character. === The camera partition === !IMAGE!Pictures/the_toolbar-cameraviews.jpeg!/IMAGE! The Camera partitionof the toolbar, manages the Camera placement within the scene so that the character can be viewed from different angles and zoom levels. (Front View, Back View, Left View, Right View, Top View, Bottom View, Global Camera, Face Camera and Reset Camera options are available). === The help partition === !IMAGE!Pictures/the_toolbar-screengrbhelp.jpeg!/IMAGE! The Help partition, allows you to save a quick screenshot of the view or to access to the help tab. By default the toolbars are arranged in the order shown above horizontally next to each other along the top edge of the MakeHuman window. The four partition toolbars can each be moved to any area of your screen in Windows by clicking and holding the left mouse button on the left edge of the toolbar and dragging it to the location you desire. ==== The tabs ==== Most of the user controls of the MakeHuman™ application are accessed through the tabs panel. The tabs are organized intoMainTabsandSubTabs.TheMain Tabsoutline the broad category to which functionality belongs and theSub Tabsallow for more fine grained control over various aspects of the main category.ThereforeSub Tabskeep changing based on whichMain Tabhas been selected. E.g. When you select the "Files" main tab all file associated functions are made accessible via subtabs such as saving, loading and exporting. In the below image Sub Tabs for the "Modelling" main tab are shown. !IMAGE!Pictures/maintab.png!/IMAGE! The Primary Tab groups are shown in the image above and from left to right are: * Files:The Files Tab options provide access to the controls that manage saving, loading and exporting the MakeHuman™ project to or from files. * Modelling:The Modelling Tab options provide access to the controls that shape and alter the appearance of the MakeHuman™ project model. * Geometries:. The Geometries Tab options provide access to controls that add new geometries or change the human geometry within the MakeHuman™ project. E.g. Clothes, Eyes, Hair, Teeth, Genitals. * Materials:The materials available for the human and the additional geometries. * Pose/Animate:Options for posing animating and rigging a character. * Rendering:Rendering options using the MakeHuman internal renderer. Currently external rendering is not supported from within the program. * Settings:Provide options to configure settings of MakeHuman * Utilities:Provide some additional more advanced utilities. E.g. Material Editor * Help: The Help Tab's Help option provides access to controls that access the Help and support resources available for the MakeHuman™ project. ==== The sliders ==== MakeHuman is based on parametric modelling, controlled by sliders. !IMAGE!Pictures/wMgROK6FRzzyQAAAABJRU5ErkJggg==!/IMAGE! The meaning of each slider is generally self explanatory. Each slider controls the amount of a feature is expressed in the character from its minimum value to is maximum value. For example, the slider "Age" will change the character from the minimum age, which is about 2 years old, to the maximum age of about 80. When multiple sliders are moved, the values are mixed to form a character that reflects the user's chosen settings using a special interpolation engine. Each slider can be reset individually with right click on it. A slider normally moves in increments of 3 or 4 setting values when dragged with the mouse; however, you can place the mouse cursor over the orange portion of the slider and use the mouse scroll wheel to make adjustments in smaller increments of 1. === The Interace and File Formats === To be added soon. === Load Save and Export === ==== File Access Overview ==== The leftmost section of the Toolbar includes 3 quick action icons: 1) for loading models from native .mhm files; 2) for saving the model as a native .mhm file; and 3) for exporting the model in various formats used by other 3D programs (e.g., dae, .fbx, .stl, .obj). !IMAGE!Pictures/lse_quick.png!/IMAGE! For more complete file access support (Load, Save, Export), the Files Tab options provides access to the controls that manage saving, loading, and exporting the MakeHuman™ project to or from files. !IMAGE!Pictures/lse_tabs.png!/IMAGE! ==== Loading Files ==== Files are loaded using either the Quick Load icon or by directly choosing the File tab and the Load subtab. !IMAGE!Pictures/load1.png!/IMAGE! By default, models that have beem saved in MHM format are retrieved from the user directory%HOMEPATH%/makehuman/v1/models/. In the event that you have stored your MHM files in a different directory/folder, you can navigate to that directory/folder using the ellipsis at the top of the center panel. The right hand panel will be populated with thumbnail images of all the MHM files found in the path specified in the path at the top of the center panel. Simply click on the icon for the model you wish to load in the right panel. The model will load and refresh to its completed state in the center panel. You can load different models sequentially, if you wish. They will simply replace the previous model in the center panel. MakeHuman™ is designed so that all loaded models are loaded without changing the camera location. Thus, you can zoom in on a particular area of the body and compare multiple saved models from a single camera perspective. ==== Saving Files (.mhm format) ==== Files are saved using either the Quick Save icon or by directly choosing the File tab and the Save sub tab. The native file format for saving MakeHuman™ files is the .mhm format. It is important to understand that this format does not save a pixel by pixel representation of your model nor does it save program objects like the actual clothes or hair. Rather, it saves the necessary information for the program to reconstruct your model from its internally defined assets. This means that if you move a .mhm file to another computer that lacks a piece of custom clothing, custom hair, or other custom object, the MakeHuman™ program on the new computer will be unable to provide a complete representation of your model unless you also move the custom asset(s) to the second computer. By default, model files (in.mhm format) are saved to the user directory %HOMEPATH%/Documents/makehuman/v1/models/. If you wish to save your files in a different location, you can use the ellipsis at the top of the center panel to navigate to the directory/folder of interest. In addtion to the .mhm file, the save operation will generate a thumbnail image of the model as it appears in the viewport at save time. Thus, you will want to move the camera to a meaningful and unique view of the model before saving so that the thumbnail image will be easy to identify visually. CAUTIONARY NOTE:On windows OS (and perhaps on other OS's) there is a small gliche with saving to non-standard directories in MH 1.0.1 and MH 1.0.2. If you hit the ellipsis with a blank file name, use the system dialog to navigate to your directory of choice, enter a file name without extension in the system dialog, hit save, and watch the dialog close, the file will have been saved using the directory name rather than the filename you provided in the save box of the system dialog. This directory name will now appear to the right of the ellipsis in the center panel. It seems that you can avoid this problem by providing a full file name to the right of the ellipsis before you begin the save procedure, then using the system dialog to navigate to the desired directory, and supplying the same file name a second time in the filename blank of the save dialog. This irratic behavior has been reported, and when fixed, this cautionary note should be removed. (Refer to bug 506 - RWB) ==== Exporting Files ==== !IMAGE!Pictures/export_labelled.png!/IMAGE! The above illustration explains the typical user interface components of the Export tab. On the right you get to choose what to export be in the mesh, the rig or the maps. In the center you have the 3D preview to preview your model. On the right you have options which keep changing based on what format you have selected in the left panel. On the top below the tabs panel is the “Ellipsis” button which opens a file dialog, a text box to enter the file name of the file and an “Export” button to do the actual export and save the file in the desired format. Below we outline the three main options in more detail i.e. Mesh formats, rig formats and Maps. === Mesh Formats (.dae, .fbx, obj, Ogre3D, .MD5, .stl) === Files are Exported using either the Quick Export icon or by directly choosing the File tab and the Export subtab. The Export window allows you to export your current MakeHuman project to one of a variety of export formats. Supported formats including Collada (DAE) Filmbox (fbx),Wavefront (obj), Id Software (MD5), and Sterolithography (stl). By default, exported files (regardless of export format) are saved to the user directory%HOMEPATH%/makehuman/v1/exports/(to know yourHOMEPATHon your platform refer to this!LINK!http://www.makehuman.org/doc/faq/where_are_my_makehuman_files_found_ie_where_is_my_home_directory.html -- faq!/LINK!). As is true for the load and save tabs, the ellipsis can be used to export to a non-standard directory/folder. After selecting a format and export options, type the name of your project in the input box at the center of the Export window and then click theExportbutton at the right hand side of the input box. MakeHuman, itself, can not read any of the exported formats, so exporting is a one way transfer of information. If you expect to do further refinement of your model, make sure you also save it in .mhm format. The various export formats differ in the richness of the assets exported: * Collada Dae (.dae):COLLADA™ is owned by the not-for-profit, open standards!LINK!http://www.khronos.org/ -- Khronos group!/LINK!. It defines an!LINK!https://www.khronos.org/collada/ -- XML-based schema!/LINK!standard for exporting 3D assets. MakeHuman™ is meant to adhere to version 1.4 of the standard. The resulting ASCII format files can become quite large which occassionally limits the use of this format with other programs. By default, MakeHuman™ exports DAE files with y-up, face-z and the decimeter scale chosen. When importing MakeHuman dae files into Blender, be sure to check "import units" at the bottom of the Blender left tool panel if you have not changed the units to meters. * Wavefront Obj (.obj):OBJ is a very simple format to export the mesh, with vertices, faces and UV coordinates. Originally invented by Alias/Wavefront, all major 3D packages have OBJ importers, so this format allows you to export to the greatest range of applications. However, the character is not rigged but rather a static prop. Wavefront OBJ is a good choice when you need a simple mesh for an external renderer. It comes with an mtl file defining the material. * Fbx:The default dialect currently used by the MakeHuman™ FBX exporter is FBX 2013 ASCII. Other FBX dialects exist, and if you need one of those dialects, you can use the AutoDesk™ FBX converter (!LINK!http://www.autodesk.com/products/fbx/overview -- http://www.autodesk.com/products/fbx/overview!/LINK!). For example, the Blender importer requires binary FBX files that can be generated in this fashion. TheOptionsbox contains several export options for each of the formats.The export options available for each format can be selected or deselected by ticking (displayed in orange) and un-ticking off the box in front of them. You can either use the default options for a format or select and deselect options according to your goals and needs. Once an option is changed, it will remain in the changed state until you restart MakeHuman or change it again. They are unaffected by the reset button on the Toolbar. A common option that is present for all formats isFeet on ground: the origin of the MakeHuman™ mesh is located in the hip area, but if this option is enabled, exported origin is moved to between the feet instead. Another common option present in almost all formats is the Scale unit: decimeter, meter, inch, centimeter. The internal MakeHuman™ unit is decimeters (the base mesh is 16.8 dm tall), but this is a rather unique choice not shared by other applications. Setting the unit is not essential if the file is exported to a 3D suit like Maya, 3DSMax or Blender, because the character can be rescaled after import. However, Collada files can also be read by other types of applications, where choosing the right scale may be important. In particular, select meters for export to SecondLife. === Rig formats (.bvh) === MakeHuman currently only supports one rig format. * Biovision (.bvh):If BVH is selected, it is anticipated that built in animations will be saved to the export directory. As of the MakeHuman™ 1.0.2, there is no offical support for model animation from within MakeHuman™. Thus, selecting this export type is of limited value. If you are interested in using BVH files created by other programs with the MakeHuman model, you may wish to read the documentation on the!LINK!http://www.makehuman.org/sectionview/975 -- MHBlenderTools MakeWalk!/LINK! Addon. A good place to start is the!LINK!http://www.makehuman.org/doc/node/blendertools_makewalk_basic_workflow.html -- MakeWalk Basic Workflow!/LINK!chapter. === Maps ( ligtmaps and UV maps) === * Lightmap:IfLightmapis checked, a grayscale image of the unwrapped A8 model is saved in the export directory as a 2048 x 2048 .png image. * UV Map:IfUV mapis checked, a black and white UV unwrapped image of the model mesh on a black background is saved in the export directory as a 2048 x 2048 .png image. === Zoom, pan and rotate using the orbital camera === ==== Orbital camera ==== Starting with MH 1.0 there is a new orbital camera system that replaces the old still camera. This new camera addresses the issues where the old still camera made it hard to focus on body parts, for example hands. In the new system the human never moves. Rather, the camera travels on an imaginary sphere surrrounding the human. The user "mouse picks" a focal point on the human by right clicking, and zooms in and out by dragging. This allows the user to easily rotate around this point to inspect it from all sides. ==== Right-click zoom picking ==== The default zoom button has been changed to the right mouse button and the use of the mouse wheel is depricated. !IMAGE!Pictures/mh_interface_cam.png!/IMAGE! Right clicking now serves two purposes, it picks the center of focus based on the location of the cursor when it is positioned over the human, and it lets you zoom in or out by dragging the mouse. Right clicking on the background and not on the human simply makes it zoom in or out straight ahead. ==== Auto-zoom ==== Another advantage of the orbital camera is that it will adapt the viewing distance based on the height of the human. !IMAGE!Pictures/mh_grid_interface2.png!/IMAGE! The camera will attempt to keep the current focus point in the center of the screen and maintain the same amount of visibility, independent of whether you are modeling a 1 year old child or a 2.5 m tall giant. ==== Panning ==== The panning function of the camera has been moved to the middle mouse button (which we suspect is not available to all users) to indicate its reduced importance. Panning will be limited based on camera zoom and will even be completely locked when the camera is zoomed back so that the entire human is visible. The reasoning for this is that panning in the context of MakeHuman is only useful to focus on a feature of the human mesh, not for moving the human around in the scene. In fact we discourage excessive use of the panning feature, and encourage you to use the right click zoom picking instead. Panning is only recommended for small corrections to the framing, as it is quite tricky to position the camera center yourself (you will notice this if you try rotating the camera after having panned over a larger distance, it might not rotate around the center you expected). ==== Grid ==== The grid helps with getting a better idea of the proportions of the human, and it provides a point of reference in the world when the camera is moved around. !IMAGE!Pictures/mh_grid_interface.png!/IMAGE! There are two detail levels which are activated when the camera is zoomed close enough. The grid adapts to the 'units' setting, which allows for metric and imperial units. The metric grid has subgrids each 2 cm and a main grid at 10 cm (1 dm) intervals, while the imperial grid has subgrids per inch, and a main grid with 1 foot as size. == Define Human Characteristics == This section illustrates the modeling of the human using theparametric approach. === Gender, Random, Measure and Custom === The gender plugin comprises sliders used to alter gender specific attributes of your human models. Currently there are 2 categories under this: * * Breast - this category, as the name suggests, comprises of sliders used to alter attributes related to the human female breasts such as firmness, size, pointiness etc. * * Genitals - This category comprises of sliders used to alter attributes pertaining to male/female genitalia. Currently only male genitals are supported. (Note: male genitals have to be enabled under Geometries->Genitals for this to have any effect). Note:For the upcoming MakeHuman 1.1 these sliders have been disabled and the Geometries->Genitals subpanel no longer exists this is because we no longer have male genitals as a seperate mesh. Seperate male and female!LINK!http://www.makehuman.org/doc/node/makehuman_alternative_topologies.html -- alternate topologies/proxies!/LINK!exists with/without genitalia which are to be used instead. ==== Random modifier ==== !IMAGE!Pictures/random2_2_0.png!/IMAGE! The random modifier is used to auto generate human beings with randomised parameters. The interface comprises of 3 checkboxes, 2 sliders and 2 buttons. * Macro checkbox -This checkbox is used to toggle whether "Macro" attributes such as age, tone/muscle, gender are randomised or not. * Height checkbox -This checkbox is used to toggle whetherthe height attribute is randomised or not. * Face checkbox -If this is enabled the facial features of the model are randomised. * Symmetry slider -THis is used to introduce Assymmetry in the model. * Amount -THis slider is used to control the amount of randomisation of the character done by the random plugin. * Replace current -usede to replace current model with a new random model. * Adjust current -this is used to alter the parameters of the current model. ==== Measure Panel ==== !IMAGE!Pictures/measure_1.png!/IMAGE! The "Measure" tab facilitates the end user in more precise modelling of the human form. With the measure panel you are able to use the sliders as well as specify the units as sliders for more accurate adjustment of proportions. Various proportions can be edited here such as the proportions of the neck, waist , arms, legs and so on. One example of where this would be useful is in modelling characters like Michael Phelps who has an arm span longer than his height making him a better swimmer. ==== Custom modifier ==== !IMAGE!Pictures/customtab_0.png!/IMAGE! The custom panel is primarily used for "custom morphs". Cusom morphs can be created by you using blender tools and then used inside makehuman. This tab will remain empty unless you make your own targets using blender scripts and import them for use inside blender. This would be used for instance if you wanted to make an "Elven ears" morph inside makeuman for a humanoid character. This tab is more relevant for advanced makehuman users. === Using MakeHuman Hairstyles and Clothes === ==== Hairstyles ==== The default MakeHuman™ humanoid model has no hair. However, you may want your model to have hair and a particular hairstyle. In MakeHuman™, you can choose from the available character hairstyles by first selecting the tabsGeometries > Hair. !IMAGE!Pictures/hair_1_0_0.png!/IMAGE! This opens the Hair library window. The Hair library window, as usual, is arranged in three sections. There is a left hand panel (currently empty, but that will include a tag filter), a center preview window showing your current character model, and a right hand panel containing a list of available hairstyles shown as a thumbnail with a label. For the moment, the default hairstyles within MakeHuman™ are only few types. The library will be expanded release by release. To be able to see your character with an available hairstyle, you must click on the thumbnail image with your mouse. === Changing or Removing Hairstyles and Hair === You can change an assigned hairstyle with another one by clicking on another thumbnail. For example, you can change the hairstyle "afro" of your model by clicking on the hairstyle "fhair" from the panel of thumbnails. Note that doing this will not combine the two hairstyles. If you are unhappy with how the chosen hairstyle looks on your model and want to return to the previous state of your model, you can press the Undo button at the top left of the screen. In case you want to return to the original state of the model prior to applying any hairstyles, just find the thumbnail named "None" from the gallery of hairstyles and click on it. Your model will now revert to the state that it had before applying any hairstyles to it. ==== Clothes ==== The default MakeHuman™ model is barefoot and has no clothing on. However, if you would like to dress your model in MakeHuman™ it is possible by simply clicking and loading clothing and shoes from the library of clothing geometry objects that are fitted to the model automatically. To dress your model press the tabsGeometries > Clothes. !IMAGE!Pictures/clothes_1_0.png!/IMAGE! The clothes interface is very similar to the hair one, with some differences: * Clicking on more items in the right panel will combine them. To remove an item you have to re-click it. * There is a tag filter in the left panel, useful to navigate through a big library. * An option called "Hide Faces Under Clothes" is provided to prevent portions of the body from intersecting the clothing and creating holes during animating. === Parametric Modelling === !IMAGE!Pictures/main_labelled.png!/IMAGE! The Main controls are accessed by going to the 'Modelling' tab and selecting the “Main” sub-tab. These controls define the major characteristics of a human being. controls are used to define the character's macro features. The first six corresponding to Gender, Age, Muscle, Weight, Height, Proportions respectively and the last three ( African, Asian, and Caucasian) correspond to ethnicity. !IMAGE!Pictures/age_0.png!/IMAGE! * Gender:The gender tab is used to define what gender the human being poseeses. Male or female or a mixture of both characteristics with either being dorminant. * Age:The age slider is used to alter the age of the human being as a whole. The above image shows human beings at various ages ranging from young to old. * Muscle:The muscle sider is used adjust the amount of muscle possesed by the human character. * Weight:The Weight silder is used to adjust the weight of the character. The default setting is the character with average weight. Used along with "Muscle" it can be used to specify the proportion of muscle and fat contributing to the weight. * Height:The Height slider is used to adjust the height of the characters. * Proportions:The proportions slider is used to adjust the the proportions, from "uncommon" to "idealistic". Ethnicity sliders:THe ethinicity sliders (African, Asian, Caucasian) are used to alter the ethnic traits of the human being. These slidersare dependent on each other such that the sum of all three sliders is always 100 percent or a value on 1. This means that an increase in the value of "African" slider will lead to a decrease in the value of the "Caucasian" and "Asian" sliders. This is rational because if for instance a human being is of pure African origin then he/she is expected to possess only African traits whereas if he/she is of mixed decent the character is expected to have a fusion of ethnic characteristics. A human being cannot be hundred percent African and hundred percent Asian. ==== Face modifiers: ==== !IMAGE!Pictures/face_modifier_labelled.png!/IMAGE! The makehuman face modifiers in makehuman are organised into several categories(eyes, nose , chine etc.) comprising of the morphs pertaining to varios facial features. The morphs available on the right hand side pertain to the category currently active. E.g. When the Head category is selected all morphs pertaining to the head such as head shape (oval ,round , triangular etc), angle and age are available. If the category was to be switched to Mouth size however all sliders related to that category would be visible and manipulatable. ==== Adjusting the Torso Shape: ==== !IMAGE!Pictures/torso_cropped_labelled.png!/IMAGE! In order to alter the torso-related features of the human we have to select the "Torso" sub-tab located under the main "Modeling" tab. In the torso section we are able toalter various attibutes such as stomach (size, pregnancy shape), body height, width and so on. ==== Arms and Legs Shape: ==== !IMAGE!Pictures/legs_modelling_2_0.png!/IMAGE! The "Arms and Legs" sub-tab is again located under the main "Modeling" tab. Here we can alter the various attributes related to the arms and legs such as hands, arms and feet. === Makehuman alternative topologies === Makehuman provides a group of alternative topologies which replace the base mesh and are designed for special purposes. These are useful for various applications such as simulation (E.g. a car crash computer simulator), games and so on. !IMAGE!Pictures/topologies_0.png!/IMAGE! In order to use the alternative topologies provided by MakeHuman; go to Geometries -> Topologies. For alternative topologies we follow a specific naming convention having the structureNameVertex-countE.g. proxy741 is a alternative topology named proxy with 741 vertices, female1605 is an alternative topology designed for females with 1605 vertices in the mesh. For illustration purposes we show the wireframe/mesh view of female1605 with 1605 vertices in the figure below. !IMAGE!Pictures/Proxies1.png!/IMAGE! === Skin and other materials === ==== Changing Skin Texture ==== By default the human has a texturless skin. Assigning a new skin material is very easy. Go in Materials Tab. You will now see a radio button option for "Skin" under the Human category choices section on the left side of the window. The right side will display available skin materials that can be applied to replace the default skin. By clicking on one of them your character will be displayed with the chosen material. !IMAGE!Pictures/materials_0.png!/IMAGE! ==== Changing Hair Textures ==== Same process as the skin, but selecting the "hair" radio button instead. The materials available depend by the type of hair loaded. !IMAGE!Pictures/hair2_0_0.png!/IMAGE! ==== Changing Clothes Textures ==== Changing clothes texture is exactly as the hair one, selecting the cloth type instead of hair. !IMAGE!Pictures/clothes2_0_0.png!/IMAGE! == Rendering Your Work == To write === Quick rendering and advanced rendering === ==== Introduction ==== MakeHuman™ has an internal rendering engine based on OpenGL technology: GLSL 1.2 for openGL 2.1 or superior. For this reason some features will be available only for machine(s) build after semptember 2006. For the same reasons, the results can vary a bit, depending the video cards. !IMAGE!Pictures/render_0.png!/IMAGE! ==== Quick render and advanced render ==== MakeHuman™ uses two different rendering approaches, quick and advanced rendering. Both them produce images with transparent background, in order to be eaily mounted in Gimp or Photoshop. The quick renderingis intended to for a click-and-see render. It uses fixed presets for lights and materials, studied to show the model in an optimal way. There are only ywo available options in that mode: * Resolution, written in the form widthxheight * Antialiasing(turn it on for quality rendering): Aliasing happens when model edges look 'jaggy'. Raise this slider to filter these. It also help hair and thin stuff in general look better. However raising the AA level can have an equivalent performance hit. The advanced renderinguse a different rendering technique. It gets the lights defined in "scene" and make complex calculations. In future it will supports shadows and more options to increase the realism. In addition to the two existing options, there is the subsurface scattering one. Enabling it will produce a more realistic and impressive skin, to simulate the skin's behaviour when light passes through it. When you have finished selecting the desired options, press the 'Render' button and see your model become a piece of 3D art! === Scene and Viewer === ==== Makehuman "Scenes": ==== MakeHuman™ provides a library of lighting presets, that will be used in the "advanced rendering" mode. This library is the "Scene" library which currently has only one lighting preset named "default". ==== The "Viewer": ==== The rendering result will be displayed in the "viewer". It's possible to zoom and move the image using the usual mouse buttons, and then save the image as png, using the "Save as" button. !IMAGE!Pictures/viewer_0.png!/IMAGE! == Settings == Setting the preferences in MakeHuman. === Background === The Background tab allows you to add background/foreground images to use as a modelling reference or to create a scene within MakeHuman™ for the Short Pipeline. When you open the Background tab you will see a "None" icon and a list of thumbnails of the files within the backgrounds folder in the!LINK!http://www.makehuman.org/doc/faq/where_is_my_home.html -- MakeHuman home folder!/LINK!, if they are present. The "None" icon is used to remove the background from the MakeHuman™ scene. !IMAGE!Pictures/background_0_0.png!/IMAGE! ==== Different backgrounds for different sides ==== Prior to selecting an image you should first determine the side of the MakeHuman™ scene where you want the image to appear. You can specify where you would like the background placed relative to your MakeHuman™ character with the Side control choices on the right hand side of the Background tab screen. The first six (6) options set the background in your scene using the standard Camera view positions. If you choose the last radio button option labeled "Other" you can add the background into the scene with the character and camera position however it was last set, as long as it was not in one of the predfined camera views. If you are placing an image to act as a reference image for modelling your character, you should select the side that matches your reference facing. You can insert up to 7 different images into the MakeHuman™ scene by applying a different image to each Side option. As the camera view changes into each side view or other view angle, the image shown will change as match your image side configuration for each of the camera side views shown in the modelling window. The background image, in fact, will only appear while the camera remains in the side view specified. Pressing one of the camera view options is the easiest way to get a background image to reappear if it disappears due to a camera view change. ==== Background opacity and position. ==== The Background Setting options allow you to set the background image's opacity using the Opacity slider control, which determines how transparent or opaque the image will appear in the scene, and to set the image as a background or foreground. These controls are particularly useful when you are using reference images to model your character. The standard Opacity setting of 100 is equivalent to a 60% transparency level. Setting the control to 0 will make the image invisible (100% transparency) and setting the opacity control to 250 will make the image fully opaque (0% tranparency). The "Show in Foreground" checkbox option allows you to place the image in front of the character in the scene so that the character will be obscured according to the opacity level setting of the background image. This option should be checked if the image will be used as a reference image for modelling. The background can be moved and resized to properly fit the character, checking the options in the left side and then clicking and dragging with leftbutton or rightbutton. === General === ==== General Settings ==== The general settings include important features that can make a huge difference in MakeHuman's performance. !IMAGE!Pictures/general.png!/IMAGE! === Slider behaviour === * Update realtime. This option recalculates the human shape in real time during the slider movements. This requires more CPU resources. * Update normals real time. By enabling this option, the normals are updated during the slider movements in order to see a correct shading in real time. Computing the surface normals requires an intensive CPU calculation, so this can slow down old PCs. * Fit objects in realtime. By enabling it, all objects (eyes, hair, clothes, teeth, etc..) are fitted in real time during the body transformations. This requires more CPU resources. * Autozoom camera. Enabling it will automatically zoom in the camera to the zone of interest. For example, editing the head, it will zoom in to it, editing the hand, it will automatically zoom in to the hand, etc.. This can be useful in some cases, but it doesn't allow custom point of view, so this option is disabled by default. * Slider images. Enable the images to illustrate the sliders' effect. Disable it for a more compact list of controls. === Units === This setting is to choose the measurement system that will be used : * Metric, to use meters, centimeters, etc * Imperial, to use inch, feet,etc.. === Startup === * Preload macro targets. This option is very important for perfomance and startup loading time. Using the preload increases a lot the performance, but in the case when the targets are not compiled (for example the raw targets cloned from HG) it will considerably increase the loading time during startup. * Restore windows size. This option is just to remember the custom windows size used for MakeHuman. === Theme and languages. === These options areself explanatory. MakeHuman needs to be restarted for a change in the language settings to be effective. === Mouse === ==== Managing mouse configuration: ==== THe "Mouse" tab allows you to configure the behaviour of the mouse in makehuman. !IMAGE!Pictures/mouse_001.png!/IMAGE! The first wiidget in the left panel contains one slider labelled "3D viewport Speed". This slider controls the how sensitive the viewport is to mouse movement. As you increase this parameter the viewport become increasingly sensitive to mouse movements, thereby moving faster. Tweak this parameter with care. A value of one is the default speed at which makehuman models rotate and move in response to the mouse. Increase this parameter if you feel that the movements are too slow for your liking. The second widget inside the left panel is the "Camera" widget this widget allows you to configure the mouse settings used to control the camera. This also allows you to invert the mouse wheel. Note:With the orbital camera, panning is available only in certain situations. Therefore, the "Move" shortcut has been made available for configuration. If you cannot pan your model it may not a bug. === Shortcuts === THe "Shortcuts" tab helps us to manage shortcuts in makehuman. For your convinience shortcuts have been organised into 3 categories. The first category with the largest number of shrrtcuts available for configuration is the "Camera" category whose panel is located on the left hand side. THe other two categories are "Actions" and "Navigation". The "Action" panel helps us to alter shortcuts for actions such as undo and redo. The "Navigation" panel helps us to set shortcuts to quickly navigate between various frequently used tabs in Makehuman. !IMAGE!Pictures/shortcuts-mh_002.jpg!/IMAGE! ==== How to use the Shortcuts Tab ==== Managing of shortcuts is very easy inside makehuman. Just select the appropriate box with the current shortcut key andf type in thenew shortcut key/key combination. Makehuman will warn you if there are duplicates. === Plugins === Makehuman is designed using a modular approach. All features within makehuman belong to one module or the other. THese modules are called Plugins. With the help of the "Plugins" tab in makehuman we can enable or disable certain plugins thereby altering the feature set available. This feature is useful when: 1) A particular feature is uneeded and you want to improve performance of makehuman by disabling it. 2) A particular plugin is giving problems on your machine and you would like to disable it to avoid accidently triggering the fault again. !IMAGE!Pictures/plugins-mh_002.png!/IMAGE! By default all plugins are enabled plugins can be disabled by clicking on the option buttons and removing the "x" next to the related plugin. == Reporting a Bug == How to help MakeHuman development reporting a bug. === Using the Makehuman log files for error reporting === Occassionally, MakeHuman will not behave as expected, or you will note an exception in the status line, You willingness to make a bug report.for such events goes a long way to help imrove MakeHuman. For simple bugs,, it can often be enough to report the version of your operating system, the version of MakeHuman that you are using, and the steps to reproduce the problem. However, the developers often need to know more detail to reproduce your problem in a different environment. As long as MakeHuman has not "crashed" completely, the easiest way to learn the details is to use thebuilt-in log viewer. This can be accessed by selecting theutilities taband then thelog subtab. On the left, you will see alevel selectorthat is initially set to "default". The center panel will show a very verbose set of all the actions that have happened inside MakeHuman since it was last restarted. This entire set of information is seldom needed. For bug reporting, you will be most interested in the messages that show when you set the level selector to "error". If severe problems have occurred, the center window will show the errors logged in red. If there are none, it may still be worth reporting the somewhat less severe "warning" level messages which resulted in code exceptions. These messages will show in orange if you set the level selector to "warning". Only seldom will levels of "notice" or "message" be of interest to developers. Supply these only upon request. When you find "errors" or "warnings" you can highlight the message(s) with the mouse and press the "copy" button in the left panel. The message will be copied to your clipboard. Simply paste these messages at the end of your bug report. In the event that MakeHuman crashes completely, or in the case of complex problems it may be better or easier to upload more complete log information from the log files. MakeHuman always creates 2 important files called "makehuman-debug.txt" and "makehuman.log" in the user's home directory (under "My Documents/makehuman/v1" in Windows or "~/makehuman/v1" in your linux distribution). makehuman-debug.txt:This provides some essential information about the system on which you have installed makehuman such as version information, machine architecture type, numpy versions and so on which is useful when reporting a bug as the bug may be applicable to your particular machine configuration. makehuman.log:The makehuman.log file is another separate file. This file logs all events that take place from the beginning when makehuman is loading till the end when makehuman is closed. ALl regular events and error messages are logged in this file. It is important that you attach either this whole file or the last few signinficant lines indicating where the bug occured. This logs contains backtraces and other useful information like what plugins loaded, what plugins did not at which point did a python script fail and so on. When reporting a bug in the makehuman bugtracker posting the contents of both these files is useful and will help us to debug and resolve the issue(s) more quickly. This is of course not needed when you are posting a feature request which is not a bug. === Using the Makehuman bug tracker === Makehuman has introduced a new internal bug tracker based on redmine (!LINK!http://www.redmine.org -- www.redmine.org!/LINK!) this tracker allows us to easily handle bug reports and feature requests reported/requested by you. In order to use this new bug tracker a forum account is compulsory (even if you do not wish to use forums). Your forum ID becomes your makehuman bug tracker ID. Following are some quick links related to makehuman bug tracker: * Roadmaps:!LINK!http://bugtracker.makehuman.org/projects/makehuman/roadmap -- http://bugtracker.makehuman.org/projects/makehuman/roadmap!/LINK! * Add a new issue and see the isues list:!LINK!http://bugtracker.makehuman.org/projects/makehuman/issues -- http://bugtracker.makehuman.org/projects/makehuman/issues!/LINK! * Graph for a quick overview:!LINK!http://bugtracker.makehuman.org/projects/makehuman/issues/growth -- http://bugtracker.makehuman.org/projects/makehuman/issues/growth!/LINK! * Activity:!LINK!http://bugtracker.makehuman.org/projects/makehuman/activity -- http://bugtracker.makehuman.org/projects/makehuman/activity!/LINK! == Tools and contributing methods == Blendertools and contributing methods === MakeTarget standalone === ==== Making Wavefront .obj Files MakeHuman™ Compliant ==== The following procedures should be followed to create Wavefront .obj files that comply with the requirements of MakeHuman™ using modelling software programs such as 3dMax, Maya, XSI, etc. * * Download the 1.x base mesh base.obj file from MakeHuman!LINK!https://bitbucket.org/MakeHuman/makehuman/src/c40af22cebf2d5372b931b485f60588f42f24480/makehuman/data/3dobjs/base.obj?at=default -- HG repository!/LINK! * Import it into your preferred modelling software * Modify it in order to create your final character * Export it as .obj (of course with a different name than base.obj) During editing of the base mesh be careful about 3 things!You have to pay attention that: * The import/export does not alter the number of vertices, the faces, does not split the obj, etc. The topology has to be the same as the original one. * When modifying the base, you do not delete or add vertices, do not add or remove faces, etc. The topology has to be the same as the original one. * The 3D program used also preserves the exact order of the vertices. ==== There are no other limitations on the .obj files used. ==== ==== Making Targets with MakeTarget™ StandAlone ==== ==== Using the MakeTarget GUI program ==== To obtain the MakeTarget GUI program, download and install either the Windows version or the Linux version at the bottom of the download page of the MakeHuman website at: !LINK!http://makehuman.org/content/download.html -- http://makehuman.org/content/download.html!/LINK! Looking at the GUI of MakeTarget, you can notice other elements: the (+) and (-) lists, the possibility to process whole directories and to have .obj as output. These are batch tools, designed for MakeHuman developers. Let’s go on to describe an usual scenario. Assuming you have 30 “chin” targets modelled on the young caucasian female. These targets will create artifacts when applied on a young asian female. So our artists have to process 30 targets in order to create an asian version from all of them. The steps are: * For each chin target, do: asian-female-young.target + chin.target and save the result as .obj. * Import each .obj in a modelling software, fix the artifacts by hand and export the corrected .obj. * For each corrected .obj, subtract the asian-female-young.target and save the rest as asian version of the chin target. For step (1) we will process an entire directory, choosing “Directory” as “input source” and targets as input type. Then we will “add” the asian-female-young.target, loading it in the (+) section. Then will choose “Obj” as “Output type”. !IMAGE!Pictures/image01.png!/IMAGE! Pressing the “Make” button, the entire folder will be processed, and in the same directory of targets we will see the newly created .objs. At this point, we can copy the folder, renaming it as “chin_fixed” and deleting the original targets. For step (2), we have to import, edit and export each .obj individually, as showed previously for the single target. After completing step (2), all .objs in “chin_fixed” will be fixed and ready to be converted into targets. So, it’s time for step (3). Again, we will process the entire directory, but this time the input type will be “Obj” and the output “Target”. Also, this time we will subtract the asian target, in order to obtain only the chin morph. !IMAGE!Pictures/image00.png!/IMAGE! Pressing the “make” button, this time we will obtain a series of .target, with the same name as the original objs, placed in the “chin_fixed” folder. That’s all! ==== Command Line Usage ==== This tool allows wavefront .obj files to be used that were edited using any 3D program. The only limitations are that the edit stems from the original base.obj file and that no vertices, edges or faces are added or removed. The 3D program used also needs to preserve the exact order of the vertices. There are no other limitations on the obj files used. Usage: There are a commandline version and a version with graphic user interface. Both do exactly the same thing. Here follows the explanation of how to use the commandline version. Options: -i --in input obj or target -o --out output obj or target -s --sub target to subtract from obj -a --add target to add to obj -d --dir input folder to load all objs or targets from --intype type of file to be input, obj (default) or target only applicable if --dir is used --outtype type of file that will be output, obj or target (default) -h --help this info -v --verbose verbose mode, shows extra information Usage scenarios: Load foo.obj as input, compare it with base.obj and output the difference as foo.target. Load foo.obj, subtract foo1.target from it, and output the difference between the resulting obj and base.obj as foo.target. Load foo.obj, add foo1.target to it, and output the difference between the resulting obj and base.obj as foo.target. Load all objs from myfolder, save the difference between the base.obj and each of the input objs to a target file with the same name as the input obj. Load all objs from myfolder, subtract foo1.target from each of them, and save the difference between base.obj and each of the resulting objs to a target file with the same name as the input obj. Load all objs from myfolder, add foo1.target to each of them, and save the difference between base.obj and each of the resulting objs to a target file with the same name as the input obj. Load foo.target, apply it to base.obj and output the resulting obj as foo.obj. Load all target files from myfolder, apply each of them to base.obj and save the result of each to obj with the same name as the target file. Load all target files in myfolder, apply each of them to base.obj while also subtracting foo1.target from the result. Save each combination to an obj with the same name as the input target. Load all target files in myfolder, apply each of them to base.obj while also adding foo1.target to the result. Save each combination to an obj with the same name as the input target. This is the usage information as can be obtained by running the "maketarget.py --help" command. Some additional scenarios that are not documented are possible with the tool. The user is protected from issuing commands that make no sense (eg. do nothing) as the tool will warn you about this. Also note that files are never overwritten. Upon encountering an already existing file this file is backed up as original_filename.bak. Additional backups of the same file are named in order original_filename.bak.0 original_filename.bak.1 etc. The GUI version of the tool does exactly the same thing. The exact same options (except help and verbose) are available in the GUI. The only difference between commandline and GUI version is that the GUI demands you specify an --in or --dir parameter. With the commandline tool you can do without as long as you specify some --add or --sub targets. ==== Compiling Binaries ==== For the ease of distribution a pyinstaller configuration is supplied to create a self-contained binary executable for both windows and linux. (MAC OS might work but is untested). For running this executable, the user does not need to install python or any other libraries (such as wxwidgets) on his computer. For building the package, however, you need to have those dependencies installed, and need to build the package on the target OS. There are two build files available: * compilePyinstaller.bat,for building a windows executable * compilePyinstaller.sh for building a linux executable (might work for OSX too) In order to use them you need to create a folder called "pyinstaller" in the makehuman/tools/standalone/maketarget folder. The build configs were tested with pyinstaller 1.5.1, but might work on future or older versions too. Additionally these dependencies are needed for the respective operating systems: Windows: * Python 2.7 !LINK!http://python.org/ -- http://python.org/!/LINK! I recommend using python 2.7 as I had issues with 2.6 and pyinstaller. The tool works fine with python 2.6, however * pywin32 !LINK!http://sourceforge.net/projects/pywin32/ -- http://sourceforge.net/projects/pywin32/!/LINK! Python extensions for windows. Needed for pyinstaller to work. * wxpython2.8 !LINK!http://www.wxpython.org/ -- http://www.wxpython.org/!/LINK! WX Widgets libraries and python wrappers for windows. Installable as one singe package.I recommend using the wxPython2.8 win32 unicode package for python 2.7. * UPX (optional) !LINK!http://upx.sourceforge.net/ -- http://upx.sourceforge.net/!/LINK! This is a tool for compressing the executable and reduce its size. Compression will happen automatically if UPX is installed. To install UPX copy upx.exe to C:\WINDOWS\system32 Note: you will need at least UPX 1.92 beta due to incompatibilites with the Visual Studio compiler, with which newer versions of python are compiled on windows. Linux: * Python 2.6 !LINK!http://python.org/ -- http://python.org/!/LINK! Version 2.7 works fine too. * python-wxgtk2.8 * libwxgtk2.8 !LINK!http://www.wxpython.org/ -- http://www.wxpython.org/!/LINK! !LINK!http://www.wxwidgets.org/ -- http://www.wxwidgets.org/!/LINK! WX Widgets libraries and python wrappers for wx * UPX (optional) !LINK!http://upx.sourceforge.net/ -- http://upx.sourceforge.net/!/LINK! This is a tool for compressing the executable and reduce its size. Compression will happen automatically if UPX is installed The pyinstaller script will create all the files that need to be distributed in a folder called dist/ (this will be an .xrc file, the executable, and a resources/ folder containing images used in the GUI). You can archive the contents of the dist/ folder and distribute these freely as a standalone application. === wxWidgets specific information === The GUI of this tool has been made using the python version of wxWidgets. The GUI form itself is not created using application code, but is instead loaded from the maketarget.xrc file that declares the GUI. This file was built using wxFormBuilder (!LINK!http://wxformbuilder.org/ -- http://wxformbuilder.org/!/LINK!). The file maketarget_gui.fbp is the source file that can be opened in formbuilder. The xrc file is output generated using the formbuilder application. However, the xrc could be edited manually too (but this would cause fbp and xrc file to go out of sync). === More information === For more specific details you can contact the author Jonas Hauquier at the makehuman.org website. === MHBlenderTools: MakeTarget === ==== What is a Target? The MakeHuman Morphing Process. ==== The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. !IMAGE!Pictures/morph1.png!/IMAGE! A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format,.target. ==== Loading the Base Mesh ==== While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. !IMAGE!Pictures/maketarget131-area.png!/IMAGE! The MakeTarge™ Version 1.31 Panel (Initial Settings) !IMAGE!Pictures/maketarget131.png!/IMAGE! Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file !IMAGE!Pictures/helper_details.png!/IMAGE! Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. !IMAGE!Pictures/maketarget-base.png!/IMAGE! ==== Basic usage ==== === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === !IMAGE!Pictures/MakeTarget_load.png!/IMAGE! After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™base. === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. ==== Advanced usage ==== === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. !IMAGE!Pictures/maketarget131-panels.png!/IMAGE! At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image below beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. !IMAGE!Pictures/maketarget3.png!/IMAGE! === Load Target Section (After The First Target Is Loaded) === !IMAGE!Pictures/MakeTargetLoadSecondaryTarget.png!/IMAGE! The three buttons that now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. === Discard And Apply Target Section === !IMAGE!Pictures/MakeTargetDiscardAndApplyTarget.png!/IMAGE! The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. === Symmetry Section === !IMAGE!Pictures/MakeTargetTargetSymmetryButtons.png!/IMAGE! The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === !IMAGE!Pictures/MakeTargetSaveTargetSection.png!/IMAGE! Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === !IMAGE!Pictures/MakeTargetFitTargetButton.png!/IMAGE! !IMAGE!Pictures/MakeTargetSkirtEditingAffectOnly3.png!/IMAGE! When the fit helpers have been included as part of the target, the additional options of the MakeTarget™panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. === MHBlenderTools: MakeClothes === === Overview === MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that theclothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within %USER%/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. === Using MakeClothes addon === MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. !IMAGE!Pictures/mc2-010-main.png!/IMAGE! The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: * Base Mesh: The MakeHuman mesh without any targets applied. * Average Male: A caucasian young male. * Average Female: A caucasian young female. * Average Child: A caucasian young child. * Average Baby: A caucasian young baby. * Base Mesh with Helpers: The MakeHuman mesh without any targets applied. * Average Male with Helpers: A caucasian young male. * Average Female with Helpers: A caucasian young female. * Average Childwith Helpers: A caucasian young child. * Average Baby with Helpers: A caucasian young baby. * Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The picture below shows the result of pressing "Load Human Mesh", with type set to Base Mesh. !IMAGE!Pictures/mc2-011-main_0.png!/IMAGE! A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and wrongly detected as a human item) * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. !IMAGE!Pictures/makeclothes03.png!/IMAGE! === Glue clothes to the body === The clothes are meshes that be done directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with thesame namemust exist in the human mesh as well. Only human vertices in the correct vertex group will be considered when making clothes. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === If vertex groups need to be reassigned, e.g. because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image above, called "Create Vertex Groups From Selection". Selecting a cloth, the button change in "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate onlya partof the human vertices withallvertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the image below, vertices assigned to the Mid and Left groups for a nude human. !IMAGE!Pictures/auto-vert.png!/IMAGE! === Generate the clothes file. === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/a8/data/clothes, in order to be inbcluded automatically in MakeHuman. ==== Advanced tools ==== Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === !IMAGE!Pictures/options-01.png!/IMAGE! Show selection.This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go in edit mode, move the mous on a vert and press Lkey to select the linked vertices), you can just press these buttons. Show Materials. This will show a button to export the materials only. It's useful in case there are not changes on geometry, but only on the material, in order to avoid to recompute all. Show UV projection.This section is useful mainly for making proxy meshes. * Recover seams.Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be reference for marking seams for the clothing. * Auto seams. * Project UVs.Automatically create an UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. * Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. === Show ZDepth, Show Offset scaling === !IMAGE!Pictures/options-02_0.png!/IMAGE! Show ZDepth.This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). * Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and lingerie, Socks and stockings, Shirt and trousers, Sweater, Indoor jacket, Shoes and boots, Coat, Backpack. * Set Z depth.Set the Z depth depending on the selected depth name. * Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be dialledmanually for fine-tuning. Show Offset scaling.The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. * Body part.Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. * Examine.Select the boundary vertices with Set boundary is invoked. * Set boundary.Set the boundary to vertices determined by the selected body part. * Custom Boundary.To manually set the bounday box. * X1, X2, Y1, Y2, Z1, Z2.The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. === Show Setting, Show License === !IMAGE!Pictures/options-03.png!/IMAGE! Show Setting.The setting include the author name and the export path. It's possible to save and restore the settings. Show License.This set of options are to add theauthor name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. * Author. Defaults to: Unknown. * License. Defaults to: AGPL3 * HomePage. Defaults to:!LINK!http://www.makehuman.org/ -- http://www.makehuman.org/!/LINK! === GUI languages and translations. === Our GUI is available in many languages, but translations are not yet complete. Anyway now contributing in order to add a new language is very easy, since the MakeHuman project is now available for translation on!LINK!http://www.transifex.com/organization/makehuman/ -- Transifex!/LINK!. !IMAGE!Pictures/languages.png!/IMAGE! Transifex is a web application for localization in an easy and agile way. !IMAGE!Pictures/transifex.png!/IMAGE! If you want to help the MakeHuman project by translating the GUI into your language, you first need to create an account on Transifex. Then, when logged in, you can go to!LINK!https://www.transifex.com/projects/p/makehuman/ -- the MakeHuman Transifex page!/LINK!and click on the appropriate language you want to translate. Then click the "Join team" button. Now you can click the current release name (for example "Alpha 8") entry and click "Translate now". If you want to make a translation in another language that is not yet listed, click "request language" on the!LINK!https://www.transifex.com/projects/p/makehuman/ -- MakeHuman transifex page!/LINK!. We will make sure to accept it as fast as possible, so you can start translating. Translating is quick and easy. You can select the "Untranslated strings" filter to show only the things left to translate. Click the first word on the left, and in the center of the screen enter your translation in the input box. When done typing, simply press the TAB button on your keyboard, and it automatically goes to the next entry. Repeat this process untill everything is translated. You can leave things open you are uncertain about, and leave them for later. Perhaps others know a good solution. You can interrupt your work at any time and continue working later, or leave it for others to finish. If you already have a translated file on your hard disk (for example you made modifications to an already existing language .ini file of MakeHuman, or you have filled in a .missing language file), you can upload it as translation and Transifex will automatically include it in the translation. You will be also able to download the json file of your language, in order to put it in makehuman/data/languages. On restarting MakeHuman, the new language will be available as an option under "Settings". === MHBlenderTools: Download and installation === The Blendertools package is available on the download page:!LINK!http://www.makehuman.org/content/download.html -- http://www.makehuman.org/content/download.html!/LINK! The current version is 1.0.0, designed to work with MakeHuman 1.0.0 and with Blender 2.69. It's a zip package of four folders: * MakeTarget * MakeClothes * MakeWalk * mhx_importer To install the addons, these subfolders must first be copied to a location where Blender can find it. Depending on the operating system being used, the addons destination directory where Blender will look for user-defined add-ons, is * Windows 7: C:\Users\%username%\AppData\Roaming\Blender Foundation\Blender\2.6x\scripts\addons * Windows XP: C:\Documents and Settings\%username%\Application Data\Blender Foundation\Blender\2.6x\scripts\addons * Vista: C:\Program Files\Blender Foundation\Blender\%blenderversion%\scripts\addons (this is valid at least for blender 2.69) * Linux: /home/$user/.blender/$version/scripts/addons Note that the AppData folder in Windows 7 and the .blender folder in Linux are hidden folders. The location may also be different depending on your choices for setting up your operating system and Blender. For more information see the Blender documentation. To enable the MH addons, in Blender open the User Preferences window from the File > User Preferences menu, and go to the Addons tab. The Blendertools addons are located in the MakeHuman category. Enable them by checking the box in the upper-right corner, next to the running man symbol. If you want Blendertools to start every time Blender is restarted, press the "Save User Settings" button. !IMAGE!Pictures/mhx-pref.png!/IMAGE! === MHBlenderTools: MakeWalk basic workflow === MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ==== Retargeting: how it works ==== The goal of retargeting is to transfer a motion from a source armature (e.g. from a BVH file) to a given target armature (e.g. the MHX rig). However, it is not straightforward to assign the source action to the target rig, even if the bones have identical names. The motion of each bone is specified in local coordinates, relative to the parent and the bone's own rest pose. If the rest poses of the source and target armatures differ, the source F-curves can not be used directly by the target armature. !IMAGE!Pictures/makewalk-1.png!/IMAGE! The picture above shows a transformation in the local coordinate system. Since the parent's local Y points along its axis and its local Z points up, the child bone is rotated around the local X axis. This is not very useful if the target armature has a diffent rest pose. To retarget the pose, we therefore reexpress the transformation in the global coordinate system, as shown below. The local X rotation corresponds to a global Y rotation, and by a different angle. Once the global transformation matrix is known, we can reexpress it in the target bone's local coordinate system. The retargeting process thus consists of making two coordinate transformations: Source local => Global => Target local. This will ensure that the source bone and the target bone will have the same global orientation. !IMAGE!Pictures/makewalk_2.png!/IMAGE! Unfortunately, things are a little more complicated. We do not always want the source and target bones to have identical orientation. In particular, the root or pelvis bone may point in entirely different directions in different armatures. E.g. in the CMU armature rest pose the pelvis points forward-down, and in the MHX rig it points straight up. !IMAGE!Pictures/makewalk-3.png!/IMAGE! If we insisted that the root bone in the MHX rig would point in the same direction as in the CMU rig, the retargeting would not be very successful, as shown in the figure above. If we instead keep the rotation offset from the rest poses, the target pose becomes much better, as shown below. To calibrate the source and target armature against each other, MalkWalk introduces extra keyframes at frame 0, where both armatures are posed in T-pose. !IMAGE!Pictures/mcp-ret-060-calibrate.png!/IMAGE! In the rest of the animation, bones in the target armature copy the global rotations of the source armature, apart from differences present in the T-poses. In this way we can transfer animations from CMU to the MHX rig, despite the fact that the rest poses are very different. ==== Basic Workflow ==== === Retargeting === The MakeWalk panels appear in the tool shelf whenever an armature is the active object. Select the armature and press the Load And Retarget button. In the file selector, select the .bvh file. We choose the file 90_04.bvh from the CMU database. It is a cartwheel animation. !IMAGE!Pictures/makewalk-4.png!/IMAGE! After a short wait, the armature is doing gymnastics. !IMAGE!Pictures/makewalk-5.png!/IMAGE! At frame 0 of the animation the armature has been placed in T-pose. This is not part of the originial .bvh file, but inserted by MakeWalk to calibrate the source armature (defined by the bvh file) and the target armature (the selected armature in the viewport) against each other. === Supported armatures === MakeWalk works with most straightforward biped rigs with FK arms and legs, such as the Rigify meta-rig. There is also built-in support for some more complex rigs: the MHX advanced rig from MakeHuman, the MHX rig from MakeHuman and Rigify. !IMAGE!Pictures/makewalk-6.png!/IMAGE! It is often possible to use MakeWalk with other complex rig, but in that case the automatic bone identification may fail. If so, a bone map must be defined manually, see!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining a Target Rig Manually!/LINK!. === Troubleshooting === Retargeting is a rather involved subject, and it can sometimes result in poor motion. The process may even fail completely, usually because MakeWalk failed to automatically identify the bones of a complex rig. If this should happen, see!LINK!http://www.makehuman.org/doc/node/makewalk_errors_and_corrective_actions.html -- Errors and Corrective Actions!/LINK!. ==== Where to find BVH files ==== There are several different formats that mocap files can be stored in. MakeHuman's mocap tool can only deal with files in Biovision BVH format. BVH files can be bought from many commercial sources, but a large range of mocap files are also available for free download. Here are some sites I found useful. * CMU Graphics Lab Motion Capture Database: Hosted at Carnegie-Mellon University, this is a huge library of mocap files which can be downloaded for free. The web address is!LINK!http://mocap.cs.cmu.edu/ -- http://mocap.cs.cmu.edu!/LINK!. CMU hosts mocap files in three formats: tvd, c3d and amc. However, the mocap tool can only read BVH files, so none of these files can be used directly. Fortunately, B. Hahne at!LINK!http://www.cgspeed.com/ -- www.cgspeed.com!/LINK!has converted the CMU files to BVH. The converted files are located at!LINK!http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture -- http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture!/LINK!. * Advanced Computing Center for the Arts and Design (ACCAD): Hosted at the Ohio State University, this is another great source of free mocap files. BVH files can be downloaded from!LINK!http://accad.osu.edu/research/mocap/mocap_data.htm -- http://accad.osu.edu/research/mocap/mocap_data.htm!/LINK! * Eyes Japan (mocapdata.com):This is a Japanese company that sells mocap data commercially, but they also offer a huge number of motions for free. According to their homepage, mocapdata.com provides 744 premium motion data and 4197 free motion data. The only catch is that downloading requires registration. Not surprisingly, the homepage of mocapdata.com has the address!LINK!http://www.mocapdata.com/ -- http://www.mocapdata.com/!/LINK!. * The Trailer's Park: Free mocap data can also be found at the Trailer's Park,!LINK!http://www.thetrailerspark.com/ -- http://www.thetrailerspark.com!/LINK!. This site does not offer original data, but offer repacks of mocap data from other free sites for download. Free download is limited to some five packs per day, so some patience is required here. * Hochschule der Medien, Universität Bonn (HDM):!LINK!http://www.mpi-inf.mpg.de/resources/HDM05/ -- http://www.mpi-inf.mpg.de/resources/HDM05!/LINK! * The Perfume global site project #001:!LINK!http://perfume-dev.github.com/ -- http://perfume-dev.github.com/!/LINK! === MHBlenderTools: MakeWalk user interface === ==== The user interface ==== The user > interface of MakeWalk is located in under the Armature tab, and becomes visible when an armature is selected. It consists of six panels; the first one is open by default and the others are closed. !IMAGE!Pictures/makewalk-7_0.png!/IMAGE! * Load And Retarget: Select a BVH file and retarget it to the active armature. * Start Frame: The first frame in the BVH file to considered. * Last Frame: The last frame to be considered, unless the animation stops earlier. The difference last_frame - first_frame is the maximal number of frames after retargeting. The number of frames in the BVH file may be larger, if some frames are skipped due to subsampling * Detailed steps: When this options is selected, further buttons are show below * Load BVH File (.bvh). Load a BVH file, and create an animated armature from it. * Rename And Rescale BVH Rig. With the BVH armature active, and a target armature selected, rename and rescale the bones of the active armature to fit the target. * Load And Rename BVH File (.bvh). A combination of the previous two buttons. With a target armature active, load a BVH file, and create an animated armature with renamed and rescaled bones. * Retarget Selected To Active. Retarget the animation from a renamed and rescaled BVH armature to the active armature. * Simplify FCurves. Simplify the F-curves of the active armature. * Rescale FCurves. Rescale F-curevs of the active armature.What if retargeting fails? MakeWalk is designed to retarget animations to a given armature with a minimum of user intervention. However, retargeting is a complex process, and entirely automatic retargeting may fail or result in suboptimal motion. Information about how to identify and correct problems is found in!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Errors and Corrective Actions!/LINK!. A common problem is that automatic identification of bones in the target armature fails. A bone map can then be assigned manually, cf.!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Defining the Target Rig Manually.!/LINK! ==== Options panel ==== !IMAGE!Pictures/makewalk-8.png!/IMAGE! * Use Default Subsample. Blender normally plays the animation in 24 fps or 25 fps, but the animation in the BVH file may be recorded at a different speed. In particular, the BVH files from CMU were filmed at 120 fps. Enable this option to have the animation play at natural speed, irrespective of the frame rate in the BVH file. Other subsample options are described below. * Auto scale. Set the scale automatically based on the size of the left thigh. This choice has two motivations: * Almost all character do have a left leg. * The leg size is crucial for making walk cycles look good. * Scale. The default MakeHuman scale is decimeters - 1 unit = 1 decimeter. Translations in a BVH file are expressed in different units; often the base unit is inches, meters or centimeters, but more obscure units can also occur, e.g. in BVH files from CMU. If the scale is set incorrectly, rotations will still be correctly retargeted, but the character will appear to take giant leaps or miniscule steps. * Use Limits: If this option is enabled, MakeWalk honors any Limit Rotation constraints, and will not allow excessive rotations. If the animation in the bvh files exceeds some rotation limits, this makes the retargeted animation less faithful. On the other hand, the rig may not be built for excessive rotations, so unchecking this option can lead to other problems. * Unlock Rotation: If this option is disabled, MakeWalk honors any rotation locks. If the animation in the bvh files bend around locked axes, this makes the retargeted animation less faithful. If Unlock Rotation is enabled, any X or Z rotation locks are disabled. Y rotation locks (bone twisting) are never disabled. The reason for this is that in the MHX and Rigify rigs, forearm rotation is handled by deform bones controlled by hand twisting. * Auto source rig. The source rig (i.e. the armature defined by the BVH file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Source Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the source rig, based on the structure of the bone hierarchy. * Auto target rig. The target rig (i.e. the armature in the blend file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Target Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the target rig, based on the structure of the bone hierarchy. * Ignore Hidden Layers. Ignore bones on hidden layers when identifying the target rig. === Subsample and Rescale === If the Use Default Subsample option is set, the mocap tool will rescale the animation to fit the current frame rate. However, there are at least two reasons why you may want to load an animation at a different frame rate: * * To obtain a slow-motion or rapid-motion effect. * To quickly load an animation to see if the gross features will work out. If the Use Default Subsample option is disabled, the SubSample section becomes visible. * Subsample. Enable subsampling. * Subsample Factor. If the value of this property is n, only every n:th frame of the BVH animation is loaded. * Rescale. Enable rescaling. * Rescale Factor. If the value of this property is n, the time distance between keyframes is changed to n. * Rescale FCurves. Apply the settings above to existing F-curves rather than to the loaded animation. Rescaling differs from simply scaling F-curves in the F-curve editor. === Simplification === * Simplify FCurves. Remove unnecessary keyframes. * Max Loc Error. The maximal allowed error for location keyframes, in Blender units. A larger error results in fewer keyframes but less accuracy. * Max Rot Error. The maximal allowed error for rotation keyframes, in degrees. A larger error results in fewer keyframes but less accuracy. * Only Visible. Simplification only affect F-curves visible in the Graph editor. * Only Between Markers. Simplification only affects F-curves between the two outermost selected markers. The timeline must have at least two selected markers. ==== Edit panel ==== Loading and retargeting is normally only the first step in the creation of an animation from mocap data. There are many reasons why a loaded animation does not behave exactly the way you want it to: artifacts in the mocap data, differences in armature structure not compensated for correctly by the retargeting process, differences in body stature between the mocap actor and the target character, or simply that the filmed sequence does not do exactly what you intend.. It is of course possible to edit the action directly in the graph editor, but this is unpractical due to the amount of mocap data. The mocap tool offers several possibilities to edit an action at a higher level. These tools are colleted in the Edit Action panel which is located just below the Options panel. !IMAGE!Pictures/edit-action.png!/IMAGE! === Inverse Kinematics === * Transfer FK => IK: The load and retarget steps transfers an animation from a bvh file to the target character. However, only the FK bones are animated. Press this button to transfer the FK animation to the IK bones. Only works for the advanced MHX armature. If two markers are selected, only the animation between the markers is transferred. * Transfer IK => FK: Transfer the animation back from the IK bones to the FK bones. Useful if the IK animation has been edited, * Clear IK Animation: Remove all keyframes from all IK bones (arms and legs). * Clear FK Animation: Remove all keyframes from all FK bones (arms and legs). === Global Edit === * Shift Animation. Shift the keys for the selected bones at all keyframes.If two markers are selected, only the keyframes between the markers are deleted. * X,Y,Z: F-curves affected by the next button. * Fixate Bone Locations:Replace all location keys by their average. Only selected bones and keyframes between selected markers are affected. * Rescale Factor: Factor used by next button. * Rescale FCurves: Rescale all F-curves by the factor above. This is similar to scaling F-curves in the curve editor, but jumps are treated correctly. E.g., rotations of +180 degrees and -180 degrees are the same, but if we scale an F-curve with a factor two, the intermedate keyframe will have the average rotation 0 degrees, The Rescale FCurves button handles this case correctly. === Local Edit === This section could be called "Poor man's animation layers". A loaded mocap animation usually has imperfections that must be edited, but without changing the overall feel of the motion. The Start Edit button creates a new animation layer where differences from the original motion are stored as keys, called delta keys since delta often denotes a difference. * Start Edit: Start editing F-curves. * Undo Edit: Quit F-curve editing, without modifying the original F-curves. * Loc: Set a location delta keyframe. * Rot: Set a rotation delta keyframe. * LocRot: Set a location and rotation delta keyframe. * Delete: Remove all delta keyframes at the current time. * |<: Move to first delta keyframe * <: Move to previous delta keyframe. * >: Move to next delta keyframe. * >|: Move to last delta keyframe. * Confirm Edit: Modify the original F-curves and quit F-curve editing. The delta keys are represented by markers in the timeline. !IMAGE!Pictures/mwe-315-local-keys.png!/IMAGE! A delta key can be added with the Loc, Rot and LocRot buttons, and removed with Delete. There is no way to view the delta keys directly. In the viewport and the curve editor, the final pose is shown, which is the sum of the original pose and the delta key. A common use for delta keys is to correct for intersection with other objects or the character herself. The typical workflow is as follows: * * Start Edit. * Set a delta key at a good frame just before the intersection. * Set a delta key at a good frame just after the intersection. * Edit the pose a the frame(s) where intersection occurs. * If the intersection has been removed, Confirm Edit. If not, set new delta keys until it has, or Undo Edit to remove the delta layer. === Feet === * Left: Affect the left foot. * Right: Affect the right foot. * Hips: Affect the characters hip (COM) bone. * Offset Toes: Ensure that the toe is below the ball of the foot at all keyframes. Primarily useful for rigs with a reverse foot setup as explained below. * Keep Feet Above Floor: If a mesh object (typically a plane) is selected, shift the keyframes to keep the affected feet above the plane. The plane does not necessarily lie in the XY plane; if the plane is tilted, the feet are kept on the plane's upper side. If no plane is selected, the feet are kept above the XY plane (z = 0). The IK feet are affected if the rig has and uses IK legs, otherwise the FK feet are kept above the floor. If two markers are selected, only the keyframes inbetween are shifted. In a rig with a reverse foot setup, such as the MHX rig, the foot can rotate around the toe, ball, and heel. The reverse foot and toe bones are completely fixed by the corresponding FK bones, but the IK effector can be placed arbitrarily, as long as it ends at the toe tip. The transfer tool uses this freedom to make the IK effector perfectly horizontal, provided that the toe is below the ball and heel. !IMAGE!Pictures/refoot.png!/IMAGE! To use this feature we must ensure that the toe is below the ball of the foot, which is done by the Offset Toes button. === Loop And Repeat === !LINK! -- Loop Animation!/LINK! Create a loop of the action between two selected time markers, by blending the keyframes in the beginning and end of the loop. This is useful e.g. to create walk and run cycles for games. For good results, the poses at the beginning and end of the selected region should be similar. * Blend Range: The number of keyframes used for blending. * Loop in place: Remove the X and Y components of the root bone's location. * Loop F-curves: Loop the animation. !LINK! -- Repeat Animation!/LINK! Repeat the action between two selected time markers. The actions should preferably be looped before it is repeated, to make the beginning and end match seamlessly. * Repeat Number: The number of repetitions. * Repeat F-curves: Repeat the animation. === Stitching === Create a new action by stitching two actions together seamlessly. * Update Action List: Update the first and second action drop-down lists. * First Action: The name of the first action. * First End Frame: Last frame of the first action * Set Current Action: Set the first action as the current action. * Second Action: The name of the second action. * Second Start Frame: First frame of the second action. * Set Current Action: Set the second action as the current action. * Action Target: Choose between creating a new action and prepending the second action. * Blend Range: The number of keyframes used for blending. Same parameter as in Loop Animations section. * Output Action Name: * Stitch Actions: Stitch the actions together. === MHBlenderTools: MakeWalk armatures === ==== Source Armature panel ==== MakeWalk transfers an animation from a source armature, defined in a bvh file, to a given target armature. It uses an intermediate standard rig described in!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. The bone map from the source armature to the target armature hence consists of two parts: * A map from the source rig to the standard rig. It is defined in the MakeWalk: Source Armature panel. * A map from the target rig to the standard rig. It is defined in the!LINK!http://makehuman.org/doc/node/makewalk_target_armature_panel.html -- MakeWalk: Target Armature panel!/LINK!. !IMAGE!Pictures/mws-010-panel.png!/IMAGE! When a new scene is opened, the panel consists of the single button Initialize Source Panel. Once this button has been pressed, the following content is available: !IMAGE!Pictures/mws-020-auto.png!/IMAGE! * Reinit Source Panel: Reinitialization. * Auto Source Rig: If this option is enabled, MakeWalk will try to identify the source rig automatically. It may happen that MakeWalk fails to identify the source rig automatically, but this is very unusual. If it should nevertheless happen, it is possible to define the bone map manually in analogy with !LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- how it is done for target rigs!/LINK!. * Source rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected source rig (if Auto Source Rig is disabled) or to Automatic. * Bones in the active source rig. ==== Target Armature panel ==== The second part of the mapping from source to target armatures is defined by the panel labelled MH Mocap: Target armature. It is the top-most of the mocap tool panels, and is closed by default. When a new scene is opened, the panel consists of the single button Initialize Target Panel. Once this button has been pressed, the following content is available: !IMAGE!Pictures/mwt-011-panel.png!/IMAGE! * Reinit Target Panel. Reinitialization. * Target rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected Target rig (if Auto Target rig guessing is disabled), or is set to a matching rig (if automatic target rig identificiation is enabled). * Auto Target Rig. If this option is enabled, MakeWalk will try to identify the target rig automatically. However, automatic rig identification is not trivial for complex rigs, and it may fail. If so, the bone map may be specified manually, cf!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. If the bone map is defined. The target rigs available by default correspond mostly to the rig presets that can be exported from MakeHuman * MHX. An advanced rig from MakeHuman alpha 8. * MH Alpha 7. The MHX rig from MakeHuman alpha 7. * Rigify. * Ignore Hidden Layers: Ignore bones on hidden layers during automatic rig identification. * Reverse Hip. Select this option if the armature has an reverse hip. It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. * Identify Target Rig: Identify the target rig, i.e. find out how bone names in the active armature correspond to the internal names. This step is performed automatically during retargeting, but the identification can also be done separately for debugging purposes. The bone map appears in the area called FK bones below. * Set T-pose. Pose the active armature in T-pose. * Save T-pose. Option used by the next button. * Save Target File. Save the current bone map as a .trg file. If the Save T-pose option is set, also save a json file defining the T-pose. * FK bones. The bone map. The picture below shows automatic rig identification of the Rigify meta-rig (Add > Armature > Advanced Human). !IMAGE!Pictures/mwt-020-metarig.png!/IMAGE! === MHBlenderTools: MakeWalk troubleshooting. === ==== What if retargeting fails? ==== === Errors and Corrective Actions === This document will describe common errors and corrective actions. It may happen that MakeWalk fails to retarget an animation to a given armature. In that case an error message is displayed. !IMAGE!Pictures/mwa-100-error.png!/IMAGE! The error message consists of the following: Mocap error Category Detailed error message A link to this page MakeWalk errors are grouped into the following categories: * Load Bvh File * Rename And Rescale * Identify Target Rig * Automatic Target Rig * Manual Target Rig * Identify Source Rig * Retarget * General Error Load Bvh File Rename And Rescale Identify Target Rig === Automatic Target Rig === The most common problem is probably that MakeWalk fails to identify the target rig automatically. There are several possible reasons for this: * The character is not oriented correctly. In the rest pose, the character should be standing with up being the positive Z axis and facing -Y. * The armature is complex with extra bones not corresponding to a standard biped rig. * The armature only has IK arms or legs. MakeWalk retargets animations to the FK limbs, so if no such bones exist, the program will not work. !IMAGE!Pictures/mwa-110-reverse-hip.png!/IMAGE! It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. !IMAGE!Pictures/mwa-120-reversehip.png!/IMAGE! The advantage of such a setup is that the upper and lower body can be posed independently. However, MakeWalk failes to identify the bones, unless the Reverse Hip option has been enabled. If automatic bone identification still fails, bone mapping has to be made manually. How this is done is described in the next section. === Defining the Target Rig Manually === Internally, MakeWalk retargets animations to an armature with the following bone hierarchy. Here is a visual illustration of the bone hierarchy: !IMAGE!Pictures/mwa-010-armature.png!/IMAGE! In order to retarget to an armature with different bone names, we must define a map between the given bones and the internal names. By default, MakeWalk attempts to do this automatically. However, automatic bone mapping may easily be confused for non-trivial rigs. If this happens, one can define the bone map manually. A bone map for a target armature is defined by a .trg file located in the target_rigs folder under the makewalk directory. The folder already contains three files, for retargeting the MHX advanced rig, the MakeHuman, and Rigify. These rigs are too complicated to identify the bone map automatically, so MakeWalk recognizes these rigs and use the predefined bone map. Create a .trg file using an existing file as a template. E.g., a .trg file could look like this: Note that it is not necessary to define maps to all bones. Bone names must not contain spaces, since whitespace is used as a delimiter in the .trg file. If the bones in your armature do contain spaces, replace them by underscore ( _ ). MakeWalk treats space and underscore as equivalent, so this is not a problem, except for very strange naming convention. !IMAGE!Pictures/mwa-020-myrig.png!/IMAGE! Save the .trg file with the name my_rig.trg in the target_rigs folder and press the Reinit Target Panel button. My_Rig should now appear in the Target rig list. Select it. In the FK bones sections, the My_Rig bone names are now listed. Make sure that the Auto Target Rig option is deselected, to override automatic bone mapping. Finally go to the main panel and press Load And Retarget. The animation should now be loaded. === MHBlenderTools: MakeWalk utilities === ==== Utilities panel ==== This panel contains material that does not naturally fit into the other panels. !IMAGE!Pictures/mwu-010-panel.png!/IMAGE! === Default Settings === * Save Defaults: Save current settings as the default settings. * Load Defaults: Load the default settings from file. === Manage Actions === * Actions: A list of all actions in the scene, at the time when the Update Action List button was last pressed. * Filter: If selected, only actions belonging to the active character are included in the action list. When the mocap tool creates an action, the first four letters in the action name are taken from the rig name. * Update Action List: * Set Current Action: Set the action selected in the Actions list as the active action. * Delete Action: Permanently delete the action selected in the Actions list. The action must have zero users. It is quite cumbersome to permanently delete actions in Blender. The reason is that creating an action with hand animation takes much work, which should not be lost accidentally. The situation is different with mocap, where it is easy to fill up a blend file with many irrelevant actions. This button makes it easier to clean out such junk motions. * Delete Temporary Actions: Some tools create temporary actions, whose names start with a hash sign (#). Deletes all such actions. === Temporary properties === * Delete Temporary Properties. MakeWalk creates some properties for relevant posebones during retargeting. Pressing this button removes these properties. However, be aware that some of the tools in the Edit panel may fail if the temporrary properties are deleted. The temporary properties for the active posebone can be inspected in the N-panel. !IMAGE!Pictures/mwu-030-temp-props.png!/IMAGE! * McpBone: The name of this bone in the internal hierarchy. * McpParent: The parent of this bone in the internal hierarchy. * McpQuatW, McpQuatX, McpQuatY, McpQuatZ: The rotation of this bone in T-pose, represented as a quaternion. === T-pose === * Set T-pose: Set the current pose to T-pose. * Clear T-pose: Set the current pose to the default pose. * Load T-pose: Load a T-pose from a .json file to the active armature. * Save T-pose: Save the current pose as a .json file. === Rest Pose === * Current Pose => Rest Pose: Set the current pose to rest pose. === MHBlenderTools: MHX importer basic usage. === MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. Due to its tight integration with Blender's python API, it supports advanced features like constraints, drivers and properties that general-purpose formats like Collada or FBX do not support. ==== Export From MakeHuman ==== !IMAGE!Pictures/mx010-export.png!/IMAGE! After the character has been designed in MakeHuman, go to the Files > Export tab and select Blender exchange (mhx) as the Mesh format. Type the character's name in the box at the top and press export. An mhx file has been exported. ==== Import Into Blender ==== Once the mhx importer has been enabled, we can import the mhx file. Select File > Import > MakeHuman (.mhx). !IMAGE!Pictures/mx070-import.png!/IMAGE! In the file selector, navigate to the file that we just exported from MakeHuman, i.e. John Doe.mhx in the export directory. After a short while, the character appears in the viewport, ready for posing. !IMAGE!Pictures/mx080-import.png!/IMAGE! === MHBlenderTools: MHX default rigging === If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .MHX format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. The bones are grouped into bone layers. Bone layers can be turn on and off in the MHX Main panel that appears in the user interface pane (N-pane), which is found to the right of the viewport. N-pane visibility can be toggled on and off with N-key. The Root Layer !IMAGE!Pictures/mx210-root.png!/IMAGE! There are two bones on the Root layer: * master: the big bone located at the foot level. It is the ultimate parent of every other bone in the rig, and can be used to move the entire character, including ik effectors. * root: the wiggly bone located at the character's center of mass. It also moves the entire character, but IK effectors remain at a fix position. The Spine Layer !IMAGE!Pictures/mx220-spine.png!/IMAGE! The spine is an immedate child of the root bone. * spine: * spine-1: * chest: * chest-1 * neck * head On this layer the two clavicle bones are also found. They are children of chest-1 and also appear on the arm layers. The Head Layer !IMAGE!Pictures/mx230-head.png!/IMAGE! This layers contains the bones of the head (not the Neck and Head bones, however). * jaw: Jaw bone * tongue_base: Inner part of tongue. * tongue_mid: Middle part of tongue. * tongue_tip: Outer part of tongue. * eye.L: Left eye. * uplid.L: Left upper eyelid. * lolid.L: Left lower eyelid. * eye.R: Right eye. * uplid.R: Right upper eyelid. * lolid.R: Right lower eyelid. * gaze. Target that the left and right eyes are tracking. The FK Arm Layers !IMAGE!Pictures/mx240-fkarm.png!/IMAGE! The left forward kinematics (FK) arm layer consists of: * clavicle.L: Left clavicle. * deltoid.L Left deltoid muscle. * upper_arm.fk.L: Left FK upper arm (humerus). * forearm.fk.L: Left FK forearm. Y rotation is locked on this bone. To twist the forearm, rotate the hand bone instead. * hand.fk.L: Left FK hand. The bones on the right FK arm layer are analogous. Note that there are two shoulder bones: clavicle and deltoid. It is not trivial to pose the shoulder, and with two shoulder bones better deformation is possible. The drawback is that an additional bone must be posed. However, in the common case that the arm is well below shoulder level, the deltoid bone can often be ignored. The FK Leg Layers !IMAGE!Pictures/mx250-fkleg.png!/IMAGE! The left FK leg layer consists of: * thigh.fk.L: Left FK thigh. * shin.fk.L: Left FK shin. * foot.fk.L: Left FK foot. * toe.fk.L: Left FK toes. THe right FK layer is analogous. The Finger Layers !IMAGE!Pictures/mx260-fingers.png!/IMAGE! The long fingers on the Finger layers give a quick way to pose the fingers; the poses can be fine-tuned with the individual finger links on the Links layer. The bones on the left Finger layer are: * thumb.L: Left long thumb. * index.L: Left long index finger. * middle.L: Left long middle finger. * ring.L: Left long ring finger. * pinky.L: Left long pinky. The bones on the right Finger layer are analogous. Rotating a long finger around the local X will cause all finger links to curl (rotate around local X). Rotation around local Z only affects the first finger link. The Finger Link Layers !IMAGE!Pictures/mx270-links.png!/IMAGE! Each of the Finger Links layers contains fourteen bones; two for the thumb and three for each other finger. They are used to fine-tune the finger pose, once a rough pose is achieved with the long finger bones. The Palm Layers !IMAGE!Pictures/mx280-palm.png!/IMAGE! The left Palm layer contain the meta-carpal bones: * thumb.01.L: Parent of the left thumb bones. * palm_index.L: Parent of the left index finger bones. * palm_middle.L: Parent of the left middle finger bones. * palm_ring.L: Parent of the left ring finger bones. * palm_pinky.L: Parent of the left pinky bones. The bones on the right Palm layer are analogous. The IK Arm Layers !IMAGE!Pictures/mx300-ikarm.png!/IMAGE! The arms are controlled by FK by default, but inverse kinematics (IK) can also be used. To quickly switch between FK and IK, press the buttons labelled FK or IK in the MHX FK/IK Switch panel, which appears in the N-panel if an MHX armature is the active object. * clavicle.L: Left clavicle. Same bone as on FK layer. * deltoid.L: Left deltoid. Same bone as on FK layer. * hand.ik.L: Left hand IK effector. Positions and rotates the hand. Also controls forearm twist. * elbow.pt.ik.L: Left elbow pole target. Controls the location of the elbow, which lies in the plane spanned by the arm socket (head of upper arm), wrist (tail of forearm), and elbow pole target. * elbow.link.L: A rubberband that connects the elbow to the elbow pole target. This bone is merely a visual cue; has no effect and can not be selected. The bones on the right IK arm layer are analogous. The IK Leg Layers !IMAGE!Pictures/mx310-ikleg.png!/IMAGE! The legs are controlled by FK by default, but IK can also be used. To quickly switch between FK and IK, press the buttons labelled FK or IK in the MHX FK/IK Switch panel, which appears in the N-panel if an MHX armature is the active object. * foot.ik.L: Left hand IK effector. Positions and rotates the hand. * toe.rev..L: Left reverse toe. * foot.rev.L: Left reverse foot. * knee.pt.ik.L: Left knee pole target. Controls the location of the knee, which lies in the plane spanned by the leg socket (head of thigh), ankle (tail of shin), and knee pole target. * knee.link.L: A rubberband that connects the knee to the knee pole target. This bone is merely a visual cue; has no effect and can not be selected. * shin.ik.L: The foot bones and the pole target control the thigh and shin rotation, except for the twist (local Y rotation) of the shin, which is handle by this bone instead. The IK shin bone does not affect the bending of the shin, only the twisting. The bones on the right IK leg layer are analogous. !IMAGE!Pictures/mx320-revfoot2.png!/IMAGE! The IK leg has an reverse foot setup, which allows the foot to rotate around the toe, ball, and heel. * foot.ik.L: Rotate around heel. * toe.rev.L: Rotate around toe tip. * foot.rev.L: Rotate around ball. FK-IK Snapping In a rig with both FK and IK, it is useful to be able to switch between the two seamlessly. To this end, the MHX FK/IK Switch panel contains buttons to snap the IK to FK and vice versa, in such a way that the character's pose remains unchanged. !IMAGE!Pictures/mx330-fkik2.png!/IMAGE! To snap the IK bones to the FK pose, press the buttons * Snap L IK Arm * Snap R IK Arm * Snap L IK Leg * Snap R IK Leg respectively. Note that the FK buttons at the top of the panel change to IK. !IMAGE!Pictures/mx340-ikfk2.png!/IMAGE! To snap the FK bones to the IK pose, press the buttons * Snap L FK Arm * Snap R FK Arm * Snap L FK Leg * Snap R FK Leg respectively. Note that the IK buttons at the top of the panel change to FK. The Tweak layer !IMAGE!Pictures/mx360-tweak2.png!/IMAGE! This layer contains some rarely used bone that in some cases are useful to tweak a pose. * breast.L: Controls rotation of left breast. Useful mainly for female characters. * arm.socket.L: The left arm socket. Allows the left upper arm (FK and IK) to be moved away from the deltoid bone. * leg.socket.L: The left leg socket. Allows the left thigh (FK and IK) to be moved away from the hip. The right-side bones (with suffix .R) are defined analogously. !IMAGE!Pictures/mx370-markers2.png!/IMAGE! The Tweak layer also contains marker bones. They are used by MakeWalk to determine the location of the toe, ball and heel, so they can be moved up above floor level. Move these bones in Edit mode to fine-tune their locatation. The marker bones on the left side are: * toe.marker.L: Left toe marker. * ball.marker.L: Left ball marker. * heel.marker.L: Left heel marker. The marker bones on the right side are analogous. The MHX Control Panel The default behaviour of the MHX rig can be modified by changing some properties in this panel. !IMAGE!Pictures/mx410-gaze2.png!/IMAGE! * GazeFollowsHead: If 1.0, the gaze bone is parented to the head. If 0.0, the gaze bone remains fixed in space (it is parented to the master bone). * RotationLimits: If 0.0, all Limit Rotation constraint is ignored. If 1.0, they are honored. Default = 0.8. !IMAGE!Pictures/mx420-hinge2.png!/IMAGE! * ArmHinge, Left and Right: Determines whether the arm rotates when the shoulder does. * FingerControl, Left and Right: Determines whether the finger links are parented by the long fingers (the default), or if the long fingers are to be ignored. !IMAGE!Pictures/mx430-leghinge2.png!/IMAGE! * LegHinge, Left and Right: Determines whether the leg rotates when the hip does. !IMAGE!Pictures/mx440-legik2ankle2.png!/IMAGE! * LegIkToAnkle, Left and Right: If turned on, the reverse foot setup is disabled, and the ankle bones on the Extra layers become the effectors for the IK legs. === MHBlenderTools: MHX other rigging systems === By default (i.e., if Pose/Animate > Skeleton is set to 'None') a character is exported as an mhx file is rigged with the MHX rig, which is a rather complex rig with many options. Alternatively, the character can be rigged with a simpler and ligher armature by choosing an alternate Rig Preset under Pose/Animate > Skeleton. !IMAGE!Pictures/mx710-other-rig2.png!/IMAGE! To this end, select one of the rigs in the Pose/Animate > Skeleton tab. A skeleton is drawn. Export the character from MakeHuman as an mhx file. To reselect the default mhx rig, press None in the Pose/Animate > Skeleton tab. !IMAGE!Pictures/mx720-other-blender2.png!/IMAGE! Import the mhx file into Blender. Note that there are fewer bone layers available in the MHX Main panel. ==== Using the Rigify rig ==== As an alternative to the mhx rig, MakeHuman characters can also be rigged with the popular Rigify add-on by Nathan Vegdahl. Links to documentation about Rigify in general: !LINK!http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Rigging/Rigify -- Official Rigify documentation!/LINK! !LINK!http://blenderartists.org/forum/showthread.php?200371-Rigify-Auto-rigging-system-new-and-improved -- Blenderartist thread!/LINK! !IMAGE!Pictures/mx810-rigify-export2.png!/IMAGE! To use Rigify, the character must first be prepared in MakeHuman. Select the Export for Rigify checkbox in the Options group and export the file. This checkbox overrides any other rig selected under the Skeleton tab. !IMAGE!Pictures/mx820-rigify-enable2.png!/IMAGE! In Blender, enable the Rigify add-on. It is found in the Rigging category. Press Save User Settings to remember the choice. !IMAGE!Pictures/mx830-rigified2.png!/IMAGE! Import the mhx file as usual. John Doe is now rigged with Rigify and ready for use. !IMAGE!Pictures/mx840-norigify2.png!/IMAGE! If the Rigify add-on is not enabled, an intermediate rig is imported and an error message appears. If this happens, open a new Blender file, enable Rigify, and try again. Alternatively, you may select the armature and press the Rigify MHX Rig button that appears in the N-panel (after you have enabled the Rigify add-on, of course). Disclaimer: MakeHuman has no control of the Rigify add-on. Rigify support was tested with Blender 2.69. If the specification of Rigify changes in the future, mhx file exported for Rigify may cease to work. === MHBlenderTools: MHX Layers and masks === The mhx importer creates objects on the first four layers. !IMAGE!Pictures/mx900-layers2.png!/IMAGE! * * This layer contains the body, including hair, eyes, etc. * This layer contains the armature. * This layer contains any clothes. Empty if the character is nude. * This layer contains any proxy meshes. Empty if no proxy mesh was exported. Note that a proxy mesh does not replace the original human mesh, but is added as a separate object. If you only want to use the proxy mesh, the body can be deleted. However, the proxy mesh (perhaps slightly edited) has several uses apart from simply replacing the body, e.g. as a deflection surface for cloth simulation, or to speed up viewport performance when animating. It is therefore up to the user to decide which meshes to delete. !IMAGE!Pictures/mx920-unmasked2.png!/IMAGE! Vertices beneath clothes are hidden, to avoid ugly penetration issues. The picture above illustrates what may happen if skin under clothes is not hidden. !IMAGE!Pictures/mx910-mask2.png!/IMAGE! However, skin beneath clothes is not removed, only hidden by masks. This becomes evident if in edit mode, where the entire body is visible. To undress the character, deselect the clothes layer (layer 3), and disable all mask modifiers. Don't forget to disable the mask modifier for rendering as well. With the mask modifiers, it is possible to export a character from MakeHuman with several different outfits, and select the outfit and hidden body vertices in Blender. If you wish to delete the hidden vertices permanently, e.g. to improve performance or for export to some other application, apply the relevant mask modifiers. === MHBlenderTools: MakeClothes rigid fitting === The standard clothes fitting algorithm is suitable for flexible clothes, especially clothes that follow the body closely. However, is does not work well for rigid objects like shoes, Therefore, MakeClothes has a variant suitable for rigid shoes. Rigid fitting is used on a vertex group basis, so rigid and flexible fitting can be mixed in the same piece of clothing. Rigid fitting is used for every vertex group whose name starts with a '*'. Each such vertex group in the human must contain exactly three vertices, that determine the triangle used for fitting in this group. !IMAGE!Pictures/rf-100-orig.png!/IMAGE! The use of rigid vertex groups is best explained by an example. Consider a pair of shoes, which is a rigid object. We used the standard MakeClothes settings and an adult human with the original shoe to the left. Then the mhclo file was loaded onto a baby, with the result to the right. The shoe is recognizable but it has been deformed in an undesirable way. However, even though the quality of the fitting is poor, make sure to save the mhclo file, because we will need it at the end of this tutorial. !IMAGE!Pictures/rf-110-projection.png!/IMAGE! Each clothing vertex v is associated with a triangle t in the human mesh, i.e. three human vertices v1, v2, v3. Letrdenote the location of v andr1,r2,r3the locations of the corners of the triangle. Further, let d be the perpendicular distance from the clothes vertex to the plane spanned by the triangle. MakeClothes assigns three weights w1, w2, w3, such that r= w1r1+ w2r2+ w3r3+d, where the sum of weights w1+ w2+ w3= 1. When the clothing is loaded onto a different character, the new location becomes r'= w1r'1+ w2r'2+ w3r'3+d', wherer'1,r'2,r'3are the locations of the three human vertices in the new character, and d' = Sd= (sxdx, sydy, szdz) is obtained from the original offsetdby inhomogeneous global scaling with the diagonal scale matrix S = diag(sx, sy, sz). The important observation is that the quality of the fitting depends crucially on the chosen triangle, i.e. the triple of human vertices the determines the clothes vertex location. The standard choice is to choose the human triangle closest to to clothing vertex. In rigid fitting the triangle is the same for all vertices, and is defined by the tree vertices in the vertex group. !IMAGE!Pictures/rf-120-vgroups.png!/IMAGE! Here we see the vertex groups used to fit the left shoe. The standard vertex group Left consists of all vertices close to the left shoe, in the tights helper. On the other hand, the rigid vertex group *Left only contains three vertices that define the single triangle used for all clothes vertices in this group. !IMAGE!Pictures/rf-130-triangles.png!/IMAGE! The next illustration shows the corresponding triangles used for fitting. The Left group uses many triangles obtained by triangulating the corresponding faces. Different shoe vertices are associated with triangles that are transformed differently, and the rigid character of the shoe is lost. The *Left group only has one single triangle, with corners at the three vertices in the vertex group. The same triangle is used by all left shoe vertices. !IMAGE!Pictures/rf-140-rename-vgroups.png!/IMAGE! Once the human vertex groups have been defined, we proceed with clothes-making. Rename the shoe vertex groups to *Left and *Right, to make the shoes use rigid fitting. Recall that the human can have several overlapping vertex groups, but in a piece of clothing each vertex must belong to exactly one group. !IMAGE!Pictures/rf-150-offset-scaling.png!/IMAGE! Next we open the Offset Scaling section and select Foot as the body part. In flexible fitting, the offsets are usually very small, and selecting the correct body part is not so important. In contrast, this step is very important in rigid fitting, because many vertices are far away from their triangles and the offsets must be scaled correctly. Press Examing Boundary for a visual inspection of which vertices define the global scale matrix.. !IMAGE!Pictures/rf-160-baby-shoes.png!/IMAGE! This picture shows the shoe loaded on a baby, using flexible fitting (blue) and rigid fitting (red). Rigid fitting clearly maintains the shape of the shoe much better. However, one problem remains: bone weighting. Start up MakeHuman and load the shoes under the Geometries > Clothes tab. Export the character with a rig in one of the formats that allows that, e.g. mhx, and import the character into Blender. Now try to pose the feet. As we see in the picture below, the shoe does not follow the foot but is squashed or stretched in strange ways. !IMAGE!Pictures/rf-170-bad-deformation.png!/IMAGE! The reason is that rigid fitting affects the bone weights as well as the vertex locations. The bone weights are interpolated between the three corners of the triangle, rather than using the information from the entire foot. To correct this we need to use two different associations between clothes and human vertices: rigid fitting for vertex locations, but flexible fitting for bone weights. Fortunately, MakeHuman can handle this situation, although there is currently no elegant interface for it in MakeClothes. In a text editor, open the mhclo file obtained by standard fitting in the beginning of this tutotial (this is why you needed to save it), and copy everything after the line verts 0 to the end of the new mhclo file obtained by rigid fitting. Before the copied section, insert the line weighting_verts Export the shoes again from MakeHuman and import into Blender. The shoes should now both maintain their rigid shape and deform correctly. !IMAGE!Pictures/rf-190-good-deformation.png!/IMAGE! Due to an unfortunate behavior in MakeHuman, it is possible that the updated mhclo file is not loaded after it has replaced the old one. This is because MakeHuman automatically compiles mhclo and obj files when loaded, so they can be loaded faster next time. Although this behavior is convenient for ordinary users, it is very confusing and frustrating for clothes makers. If MakeHuman insists on loading old versions of your clothes, you may need to delete the compiled files (*.mhpxy and *.npz), or restart MakeHuman, or both. After the compiled files are gone, the updated clothes should load without problems. !IMAGE!Pictures/rf-180-compiled-files.png!/IMAGE! == Developers' note == Some notes about how to obtain the source code, modify it and share it. === Makehuman Plugin System === ==== Plugins ==== Makehuman has a simple plugin framework which makes it easy to add and remove features. At startup, MakeHuman now looks for .py files in the plugins folder which are not starting with an underscore (which makes it easier to disable unwanted plugins). It loads them one by one and calls the load entry point passing a reference to the application. The plugin can use this reference to add the necessary GUI widgets or code to the application. The rules for plugins are very simple: * A plugin is a .py file in the plugins folder with a load entry point. * A plugin only imports core files. The reason a plugin cannot import other plugins is that it would make it difficult to know which files belong to which plugin. We still need to define a convention for shared files beyond the core MakeHuman files. To get started look at example.py or any of the other plugins to see how you can create your own feature in MakeHuman. ==== GUI ==== The main layout is a two level tab control. The tabs at the top represent categories, like files. modelling, geometries, materials, etc. The ones at the bottom are the tasks in the current category and refine the more broad category in face, torso, gender, saving, loading, exporting etc. So when creating your plugin, the first thought should be “In which category does it belong?”. From experience we know that it can be a though question to answer. Sometimes the only answer is adding a new category. This is what we initially did for measurement for example Next you probably want your own task to implement your feature. While it’s possible to attach functionality to an instance of gui3d.Task, it’s often easier to derive your own class. When you create an instance of your class, you pass the parent of your task, which can either be an existing category or the new one which you added. In your derived task you will then add the necessary controls to let the user interact. A good place to see how to use the different controls is the example plugin. You will see that even if you don’t add any controls, the model is already visible. This is because the model is attached to the root of the GUI tree. In the onShow event of your task you might want to reset the camera position, like we do in the save task, or hide the model, like we do in the load task. Just don’t forget to reset the state when your task gets hidden in onHide. ==== Undo-redo ==== It is important that every modification is undoable, since just one undo able modification would leave the user without the possibility to undo anything. So it’s crucial that if you write a plugin which modifies the model, you also make undo work. The Application class has several methods to work with actions. An action is a class with two methods, do and undo. If the action itself does the modification you can use app.do to add it to the undo stack. If you did the modification yourself already during user interaction, you can add the action using app.did. The application won’t call the do method of the action in that case. If you want to make your own undoredo buttons, you can use app.undo and app.redo. To illustrate, here is the action we use to change the hair color: The postAction is a handy way to specify a method to keep your GUI in sync with the changes. ==== Asynchronous Calls and Animation ==== When doing lengthy operations it is important not to block the GUI from redrawing. Since everything runs in one thread, it is easy to block the event loop in your plugin. There are 4 ways to avoid this, depending on the need. If no user interaction is needed, a progressbar can be used. A progressbar uses the redrawNow() method of the application. This redraws the screen outside the event loop. Instead of creating your own progressbar, it is advised to use the progress method, which uses the global progressbar. Calling progress with a value greater than zero shows the progressbar, a value of zero hides it. If user interaction is desired during the operation, either asynchronous calls, a timer or a thread can be used. Asynchronous calls are used when a lengthy operation can be split in several units. It is used for example in the startup procedure as well as for the plugin loading loop. The mh.callAsync(method) queues the calling of method in the event loop, so it will be called when the event gets processed. In case different methods need to be called after each other, as in the startup procedure, callAsync is used to call the next method. In case of the plugin loading loop, it calls the same method until it is done. This is not to be used for animations, as it takes very little time between calling callAsync and the event loop calling the method. Calling time.sleep(dt) to avoid this should not be done as it blocks the main thread. For animations use timers instead. An example of this can be found in the BvhPlayer plugin. The method mh.addTimer(interval, method) adds a timer which calls the given method every interval milliseconds. It returns a value to be used by removeTimer to stop the timer. If a lengthy operation includes blocking on sockets or pipes, it is advised to use a python thread. However this has been shown to be problematic on Linux. To get around the problems on linux you should not access any makehuman structures from within your thread, but use mh.callAsync to call the methods from the main thread. See the clock plugin example for example code on how to use threads correctly. ==== A template for plugins ==== Looking in the makehuman source folder, in the "plugin" directory, you will notice a file called "7_example.py". This is an "Hello world" plugin. It includes all main controls and some nice example of mesh manipulation. It's designed to be used as template of new plugin. To see how it works, you need to enable it in the Preferences->Setting. Then it will be located at Utilities-->Example. !IMAGE!Pictures/UtilitiesExampleTab3.png!/IMAGE! ==== Example Controls ==== !IMAGE!Pictures/UtilitiesExampleControls.png!/IMAGE! === OpenGL Notes === Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. OpenGL is a 3D graphics library that enables a 3D world to be defined, with a camera, objects, lights, textures etc. It then enables that 3D world to be visualised as a 2D representation that can be displayed on a computer screen and provides functions to enable an application (in response to user input) to navigate around the scene. ==== Basics ==== OpenGL takes a 3D scene and draws it into a 2D viewing area on your screen known as the viewport. OpenGL can project the scene onto the viewport in a variety of different ways, but the most common are: * Perspective projection, as you would get if you could place a camera in the scene * Orthographic projection, as a draftsman may contstruct technical drawings such as plans and elevations. MakeHuman only uses Perspective projection. ==== Projection Transformation ==== You tell OpenGL how to project 3D objects onto the 2D viewport by defining a projection transformation, which indicates whether you wish to use perspective or orthographic projection (or an alternative projection pattern) and specifies other projection settings. This can be imagined as being comparable to specifying the characteristics of a camera (field of view, aspect ratio etc.) where an orthographic projection is equivalent to a camera at an infinite distance. The main difference being that with OpenGL you can change the settings between drawing different objects, which is a bit like taking a photo, changing the lens and moving the camera, then taking another photo without winding the film on. MakeHuman sets a perspective projection using the function gluPerspective(fovAngle,aspectRatio,near,far) where: * fovAngle: is the vertical field of view angle (45 degrees) * aspectRatio: is the viewport width divided by the viewport height which, by default, is 800/600 (4/3) * near: is the distance to the centre of the viewing plane (0.1) * far: is the distance to the centre of the rear clippling plane (100) ==== Modelview Transformation ==== For OpenGL to know what to display in the viewport it also needs to know where the camera is relative to the 3D model. For this you need to define a modelview which defines the position and orientation of the camera and the position and orientation of objects that go to make up the model inside a virtual 3D world. You do this by moving through and around the 3D world and by creating objects relative to your current position. OpenGL keeps track of your current position and orientation in the 3D world by recording the modelview transformation. Both the projection transformation and the modelview transformation are stored internally in 4x4 transformation matrices. You can modify these matrices by calling functions that apply direct transformations (translations and rotations) or by calling functions that calculate transformations (e.g. the gluPerspective function outlined above). To apply transformations you need to first make one of these matrices the current matrix. Subsequent transformations are applied cumulatively to the current matrix. The glMatrixMode function is used to set the current matrix mode: * glMatrixMode(GL_PROJECTION) makes the projection transformation the current matrix so that projection settings can be applied, such as the field of View angle and Aspect Ratio. * glMatrixMode(GL_MODELVIEW) makes the modelview transformation matrix the current matrix so that subsequent translations and rotations move the current location through the 3D world. ==== Resetting a transformation matrix ==== Matrix transformations that you apply are applied cumulatively. It is therefore often necessary to reset the matrix to its default ‘no transformation’ state so that you can apply a fresh set of transformations. OpenGL uses the transformation and modelview matrices to transform coordinates by performing a matrix multiplication. If you multiply by an identity matrix then the result is the same as the thing you started with, so to reset one of these matrices to an initial state where the transformation has no effect you can simply load the identity matrix using the function glLoadIdentity(). This loads the identity matrix into whichever transformation matrix is currently active, resetting it to the default ‘no transformation’ state. ==== Coordinates ==== OpenGL world space coordinates are unitless, so 2 units can represent milimeters, inches or light years. Interpretation of world space coordinates is up to the application. OpenGL uses a right handed coordinate system, so, if you are looking at the origin with the +X axis stretching away to the right and the +Y axis pointing straight up, the +Z axis will be heading out of the screen straight towards you and the -Z axis will be dissapearing away from you into the distance. MakeHuman uses the default OpenGL modelview camera settings which are equivalent to invoking gluLookAt(0,0,0, 0,0,-1, 0,1,0). This places the camera at the origin, looking straight into the model along the -Z axis with the +Y axis pointing straight up. This means that a 2 unit wide and 2 unit high object centred at <0,0,-1> will roughly fill the viewport, as will a 4x4 object at twice the distance from the viewpoint. ==== Drawing objects ==== MakeHuman contains multiple objects. The Humanoid object is the main object, but it is surrounded by a set of control objects. Each object is constructed using triangular faces. The position and orientation of each face is defined relative to the object of which it is a part. The positions and orientations of the vertices and normals of the faces are defined relative to the face they’re on. The sequence in which face vertices are defined is significant in OpenGL. If the face is viewed from the front, the sequence of points runs counter clockwise. If the face is viewed from the back the points run clockwise. Faces viewed from behind may be invisible or may have a different color/texture defined to the front face. This order is also called the "winding order" of vertices, and is used by MakeHuman to calculate the normal of each face. If the winding order is reversed, the normal will be flipped. The glPushMatrix and glPopMatrix functions can be used to store away a copy of a matrix that can subsequently restored. MakeHuman uses this before and after drawing each object to store a copy of the modelview matrix and restore it. === Directory structure and core modules === Overview There are 10 main source folders with the main MakeHuman folder in the SVN repository: * apps * core * data * docs * icons * lib * licences * plugin * shared Of these, two folders: (licenses and docs) are associated with the general housekeeping and installation aspects of MakeHuman. Details of the housekeeping folders will be summarized, where relevant, elsewhere in the documentation. The remaining folder are discussed below. Directory Structure and the Build System During the pyinstaller build process, only files in the makehuman/data/ directory are included as data files, which means that any other data files will be skipped, causing file not found errors. Thus, the developer should place all data files under the data/ folder. The idea is to be able to cleanly identify what is data to be loaded at run time.and what is code that can be compiled at build time. One exception here is target (data) files that can optionally be precompiled to binary files at build time even though their binaries will reside in the data/ directory. The rational for this is that target files are static data core assets and should therefore naturally reside in makehuman/data/, but by compiling target files at build time, the size of the build distribution can be reduced and program startup times can be minimized The files in makehuman/plugins/ form a second exception to data is "loaded at runtime" and code is "comiled at build time". Files in the makehuman/plugins/ folder are kept as a "side effect" of the fact that the makehuman/plugins/ path is included as data. It is included as data to make it possible to load plugins at runtime by inspecting the folder. Plugins are compiled as well, though. This does not mean that data may be stored in makehuman/plugins/ as this practice threatens logical organization of code and data, and it is not guaranteed that this will keep working in the future. Plugins should never be used as imported modules in other plugins or, even worse, in a core module. Currently, the core plugins of MakeHuman all start with a digit (e.g., import 9_export_mhx). This is done intentionally to prevent their improper import into other modules in the program because imports of a module starting with a digit will produce a syntax error. Core plugins that require data, for example those related to .mhx export, should make use of a subfolder in the makehuman/data/ path (makehuman/data/mhx/). Third-party plugins might have slightly greater lattitude about including data than core assets, but the clean separation of code and data is strongly encouraged. Therefore, third-party plugin developers should place data in makehuman/plugins/pluginName/data to make it easily identifiable. makehuman/data/ folder Most operating systems set aside separate storage space for code and data, and programs can generally not write data to their own directory structure. In addition, most OS support the notion of multiuser login, and support separate writable data areas for each user to customize. MakeHuman includes some "fixed data assets" that are intrinsic to the program. These data assets are save in the programs data folder within the program itself. However, MakeHuman also makes provision for third-party and user developed assets like additional clothes, additional hairstyles, etc. These latter assets are not saved in the program area but rather are save in user writable areas under the path userhome/makehuman/. For example, on Windows 7 systems this would be "Docuements/makehuman". In populating asset lists, the library holdings are generated based on the fact that syspath/data/itemtype and userhome/data/itemtype can coexist. Themakehuman/data/ folderdoes not contain any codeper se. As its name implies this folder contains the basic data resources that ship with MakeHuman. Often, during the development and building of MakeHuman, a given resource may exist in multiple formats. Many if not most resources initially exist as “text-based” files which are stored in the data directory with an appropriate extension (see section of file extensions). When MakeHuman is built for distribution on supported platforms, these text-based data resources are compressed into .npy format to produce a smaller and more rapidly loading distribution package. Typically, the original text-based data files do not ship with standard, downloadable installation builds but instead, the corresponding compressed versions are distributed. The data folder contains many subfolders which correspond to unique data assets. The details of these assets will not be discussed here, but the reader can get a general idea of asset types just by reviewing the folder names. 3dobjs, animations, bvhs, expressions, eyebrows, eyes, genitals, hair, icons, languages, litspheres, materials, mhx, poses, povray, proxymeshes, rigs, scenes, shaders, skins, targets, textures, themes, uvs, vertesgroups, visemes. Many of these data subfolders have subfolders themselves, but generally, this organization is easily discovered just by looking. Four of the data subfolders (eyes, hair, and clothes) are directed at important geometry assets of the MakeHuman model. MakeHuman supplies a special tool that lets developers or even end-users design additional assets using the 3D modeling program Blender. The name for this tool isMakeClotheseven though it supports the development of the other geometries as well. ==== /makehuman/apps/ ==== * catmull_clark_subdivision.py- an implementation of the!LINK!http://en.wikipedia.org/wiki/Catmull%E2%80%93Clark_subdivision_surface -- catmull clark subdivision algorithm.!/LINK! * devtests.py- testing and development use only, and can safely be ignored. * human.py- contains the Human class, which is the core data structure for MakeHuman model. * humanmodifier.py- contains the functions and classes that link the GUI sliders to their respective effects on the MakeHuman mesh. * metadataengine.py- implements algorithms to handle MakeHuman metadata tags within large files. It makes it possible to quickly and easily associate descriptive adjectives (tags) such as "eye" or "brown" with the complete file path to an object that has these characteristics. * mh2proxy.py- (unknown) * posemode.py- contains classes and functions relevant to entering and exiting posemode, and altering a figure's pose. Changing the pose of a figure will deform the mesh and require the vertex warps to be reset. * warpmodifier.py- contains classes and functions to handle the source and target of a warp. * which.py- checks to see whether or not a program exists (needed for the GUI controls). ==== /makehuman/core/ ==== * algos3d.py- contains algorithms used to perform high-level 3D transformations on the 3D mesh that is used to represent the human figure in the MakeHuman application. * aljabr.py- contains the most common 3D algebraic operations used in MakeHuman including vector, matrix, quaternion, and various other operations. * animation3d.py- contains functions and classes to animate a wide range of objects. Includes support for rotation, scaling, translation, camera movement, and variety of interpolation methods. * compat.py- (Unknown) * download.py- contains classes and functions to download media from the web and import it into MakeHuman. * events3d.py- contains classes to allow an object to handle events resulting from keyboard or mouse input, window resizing, and changes to the human model with MakeHuman. * export.py- (Not fully implemented) contains classes to export the MakeHuman model. * files3d.py- contains functions to convert other 3D file formats to and from the internal format used by MakeHuman. * geometry3d.py- contains classes for commonly used 2D and 3d objects such as rectangles, cubes, and flat meshes. * gui3d.py- contains classes defined to implement widgets that provide utility functions to the graphical user interface. * mhmain.py- contains the operations and event handlers that provide the core functionality of MakeHuman. * module3d.py- contains classes and functions to handle the appearance and behavior of 3D objects such as shading, texturing, visibility, transparency, and creating groups of faces. * selection3d.py- contains classes and functions that allow users to select elements within a 3D scene by clicking on them with the mouse using a technique called "!LINK!http://www.opengl.org/archives/resources/faq/technical/selection.htm -- Selection Using Unique Color ID's!/LINK!" * textures3d.py- contains functions to perform standard proccesses on bitmaps and translate UV coordinates to a pixel index in a bitmap. * transformations.py- A library for calculating 4x4 matrices for translating, rotating, reflecting, scaling, shearing, projecting, orthogonalizing, and superimposing arrays of 3D homogeneous coordinates as well as for converting between rotation matrices, Euler angles, and quaternions. Also includes an Arcball control object and functions to decompose transformation matrices. * warp.py- contains classes and functions to warp vertex locations from a source character to a target character. This makes it possible to correctly combine several morphs that affect overlapping regions of the body. ==== /makehuman/lib/ ==== * camera.py -handles camera events such as changing focus, camera mode, and field of view. * core.py -sets default global variables * debugdump.py -handles creating a debug text file in the user's home directory and writing relevant debug information to that file. * filechooser.py- a Qt based filechooser widget that allows the user to preview and select files as well as sort them by name, creation date, modification date, and size. * getpath.py- Utility module for finding the user's home path. * glmodule.py- contains classes and functions to render 3D objects with openGL in both draw mode and pick mode. * gui.py -alias from gui.py to qtgui.py * image.py- handles flipping and resizing images as well as converting between RGB, ARGB, and greyscale. * imageqt.py- handles loading and saving RGB and ARGB images. * inifile.py- contains functions for formatting and parsing .ini files. * language.py- handles language file loading and translation. * log.py- extends the functionality of Python's logging module. The logging module can be used to create log files of events for debugging, or to display information or warnings within MakeHuman. It is used instead of print statements. * matrix.py- uses the NumPy package to define standard matrix operations. * mh.py- Python compatibility layer that replaces the old C functions of MakeHuman. * object3d.py- defines the object3d class * profiler.py- defines functions to handle profiling (how long various parts of the program executed). === File formats and extensions === This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] Thetargets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found inalgos3d.pymodule (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. Thecompile_models.pymodule (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, thecompile_targets.pymodule (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau inMakeHuman.specfile, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file calledcleanpz.bat(for Windows) and a corresponding shell script file calledcleanpz.sh(for Linux) whose function is to delete NPZ files between SVN builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of SVN versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file namedclear.mhclois is used to restore the default UV map that comes with the system. In the lib folder, thefilechooser.pymodule has aMhcloFileLoader.Refresh()method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,and 3_libraries_polygon_hair_chooser.pyall access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses acage.mhclofile. In the tools folder, the tool ‘MakeClothes’ accessws MHCLO files in both the makeclothes.pyandmaterial.pymodules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py,import_obj.py,mt.py, andsettings.py. Finally, two experimental tools in the utils folder, themakeface.pyandhelpers.pymodules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. === Description of the file format === The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like:colorProperty R G B,where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit like if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. === Libraries and build procedures === With each MakeHuman release, packages are created for MS Windows, Mac OS X, and Debian derivatives for linux. At present there is not an operating system independent package (although the raw repository will work on all platforms). Each platform has special considerations that are addressed by the designated mainainter for that platform. === Dependencies === In order to run makehuman and/or build packages the following need to be installed on the system: * Python (Python 2.7 (python 3.x will not work).!LINK!http://www.python.org/download/ -- http://www.python.org/download/!/LINK!) * Python-numpy (!LINK!http://sourceforge.net/projects/numpy/files/NumPy/ -- http://sourceforge.net/projects/numpy/files/NumPy/!/LINK!) * Python-opengl (!LINK!http://pyopengl.sourceforge.net/ -- http://pyopengl.sourceforge.net/!/LINK!) * Python-qt4 (!LINK!http://www.riverbankcomputing.com/software/pyqt -- http://www.riverbankcomputing.com/software/pyqt!/LINK!) * Python-qt4-gl (Package required by some linux distributions only) For linux there are scripts (buildscripts/deb/install_deb_dependencies.bash and buildscripts/rpm/install_rpm_dependencies.bash) which will install all the necessary dependencies but please note that these scripts may not agree with all debian and rpm based distros so it may be worth reading the bash script contents prior to running them. === Assets === For obvious reasons, the binary assets (characters, textures, clothes, etc..) are not stored on Mercurial repository, but in two different places: * * Immutable single archive files of the assets of finished versions of MH are stored (disregarding patch version token) on bitbucket (!LINK!https://bitbucket.org/MakeHuman/makehuman/downloads -- https://bitbucket.org/MakeHuman/makehuman/downloads!/LINK!) * Assets still under development are store on Tuxfamily ftp:!LINK!http://download.tuxfamily.org/makehuman/assets/ -- http://download.tuxfamily.org/makehuman/assets/!/LINK! When a new version is released, the current ftp asset tree gets zipped and uploaded to bitbucket. In the tuxfamily asset store, the folder for that version's contents are replaced with an archive_url.txt file that points the download script to the right url. A new folder gets created on the tuxfamily host containing the assets to be included in the next release. For a released version, assets will usually not change, unless to fix bugs (in which case the previous archive is best kept, and a new one is created alongside it with a slightly different name), and the archive_url.txt file is updated. To download automatically the assets and place them in the correct folder on a local repository, it's sufficient to run the python script with the command: === Other scripts === In the makehuman root, there are a few scripts which need to be run: * cleannpz.sh (cleannpz.bat) * cleanpyc.sh (cleanpyc.bat) * compile_targets.py * compile_models.py * compile_proxies.py Note that all these are called automatically in the correct order by the "build_prepare.py" script in "buildscripts" when running one of the pre-existing package building routines below. However, when running makehuman from a source checkout, you will need to run these scripts in the above order. === General proceedings for making a package === On all platforms the following steps should be taken when making the package: * Update from HG repository (!LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK!) * Run the scripts in the makehuman root directory. These will for example compile target files to npz files * Copy all that's relevant to a work directory, excluding at least *.target, the utils directory and the tools directory (strictly speaking there are more that is not necessary, but it will have a minor influence) * Do platform-dependent stuff to the work directory * Zip the directory into a suitable installable format for the platform. ==== Linux ==== === Debian === In order for makehuman to work on Debian the following dependencies are needed. * python * python-qt4 * python-numpy * python-opengl * python-qt4-gl These can be installed by running the command below: On Debian/derivatives (Ubuntu kubuntu etc.) the whole package building is automated through the buildDeb.py script found in the "deb" folder. For Deb script see:!LINK!https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=default -- https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=d...!/LINK! To build a deb file, create an empty directory (for example /tmp/deb) and run: When the script has finished, the deb file will be available in /tmp/deb/output.There are some settings in the head of the buildDeb.py script for tweaking the output. === Fedora 19 64-biit RPM Packaging === These instruction have been written for and tested on Fedora 19 64-bit. You will never be able to run the MakeHuman HG version on distros such as RHEL/CentOS 6.4 or earlier, since they do not support python 2.7, not even if you enable RPMForge. The instructions may or may not work on other RPM-based distros. * * Install a Mercurial client (Hg) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- Makehuman BitBucket Repository!/LINK!. * Install required dependencies. As root, run the bash script for installing the required dependencies. buildscripts/rpm/install_rpm_dependencies.bash This script also installs optional but recommended dependencies. If you only want the really required dependencies, run * Run MakeHuman. Change working directory to the root of the makehuman tree: Then run: You will most likely want to do this as your normal desktop user, not as root. ==== Windows ==== * * Install an Mercurial client!LINK!http://tortoisehg.bitbucket.org/download/ -- (Tortoise HG client!/LINK!is a good choice on Windows) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- MakeHuman repository!/LINK!(see!LINK!http://www.makehuman.org/doc/node/development_infrastructure.html -- http://www.makehuman.org/doc/node/development_infrastructure.html!/LINK!) * Install required dependencies If you are using a 64bit Windows version (only applies to 64-bit computers), you can choose to use either 32-bit python or 64-bit python. Howver it is important that your library dependencies (NumPy, PyOpenGL, and pyQT4) are 32-bit if you use 32-bit Python and 64-bit if you use 64-bit Python. * Run MakeHuman. Start a command console (cmd.exe), change directory to the makehuman folder. Then run: ==== Mac OSX ==== To build MakeHuman for Mac OS X, you should: * * Download the MakeHuman OSX Builder from: !LINK!https://bitbucket.org/MakeHuman/makehuman-osx-builder -- https://bitbucket.org/MakeHuman/makehuman-osx-builder!/LINK! * Follow the included instructions (Instructions.rtf) === Development infrastructure === The development of MakeHuman is based on two fundamental tools: * Mercurial (HG), a stable and robust platform for distributed revision control, with the main repo hosted on!LINK!https://bitbucket.org/MakeHuman/makehuman -- Bitbucket!/LINK! * A collaborative software!LINK!http://bugtracker.makehuman.org -- development platform!/LINK!, based on!LINK!http://www.redmine.org/ -- Redmine!/LINK!. ==== Get the code from BitBucket. ==== Obtain the code from BitBucket repository is very simple, but you need to have Mercurial installed on your system. It's natively present on Linux systems, while for Microsoft Windows, a good software is TortoiseHG (!LINK!http://tortoisehg.bitbucket.org/ -- http://tortoisehg.bitbucket.org/!/LINK!). To clone the repository to your PC, just use this command: hg clone!LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK! With tortoiseHG, you can do it visually, with: right-click --> TortoiseHG --> clone ==== Using Redmine in MakeHuman development ==== Redmine is a very powerful tool. [To expand with technical information about the roadmap organizations, the subprojects, and how to use it to accept experimental features] === Development organization === !IMAGE!Pictures/mh-hg-infographic01.png!/IMAGE! The Unstable branch is where the development happens. This is our working branch, and so we can refer to it as default branch too. The Stable branch is used for official release only. It's just for mainteinance of the current official version. It's rarely used, except in the case of very noticeable bugs that will cause a service release. Any bugfix in the Stable must be merged in Unstable. When the Unstable is ready for the release, it's merged in the Stable and a tag (a sort of bookmark) is created on this exact revision. !IMAGE!Pictures/mh-hg-infographic02.png!/IMAGE! Working on experimental clone for new features in early development is a great comfort for the developer. He doesn't have to keep his code on the local drive since he can commit it immediately. It doesn't matter if the code does not work yet or breaks the app, it is the private playground of the developer. !IMAGE!Pictures/mh-hg-infographic03.png!/IMAGE! To start up a new feature yet unproven or that is unsure how to implement it exactly, or for a big refactor that might make a lot of problems until solved, we will create experimental repos, cloning the main one. One repo for (large) feature. !IMAGE!Pictures/mh-hg-infographic04.png!/IMAGE! Once the developer has something to show, he can communicate with other team members so they can: * clone the experimental repo to a new folder on their local disk * test it * give feedback * perhaps even commit fixes Once a feature is proven to work well enough and accepted by the rest of the team, it can be merged in official unstable branch, where it can be integrated in nighly build version and further finalized (it can now be tested by a broader audience and we will receive bugs reports from them) !IMAGE!Pictures/mh-hg-infographic05.png!/IMAGE! It is also possible that an external programmer, without commit rights on the official repo, make changes on his own personal clone (that he can make public on his own account if he desires). This is a good way to test new team members, where we can accept changes after verifying them. When we trust a new developer, we can give him direct access to official repo. === Getting started === The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. In order to procced easily. it is recommended you use the tools available at!LINK!https://bitbucket.org -- https://bitbucket.org!/LINK!. The general procedure is: * Go to!LINK!https://bitbucket.org -- https://bitbucket.org!/LINK!and sign up (if you don't already have an account) * Go to !LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK! * Click "fork" (it's hidden under "..." in the button menu) !IMAGE!Pictures/fork.jpg!/IMAGE! * Enter a name and description of your choice (the fork will end up on your account, so it doesn't matter what you call it). Use "fork at tip" and don't check "this is a private repository" * You should be redirected to the new repository on bitbucket * clone your new repository to your local harddrive (if you need a primer on how to clone or use bitbucket,!LINK!https://confluence.atlassian.com/display/BITBUCKET/Bitbucket+201+Bitbucket+with+Git+and+Mercurial -- see their tutorial!/LINK!) * Make your code changes locally. Do not make a feature branch, work directly on the default branch. * Commit and push the changes to your repository on bitbucket * Go to your repository on bitbucket and click "pull request" (in the button menu at the top right of the page) * Write a good description for what your changes concern and click "create pull request" Once you have done this, the makehuman team will get a notification that there is an incoming code changes. This will be reviewed and either merged or rejected. If you want to continue working with updates in the future, make sure your fork is up to date with changes in the makehuman repository. Go to your repository, click the "..." button in the button menu and choose "compare", click the compare button on the page you get to. Merge any incoming changes. If your tree is hopelessly out of sync with the makehuman tree, just delete it and make a new fork. Better that than accidentally getting junk in your pull requests. Before starting with any of the above, you might want to read up on how to run makehuman from a source checkout rather than from a binary download. The short story is that you need to install a few dependencies. More information can be found here:!LINK!http://www.makehuman.org/doc/node/libraries_and_build_procedures.html -- http://www.makehuman.org/doc/node/libraries_and_build_procedures.html!/LINK! === Application design and Code overview === ==== Structural Organization of MakeHuman ==== MakeHuman is organized hierarchically. There is a root application (type gui3d.Application) that handles rendering of objects (guicommon.Object). These objects can be added/removed to/from the root application. Objects added to root application are always visible in the canvas.[I'm wondering if this is really true? - There are object on hidden tabs and the skeleton or mesh can be visible or not. Am I confusing the distinction between 'canvass' and 'view'? - RWB] Every added object has an openGL counterpart. mhmain.MHApplication inherits from root application to constructmain application. A view is a visual context. A tab is a view, for example, the main application is a view.[The main application IS a view or the main application HAS a view? "the "main application frame/window is a view?"- RWB] The Root application[you do meanrootand notmain? - RWB]contains Categories. A Category (gui3d.Category) is a specialised view object which contains multple taskiew objects (gui3d.TaskView). Taskview objects are specialised view objects with a panes and tab. In context of MakeHuman interface, Category objects constitute the upper row of tabs while taskview objects constitute the lower row of tabs. Objects (guicommon.Object) can be added/removed to/from a taskview. Objects added to a taskview are only visible if the taskview is visible. For example, a skeleton added to the skeleton chooser is only visible when the skeleton chooser taskview is visible. Objects added to root application[root not main? - RWB]are always visible. Thus objects like human and all proxies such as clothes are added to theapplication,because they should always be visible. Visiblilty can be disabled by setting the visibility flag on objects but an object that is not added to a currently visible taskview, or the application, is not visible, even if its visibility flag is set positive. [Wording needs improving -- 'should always be visible' and a 'visibility flag' are mixed message - RWB] An object can only be added to one context. So an object is either added to one taskview, or the application, not two different taskviews. Apart from root application, there is another application (type qtui.Application) which implements MH gui structures using Qtlibraries. mhmain.MHApplication inherits from this application too for handling of gui content.e General structure in MH can be represented as: !IMAGE!Pictures/mh-inheritance.png!/IMAGE! ==== Basics of event handling in Makehuman: ==== Makehuman is a GUI based, interactive, Qt application in which objects interact by sending messages to each other. The Qt class QEvent encapsulates notion of low level events like mouse events, key press events, action events, etc. A Qt application is event loop-based, which is basically a program structure which allows events to be prioritized, queued and dispatched to application objects. In a Qt based application, there are different sources of events. Some events like key events and mouse events come from window system, while some others originate from within application. When an event occurs, Qt creates an event object to represent it by constructing an instance of the appropriate QEvent subclass, and delivers it to a particular instance of QObject (or one of its subclasses) by calling its event() function. This function does not handle the event itself, but rather, it calls an event handlerbased on the type of event delivered, and sends an acknowlegement based on whether the event was accepted or ignored. QCoreApplication::exec()method enters the main event loop and waits until exit() is called. It is necessary to call this function to start event handling. In MH, it is done in lib.qtui.Applicationwhich inherits fromQApplicationwhich in turn inherits fromQCoreApplication: def start(self): self.OnInit() self.callAsync(self.started) self.messages.start() self.exec_() In MH, event handling falls in two broad categories. * Event handling forcontainers(application, categories, taskviews) * Event handling forwidgets(contained in containers) ==== Event handling for containers: ==== MH is organized hierarchically in the context of containers. At top is the main application (core.mhmain.MHMainApplication). It contains categories (core.gui.Category), which in turn contains taskviews (core.gui.TaskView). In a Qt-based application, there are five different ways of events processing, as listed below: * * Reimplementing an event handler function like paintEvent(), mousePressEvent() and so on. This is the most common, easiest, but least powerful approach. * ReimplementingQCoreApplication::notify( QObject * receiver, QEvent * event ). This is very powerful, providing complete control; but only one subclass can be active at a time. Qt's event loop and sendEvent() calls use this approach to dispatch events. * Installing an event filter onQCoreApplication::instance(). Such an event filter is able to process all events for all widgets. It's just as powerful as reimplementing notify(); furthermore, it's possible to have more than one application-global event filter. Global event filters even see mouse events for disabled widgets. Note that application event filters are only called for objects that live in the main thread.[I believe that MH is single threaded - implications? RWB] * ReimplementingQObject::event()(as QWidget does). If you do this you get Tab key presses[<--Explain what is special about TAB and shift-TAB presses ?- RWB], and you get to see the events before any widget-specific event filters. * Installing an event filter on the object itself. Such an event filter gets all the events, including Tab and Shift+Tab key press events[<--Explain what is special about TAB and shift-TAB presses ?- RWB], as long as they do not change the focus widget. In MakeHuman, approaches 2 and 4 are used for extensively for event handling. As part of strategy 2,inlib.qtui.Application (which extendsQApplication), notify has been reimplemented:[I don''t understand the implication of this? Expond? -RWB] def notify(self, object, event): self.logger_event.debug('notify(%s, %s(%s))', object, event, event.type()) return super(Application, self).notify(object, event) object is the receiver object. Class implementing notify has to be singleton. [Clarify? - RWB] In MakeHuman,MHApplicationsubclasseslib.qtui.Application.MHApplicationobject is the main application object. It's notify function receives notification from the event loop in the underlying Qt layer about each[container only or widgets too?]event, which is then relayed to receiver object's event method. Thereceiver object's event method is either inherited from QObject or reimplemented. The Receiver object then either sends TRUE or FALSE, as the case may be, to[WHERE??] - RWB lib.qtui.Applicationalso implements an event function, which is called if the receiver object isMHApplication objectitself. Then,lib.qtui.Application.event()checks if its a user-defined event or not,and it is so true is returned, else we call super class's event(). In case of true being returned,Qt dispatches event to receiver object's callEvent function which determines which function to be called on object to handle the event. Called function then handles the event or propagate it to its parent(or to current task if its application object), as may seem fit. ==== Event handling for widgets ==== Most of MH widgets are wrappers around Qt widgets. These widgets (defined in module lib.qtgui) inherit from the respective Qt widgets and the Widget class (lib.qtgui.Widget). MH makes use ofsignal and slot mechanismby making the connection between the signal originating from the Qt layer and the corresponding handler function. For example, class TabBase connects the signal 'currentChanged' to its function 'tabChanged' as follows: class TabsBase(Widget): def __init__(self): super(TabsBase, self).__init__() self.tabBar().setExpanding(False) self.connect(self, QtCore.SIGNAL('currentChanged(int)'), self.tabChanged) ...................... Any class inheriting from TabsBase(e.g., lib.qtgui.Tabs or lib.qtgui.TabBar) also gets this facility. So now whenever signal 'currentChanged' is emitted from Qt layer function 'tabChanged' is called. The result is that when a user clicks the mouse on a tab, the 'tabChanged' code will be called, Similarly, MH Slider widget connects various slider operations to its event handling functions as: ........................... self.connect(self.slider, QtCore.SIGNAL('sliderMoved(int)'), self._changing) self.connect(self.slider, QtCore.SIGNAL('valueChanged(int)'), self._changed) self.connect(self.slider, QtCore.SIGNAL('sliderReleased()'), self._released) self.connect(self.slider, QtCore.SIGNAL('sliderPressed()'), self._pressed) ........................... [-- EDITING/PROOFING ENDS HERE - RWB --] ==== Overriding vs event decorators: ==== The View, Category and Application classes inherit from events3d.EventHandler, hence they have callEvent() function. The events that apply to this category are usually application-wide. If user make a change that impacts the whole application, and whole application must know about this change, then best way to do so is to call callEvent() for all the taskviews of the application,as follows: for category in self.categories.itervalues(): for task in category.tasks: task.callEvent('onMyEvent', params) A good example is the event of makehuman's scene changing(core.qtui.MHApplication._sceneChanged). So when callEvent is called on a taskview object and it has onMyEvent implemented,it is being called. In core.gui3d.View too one can see that most of the events (onShow, onMouseDown,...) on the taskview are propagated by default to their parents - the categories. The categories also are views, so the events are propagated again to their parent, the application. If, again, the application or any category has an onMyEvent method, it is executed. There are some events that affect the application, but only a single task at a time,for example onMouseDown event. It only happens to the active taskview (the others are hidden, so they receive no mouse events). Once the mouse is pressed, an Application.currentTask.callEvent("onMouseDown", event)is issued. This causes the onMouseDown event to be received by the active Taskview, its parent Category, and finally the Application. This call executes any onMouseDown method in these objects. Apart from the Category events described above, there are events used for local purposes. Such events are handled withevent decorators. Suppose we have a new Taskview, FooTaskView. This Taskview has a 'mybar' member variable, which is of type Bar(events3d.eventHandler). The requirement is that when self.mybar executes code, we may want to communicate with its parent to inform it about an event that just happened. So, inside the code for Bar, is located a 'self.callEvent('onBaz', 42)' command. Thus, in the Bar class, we emit a timely event signal and use the event decorator to let the parent Taskview know about the event. In the FooTaskView class, but below the place where self.mybar is created, we add: @self.mybar.mhEvent def onBaz(event): # code on event. # guess what, event == 42. When now the self.mybar Bar reaches that callEvent, the above method, located in FooTaskView, will be executed. core.mhmain.MHApplication's human is perfect example of this approach.Human has onMouseDown event handler and we need to relay it to application. In loadMainGui function of MHApplication, we add decorator to human attribute as: def loadMainGui(self): .............. @self.selectedHuman.mhEvent def onMouseDown(event): if self.tool: self.selectedGroup = self.getSelectedFaceGroup() self.tool.callEvent("onMouseDown", event) else: self.currentTask.callEvent("onMouseDown", event) ............. Application.human.onMouseDown event is caught and it starts its trip from the Human; it is captured by the decorated method located in Application.loadMainGui (this is the place where the method is bound with the event), it is sent to the currentTask, propagated through the parent category, and finally reaches its destination, the Application. A more intense process happens on Human.onChanged. This is emitted when a save/load happpens, so the whole application has to know. So it starts from the human, captured by the decorated method in app, sent to ALL the taskviews in MH, and finally through the categories again to the app. ==== The MakeHuman Graphical User Interface (GUI): ==== The MakeHuman GUI is based on the pyQt library which, in turn, is built on the Qt library. Qt is a development framework for the creation of applications and user interfaces for desktop. Important GUI classes in MakeHuman are: lib.qtui.Canvas:This is the class in MakeHuman which takes care of rendering openGL graphics.It inherits from Qt's QGLWidget class which is a widget for rendering OpenGL graphics. QGLWidget provides functionality for displaying OpenGL graphics integrated into a Qt application. It is very simple to use. You inherit from it and use the subclass like any other QWidget, except that you have the choice between using QPainter and standard OpenGL rendering commands. The Canvas class reimplements three functions from parent class to perform openGL tasks: * paintGL() - Renders the OpenGL scene. It gets called whenever the widget needs to be updated. * resizeGL() - Sets up the OpenGL viewport, projection, etc. Gets called whenever the widget has been resized (and also when it is shown for the first time because all newly created widgets get a resize event automatically). * initializeGL() - Sets up the OpenGL rendering context, defines display lists, etc. Gets called once before the first timeresizeGL() orpaintGL() is called. lib.qtui.Application: This is the foundation class which manages GUI's control flow and main settings. It inherits fromQtGui.QApplicationandevents3d.EventHandler. QApplicationcontains the main event loop, where all events from the window system and other sources are processed and dispatched. It also handles the application's initialization and finalization.Application class holds gui main window(instance of lib.qtui.Frame). Application class receives event notifications from underlying Qt user intrface framework and dispatches them to appropriateuser intrface elements in MakeHuman. GUI architecture inMakeHumanMH can be depicted as follows: !IMAGE!Pictures/mh-uiarchitecture.png!/IMAGE! === Application Design Notes from IRC Chat with Thanassis === Thanasis comments on gaining the big picture of MH coding * [16:12:57] <Thanasis> I would avoid describing the different parts of code as different entities * [16:13:43] <Thanasis> ie. follow the object-oriented paradigm, and avoid thinking who is inherited by who etc. * [16:13:48] <Thanasis> more specifically * [16:15:03] <Thanasis> I mean, treat an object as a single object * [16:15:08] <Thanasis> I'll show an example * [16:15:45] <Thanasis> you have the application. Inheritance says it consists of three classes, QApplication, MHApplication, and mhmain.Application (names may differ a bit). * [16:15:58] <Thanasis> but it is only one object * [16:16:42] <Thanasis> We don't care if the QApplication activates a function in MH application, because it happens inside the same object * [16:16:50] <Thanasis> the application * [16:17:18] <Thanasis> we only pay attention to the interactions the application object has with other objects * [16:17:43] <Doctor_Hell_> but if you need to find a function, you need to follow the inheritage chain...no? * [16:18:24] <Thanasis> of course, in the code, yes. but in a diagram it will make it complex * [16:21:02] <Thanasis> well, let's go top-down * [16:21:29] <Thanasis> we have: QT, App, Tab, Task * [16:21:56] <Thanasis> The event starts from QT, and activates a handler in App * [16:22:22] <Thanasis> The App sends a new event to the current Task * [16:22:46] <Thanasis> The task handles it, and sends a copy to the parent Tab * [16:23:13] <Thanasis> And finally the Tab handles it and sends a copy to the App * [16:23:35] <Thanasis> which handles it, and stops * [Referring to how distrating it is to describe the big picture of MH, Thanasis comments ...] * "Distract? no, this does not consume any brain energy" * We love your help- the more the bettter -- Thanks [RWB] Comments Regarding MacroTarget slider processing/handling based on naming conventions: * [16:36:24] <Doctor_Hell_> [23:26] <Doctor_Hell_> another complex part to know is the engine coded by Jonas to automatically handel the targets using their name * [16:37:58] <Thanasis> uh. yes, that's a tough one too. I think it does, but I don't remember why and how, because it was a long time ago and Jonas changed the human modifier class since then * [16:38:18] <Thanasis> he simplified it, actually, but I haven't seen the new version yet * [16:38:34] <Doctor_Hell_> where is the code? * [16:38:49] <Thanasis> apps/humanmodifier.py, I think * [16:39:01] <Doctor_Hell_> Jonas should be very busy recently, since I asked him but he didn't reply me yet. * [16:42:37] <Thanasis> um by the way, reading humanmodifier alone won't help a lot. I would suggest starting from the macro plugin, to trace what happens when a slider is created, and when the user moves a slider. It might be easier this way Difficulties in understanding relationships between folder names / module names and the object structure * [16:39:36] <Doctor_Hell_> ANother thing to understand is why we have some code inapps, other incore, other in libs..the logic is not clear for me.. * [16:39:52] <Thanasis> ah, ignore logic in that part. :) * [16:40:20] <Thanasis> as far as I know it is all because of mh history so far * [16:40:29] <Thanasis> the way it developed. * [16:40:56] <Doctor_Hell_> I know some of it * [16:41:24] <Doctor_Hell_> in the early times,it was planned to have a core folder, with all important main files * [16:42:03] <Doctor_Hell_> then anapps folder, to contain many application based on the core files: makeHuman, makeANime, MakeToon, etc.. * [16:42:29] <Doctor_Hell_> butsharedandlibswere added later...I don't know why * [16:43:10] <Thanasis>libs, they are classes imported from c++ directly * [16:43:48] <Doctor_Hell_> ah ..so only the "shared" folder is the mystery * [16:44:04] <Thanasis> shared, they are later classes used by many different parts of the code at the same time * [16:44:15] <Thanasis> classes created later* * [16:44:28] <Thanasis> ie. material. It's used literally everywhere * [16:44:32] <Thanasis> progress too * [16:44:58] <Doctor_Hell_> ok..at least now it make sense, thank you * Comments on New API project * [16:45:39] <Doctor_Hell_> now that you have more time, will you look at the API? * [16:46:55] <Thanasis> 'time' != 'creativity'. I expect it will be easier to me after the start of the semester * [16:46:27] <Doctor_Hell_> if you are logged to MH site, you can see this:!LINK!http://www.makehuman.org/blog/the_makehuman_api_project_mhapi.html -- http://www.makehuman.org/blog/the_makehuman_api_project_mhapi.html!/LINK! * [16:47:02] <Doctor_Hell_> Also Joel has already created this:!LINK!https://bitbucket.org/joepal1976/makehuman-api-project/overview -- https://bitbucket.org/joepal1976/makehuman-api-project/overview!/LINK! * [16:48:52] <Doctor_Hell_> at the moment, you can just post a list of wished api in the issue 534 * [16:49:16] <Doctor_Hell_> we want to start the API in few weeks..they are fundamental, in order to have more contributors... * [16:51:05] <Thanasis> oh, boy. I want to clean up this code!LINK!https://bitbucket.org/joepal1976/makehuman-api-project/commits/aa5c12953fb2c8a1723b21bb0b7d90667653d615 -- https://bitbucket.org/joepal1976/makehuman-api-project/commits/aa5c12953...!/LINK!* ​Go for it? [RWB] :) The Doc_Hell Diagram (green and red arrows that even Glynn couln't understand) [Summary - concentrate on green arrows not red arrows to get the big picture] * <Doctor_Hell_> this is an example of bad diagram:!LINK!https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0 -- https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0!/LINK! * [16:52:48] <Thanasis> well, in your shape, the actual thing is about the green arrows * [16:53:19] <Thanasis> the red arrows could have been implemented in hundreds of different ways * [16:53:44] <Thanasis> but the important is their result, the green arrows * [16:53:53] <Doctor_Hell_> talking about how to draw the objects? * [16:54:26] <Thanasis> well, my idea was, do two shapes * [16:54:36] <Thanasis> the first without code * [16:55:10] <Thanasis> only showing the 5 steps like I explained above, ie, the green arrows * [16:55:28] <Thanasis> the second can explain each step in detail using the red arrows * [16:55:50] <Thanasis> but in any case the definition is the following * [16:56:04] <Thanasis> an event is, you send the name of a method to someone * [16:56:14] <Doctor_Hell_> ok...but also we have the description written by Manish. I'll show you it tomorrow * [16:56:21] <Thanasis> and that someone executes that method of theirs * [16:56:47] <Thanasis> sure, there are many ways to describe it * [16:57:00] <Doctor_Hell_> I hope we can find the best one * [16:57:07] <Thanasis> I think that they all match though in some certain key points * [16:57:52] <Thanasis> if these are filtered out, the explanation may be more simple And touching on API ideas ... * [16:59:09] <Doctor_Hell_> since the core is too complex for average python programmers * [16:59:36] <Thanasis> yes... perhaps the code could be organized in tiers. * [17:00:00] <Thanasis> core, classes, plugins, scripts * [17:00:27] <Doctor_Hell_> ah you are talking of the current code, not the simplified api * [17:00:54] <Doctor_Hell_> yes, it's a good idea..but what group under "core" ? * [17:01:25] <Thanasis> theapplication and its interfaces(ie.communication with the system and devices. QT, GL etc.) * [17:01:59] <Thanasis> classes are abstract, they use the application by calling its methods * [17:02:35] <Thanasis> the application uses the interfaces (QT, GL.these are actually harder than the application andcould be a sepparate tier) * [17:02:54] <Thanasis> thepluginsuse the classes to create objects * [17:03:26] <Doctor_Hell_> I see some possible confusion because: * [17:04:24] <Doctor_Hell_> - not all core modules are into core folder (for example qtui and qtgui are in libs) * [17:04:49] <Doctor_Hell_> - Classes are everywhere * [17:05:07] <Thanasis> yes, libs folder consists of both core and classes... indeed * [17:05:23] <Thanasis> andinterfacestoo * [17:06:51] <Thanasis> but in general, this separation exists somehow. I'm not sure how, but the past programmers instinctively created it, perhaps for better manageability * [17:08:14] <Thanasis> ie. Human is a class, Material too, Armature (probably making name wrong again), and to function I observe that they use callbacks of Application * [17:08:38] <Thanasis> They never use interfaces directly * [17:09:46] <Thanasis> Even for drawing the human, it is the Application that will give the Human's object3d to OpenGL, not the Human directly * [17:10:31] <Thanasis> and plugins use classes ie. they use the callbacks that Human, Material etc. have * [17:11:08] <Doctor_Hell_> Do you mean abstraction classes? * [17:13:27] <Doctor_Hell_> Thanasis: about new API:!LINK!http://bugtracker.makehuman.org/issues/534 -- http://bugtracker.makehuman.org/issues/534!/LINK! * [17:13:42] <Doctor_Hell_> and!LINK!http://bugtracker.makehuman.org/projects/makehuman/wiki/Abstraction_API_for_plugins -- http://bugtracker.makehuman.org/projects/makehuman/wiki/Abstraction_API_...!/LINK! * [17:13:57] <Doctor_Hell_> Feel free to add wished api calls === Q & A with Glynn Clements === Question: For an event when user clicks on a tab, Tabs class method tabChanged is called. QTabWidget documentation.There is no such method. Response: The tabChanged method is defined for qtgui.TabsBase (and overridden for qtgui.Tabs). Both qtgui.Tabs and qtgui.TabBar inherit from qtgui.TabsBase. Tabs inherits from both TabsBase and QTabWidget while TabBar inherits from both TabsBase and QTabBar. Both QTabWidget and QTabBar define the currentChanged signal, which is emitted whenever the current tab changes. The TabsBase initialiser connects this signal to the tabChanged method (lib/qtgui.py:109): class TabsBase(Widget): def __init__(self): ... self.connect(self, QtCore.SIGNAL('currentChanged int)'), self.tabChanged) ========================================================== Question: is it true that qtui module: low level module, that handles signals directly from QtCore, QtGui and QtOpenGL? Response: qtui defines the classes for the application (QApplication subclass), main window QMainWindow subclass), drawing canvas (QGLWidget subclass), and some associated support classes. In other words, it implements the high-level UI, or at least the aspects which are tied to Qt. Question: is it true that qtgui module: low level module, that define the basic widgets of the GUI as buttons, radiobuttons, etc.. Response: Yes; qtgui is essentially a compatibility layer between the Qt widget classes and the legacy MH GUI toolkit. The classes provide methods which more closely mimic the behaviour of original gui3d widgets. Qt events are translated to MH events3d events. Question: Is it true that gui3d module: high level module, that define the principal public classes of MakeHuman: Application, Category, TaskView and View. Response: This is what's left of the legacy MH GUI toolkit. Before the move to Qt, everything was a "View". Now it's just the high-level containers (Application, Category, Task) which exist as somewhere to put event handlers. Question: What is the purpose of the module guicommon.py? Looking at the module name, it appears to be a sort of library for the GUI functions, but it's a completely different thing. What is it really? Response: Object used to be part of gui3d. Its primary function is to be the base class for Human. It's the other main subclass of events3d.EventHandler (the first being gui3d.View). It's not really accurate to call it a "wrapper" around Object3D (although it can have instances of both module3d.Object3D and object3d.Object3D as members). One of the main differences between guicommon.Object and module3d.Object3D is that the latter is a single mesh, while the former has up to four meshes (all of type module3d.Object3D): the base (or "seed") mesh, a proxy mesh, a subdivided mesh, and a subdivided proxy mesh. It [guicommon.py or guicommon.Object ??RWB] also contains an object transformation (location, rotattion, scale) [method?], and optionally a display mesh (object3d.Object3D). As a subclass of EventHandler, it [guicommon.Object ??RWB] provides mouse handlers which propagate the event to the object's view (these are overridden for the Human within MHApplication.loadMainGui). Question: G.app is the singular mhmain.MHApplication instance; the callEvent method (inherited from event3d.EventHandler) will end up calling G.app.onMouseDownCallback. How the function callEvent end up calling G.app.onMouseDownCallback? Response: "direction" will be either onMouseDownCallback or onMouseUpCallback. Note the "Callback" suffix. So typical event flow for clicking on the human model is: G.app.mainwin.canvas.mouseUpDownEvent ("onMouseDownCallback") [Canvas.mouseUpDownEvent] G.app.callEvent("onMouseDownCallback") [EventHandler.callEvent] G.app.onMouseDownCallback() [gui3d.Application.onMouseDownCallback] G.app.selectedHuman.callEvent('onMouseDown', event) [EventHandler.callEvent] G.app.selectedHuman.onMouseDown() [local function in MHApplication.loadMainGui] G.app.currentTask.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.currentTask.onMouseDown() [View.onMouseDown] G.app.currentCategory.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.currentCategory.onMouseDown() [View.onMouseDown] G.app.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.onMouseDown() [MHApplication.onMouseDown] Notes: G.app.currentTask.parent == G.app.currentCategory G.app.currentCategory.parent == G.app Question: is the eventType string (also called 'direction') originated by QT? Response: No. "direction" is just so that code which is common to both mouse press and mouse release events can go into a single method (mouseUpDownEvent) rather than duplicating it in mousePressEvent() and mouseReleaseEvent(). Those functions are identical except for the name of the event passed to callEvent. Bear in mind that self.callEvent("onMouseDown", event) is almost the same as self.onMouseDown(event), except that callEvent forces a redraw after the event has been dealt with, and has some support for logging and profiling. Once you strip that away, the guts of callEvent() is just: method = getattr(self, eventType) method(event) ====================================================================== Question: Can the modularization of the code can be improved? Response: Modularisation is already quite good. Too much of it can make the code harder to understand. Currently, we try to avoid importing OpenGL or Qt modules (directly or indirectly) into modules which don't inherently depend upon them (e.g. guicommon.Object imports object3d locally in the attachMesh and detachMesh methods, so it only gets imported if you actually need to render the object). TODO ACTION. One minor point which I noticed: lib/camera.py imports glmodule solely for the queryDepth() call in convertToWorld2D (the Z coordinate is obtained by retrieving a value from the depth buffer using the X,Y coordinates). This should probably be a local import in that method, so that camera.py could be used in e.g. import/export utilities. ========================================================================== Question: [Referring to DocHell's red and green diagram (!LINK!https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0] -- https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0]!/LINK!] Response: I have no idea; I can't follow that [diagram]. It would probably help if you simply ignore CallEvent(), and treat object.callEvent('method',event) as just object.method(event). The two factors which make following the flow slightly complicated are: Methods aren't always defined within the class used to create an object, but may be inherited from one of its base classes. Event handlers may be dynamically added to an object with the mhEvent method (which is usually invoked using Python's decorator syntax). This is done for the Human object in MHApplication.loadMainGui(): @self.selectedHuman.mhEvent def onMouseDown(event): .... If you aren't familiar with the decorator syntax, the above is equivalent to: def onMouseDown(event): ... self.selectedHuman.mhEvent(onMouseDown) which in turn boils down to: def onMouseDown(event): ... self.selectedHuman.onMouseDown = onMouseDown ================================================================================= Question: Could you provide an explanation of what a weak reference is? How might this impact MakeHuman? Response: [Jonas Hauquier ] A weak reference, one that is not accounted for by the garbage collection. Garbage collection removes objects from memory that have no pointers to them anymore. Weakrefs are not counted among those, so if the object has only weakrefs pointing to it, and not real pointers, it will be removed anyway. This is to make sure that object A and B that always point to each other, are not kept in memory just because they keep referencing each other (I believe the garbage collection does not do expensive graph traversals to check what is still referenced by the active context). [Glynn Clements] Sort of. Python uses both reference-counting (which can't handle circular references) and reachability-based garbage collection (which can). If an object's reference count reaches zero, it will be finalised immediately. But an object with a non-zero reference count can still be finalised if it can be determined that it isn't reachable during a garbage-collection sweep. However: the garbage collector won't attempt to finalise reference cycles if any of the objects in the cycle have a __del__ method, as it can't determine a safe order in which to execute them. Instead, it adds them to a list, accessible as gc.garbage. Application code can inspect this list, manually finalise the objects (which should break the cycles), then remove them from the list (otherwise their presence in gc.garbage will itself constitute a reference). It's possible to have the garbage collector report such cases using gc.set_debug(gc.DEBUG_UNCOLLECTABLE). Only a few MH classes contain __del__ methods. These will only present a problem if the object itself is part of a cycle (i.e. contains references to "complex" objects which themselves contain references which could lead back to the original object). "Leaf-node" classes such as Texture and Shader shouldn't present a problem unless their creators attach additonal references to them. This may be an issue for e.g. qtgui.Slider and qtgui.RadioButton, as these have __del__ methods and will naturally create circular references. Use of weakref may be advised here. Similarly for queue.Thread. SceneItem in plugins/7_scene_editor.py may also be a problem. ============================================================================= Question: Could you clarify wherther the following acurately describe the use of decorators? A basic decorator is a function that: 1) Gets a function "A" as argument 2) Modifies the behavior of "A" 3) Returns a "decorated" version of "A" Response: Correct. Question: Topic: Decorators and side-effects. When is a decorator not about generating a function? So, if the above accurately descibes a decorator, consider the code: @self.selectedHuman.mhEvent def onMouseDown(event): This should translate: onMouseDown = self.selectedHuman.mhEvent(onMouseDown) One would expect that using mhEvent as decorator, it returns a function, but instead, it returns None: def mhEvent(self, eventMethod): self.attachEvent(eventMethod.__name__, eventMethod) How can it be used as decorator? Response: Because the returned "function" isn't actually used anywhere. The definition is local to loadMainGui(), which doesn't reference the functions, so the fact that e.g. onMouseDown is None within loadMainGui() doesn't matter. The mhEvent() method is used for its side-effects, not its return value. It attaches an event to the selectedHuman. It is equivalent to: self.selectedHuman.attachEvent(onMouseDown.__name__, onMouseDown) ============================================================================== == Packager's notes == Notes for packagers of Makehuman stables and nightlies. === Packaging RPM's for Suse/Fedora using Open Build Service (OBS) === The Open Build Service is a service formerly known as the Opensuse build service. OBS allows packagers to build packages for several targets. Here a target is a particular OS version E.g. Suse 13.1, Suse 12.3, Fedora 20 , Ubuntu 14.04 and so on. OBS being a build system by itself can be hosted anywhere even on local infrastructure. For MakeHuman packages we use the OBS instance hosted by Novell at build.opensuse.org This document will briefly outline the typical packaging workflow for Suse and Fedora. Both distributions use the RPM format and subsequently adhere to RPM's packaging rules. !IMAGE!Pictures/obs-flow-chart-scaled.png!/IMAGE! === 1) Prepare source tarball: === OBS does not allow pulling from the internet once the rpm is being processed into a package so. When creating the source tarball you should assemble it either on your own computer or a server online (even a VPS will do). There are several Important files and scripts which are of interest to us. One is build_prepare.py this assembles the main folder and all the common data which is needed by all OSes be it Mac or LInux distros or windows. This script is essential to run. Then there is build_rpm.py. We borrow some of the initial code in this and use it on our bash script but we do not build the whole RPM because OBS does that. Another third inportant file is build.conf (this stores the configuration used by build_prepare.py to make the source tarball). Using the above scripts/files I prepared a Bash script which is shown below. The above script assumes the following: * You have cloned MakeHuman's Mercurial (Hg) repo into your home directory and it is located at ~/makehuman (cloning into ~/ automatically makes the makehuman folder) * You have python , numpy and pyQt4 installed (package names may vary from distribution to distribution) * You are running on a LInux distribution. * You want to prepare a source tarball from Hg tags. * $VERS is the latest user specified stable tagged version * makehuman-$VERS is your destination folder where all files are copied * the final tarball uses bzip compression. How the tarball is compressed is significant as RPM accepts only certain compression algorithms. The resultant file is makehuman-$VERS.tar.bz2 (E.g. makehuman-1.0.2.tar.bz2) * You use an FTP server whose file path is located at /var/ftp you can skip this step if the script is run locally by commenting the lines out. ​Explanation of the above script: In the first section we use Hg and extract available tags and ask the user for input on which stable tag he/she wants to build against. In the second section we automatically create the build.conf file which is used to specify if we want a release or development folder. Here we set isRelease=True In the third section we use build.conf along with build_prepare.py this creates a basic non-OS specific folder in home (~/). In the fourth section we copy extra files such as the .desktop file and the makehuman icon file, the shell wrapper for MakeHuman and remove the .bat file which is not needed in linux. Currently there is a bug where command line arguments are not passed by the shell wrapper to the python executable. We fix this by manually editing the file automatically in our bash script before copying it into the target folder to be tarballed. This is moved into the folder created earlier by build_prepare.py . With this we now have have a folder with all the basic requirements needed for packaging. FInally the folder is then tarballed and it is ready for upload to OBS. If you are not using an FTP server then comment out the “mv” command which moves the tarball to /var/ftp in the shell script above. IN some distributions the FTP directory is /srv/ftp === 2) Upload the tarball to OBS === The next step is to upload the tarball to OBS. Firstly you need to create a username and password. Then login to build.opensuse.org and create a project. On account creation you get your own home directory. Two interfaces exist to OBS. One is the command-line interface which is available by installing the package "osc" it is available in most distributions. The other one is the Web User interface. Both are equally useful the command line interface is better for doing certain tasks however. OBS also has a feature called “ services”. Several services are available such as services to pull from various sources e.g. FTP servers online, services to tarball the version controlled sources directly (tar_scm). You can make use of these _services (they are defined using XML notation in "_service" files). Read!LINK!”http://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService” -- Source Services!/LINK!; or you can manually upload your tarball through the Web UI or use the "osc" command line utility. To learn how to use the "osc" utility use "man osc" or view the manpage online. I would not recommend using _service files to pull the tarball as they can stop working. It is better to manually push the tarball to OBS. Either by pressing the upload button on the Web UI or placing the tarball in your project home directory created by using the “osc checkout” command. Then typing “osc ar” (add /remove) and finally “ osc commit -m ”put commit description here” “ to push and commit the changes you just made. You can also automate the above process by adding lines to the shell script but It is better to administer osc separately and manually to allow for more control. === 3) Prepare the spec file: === A .spec file is a special file which is used to build RPM's. It “contains information required by RPM to build the package, as well as instructions telling RPM to build it. The spec file also dictates exactly what files are a part of the package, and where they should be installed. The RPM specification is very well defined and it is fundamental than any packager develop a strong base in the fundamentals.” (taken from “Maximum RPM”) A very important book detailing the various capabilities of RPM is!LINK!”http://www.rpm.org/max-rpm/” -- Maximum RPM!/LINK!. This is a must read for any packager and will help in understanding the spec file shown below. If you have not read it please bookmark the page and give the book a read. I cannot stress how important it is. In OBS we have 2 main OS's which use RPM's as build targets Fedora and Suse. RPM provides macros to make packaging more standardised and easy. Most Macros are common however some are distribution specific. Below is the spec file used by the Makehuman project. For version 1.0.2. The above .spec file follows the general structure and format of spec files as per the RPM specification. The spec file has been formatted for for OBS by running “osc service localrun format_spec_file” then reading the contents to ensure that nothing went wrong and committing the changes back to OBS. In the above spec file we have split MakeHuman into 2 subpackages and made them depend upon each other to ensure consistency. As you can see there are 2 sources one is the tarball we created with our bash script earlier and there is another file called "makehuman.1" this is a manpage. In the spec file instructions are issued to gzip it and put into the manual directory on install. The manpage (Source101 in the .spec file) is shown below. How man pages are created is out of scope of this document. Man pages use gtroff. There are however ample resources online which can help with this. The .spec file has been commented to provide you with a better understanding of what is done at various stages. Once the .spec file has been updated on OBS it automatically triggers a rebuild duribg that time you can monitor the status of the build process and correct errors in your spec file or sources as they arise. === 4)Pushing changes to the official repositories === Once you are satisfied that your package is stable you can make a submit request to submit the package from the Web User Interface or run the command below. In the above command we submit the “makehuman” package to the OpenSuse “graphics” project. After this the package is reviewed by the maintainer of the graphics project and approved or rejected with comments given. You will receive an email after the project has been reviewed. Notes: * The .spec file and the manual page will change over time. The above is there for illustration purposes only. * You can find copies of the most recent stable .spec file and makehuman.1 manpage!LINK!:https://build.opensuse.org/package/show/graphics/makehuman: -- here!/LINK!. This is the stable version after a "submit request" to the official Suse repositories. b34d1436ac9f65296e2add662b7ed8f2ce35a9cb Documentation:Clothes 3000 240 1815 1814 2020-06-29T04:20:38Z Mtknife 35 /* What if automatic vertex groups don't work? */ wikitext text/x-wiki MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that the clothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within your HOME/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. == Standard Tools == === Using MakeClothes addon === [[File:Btmc01.png|left]] MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. <br style="clear:both" /> <hr> [[File:Btmc02.png|500px|right]] The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: ** Base Mesh: The MakeHuman mesh without any targets applied. ** Average Male: A caucasian young male. ** Average Female: A caucasian young female. ** Average Child: A caucasian young child. ** Average Baby: A caucasian young baby. ** Base Mesh with Helpers: The MakeHuman mesh without any targets applied. ** Average Male with Helpers: A caucasian young male. ** Average Female with Helpers: A caucasian young female. ** Average Childwith Helpers: A caucasian young child. ** Average Baby with Helpers: A caucasian young baby. *Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights, etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The image (right) shows the result of pressing "Load Human Mesh", with type set to Base Mesh. <br style="clear:both" /> [[File:Btmc03.png|500px|right]] A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and incorrectly detected). * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. <br style="clear:both" /> === Glue clothes to the body === The clothes are meshes that can be modelled directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, the next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with the same name must exist in the human mesh as well. On the human side you are more liberal with the vertex groups, i.e. you can have vertices that do not belong to any vertex group or to more then one vertex group, so these vertex groups can overlap. Only human vertices in the correct vertex group will be considered when making clothes. There are special vertex groups for teeth (see: [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]]) and rigid vertex groups beginning with '*'. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient to let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === [[File:Btmc04.png|500px|right]] If vertex groups need to be reassigned, for example because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image (above right), called "Create Vertex Groups From Selection". Selecting a cloth, the button changes to "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human it is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate only a part of the human vertices with all vertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. <br style="clear:both" /> [[File:Btmc05.png|500px|right]] Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the images (right), we can see the vertices assigned to the Mid and Left groups for a nude human. <br style="clear:both" /> === What if automatic vertex groups don't work? === Sometimes, a piece of clothing made with MakeClothes seems to work just fine&mdash;until you try it on a character not shaped exactly life the target used in MakeClothes, at which point all sorts of strange distortions may occur. Why does this happen? When you use MakeClothes, at some point you have to load a target object ("Load Human Mesh"). These come in two basic varieties, with helpers (e.g., "Average Female With [sic] Helpers") and without (e.g., "Average Female"); the obvious difference is that the "With Helpers" objects include not only the human body, but the "helpers" mentioned briefly in the previous section: they're a bunch of vertices that represent different types of clothing, and hair. Thus, just below the waist, if you examine the human mesh closely, you'll find three layers of vertices: the body itself, a tights "object" that lies just on top of the body, and a skirt "object" that conforms to the body in places, but stretches over it in others (between the legs, to be precise). For the modeler, the obvious use of these targets ("human meshes") is to fit clothes; if you use the "with Helpers" versions, you can also use the helper "objects" as templates for creating clothes (this works well for skirts or hair, but with shirts, you run into the problem that the edge loops don't coincide with where you'd want to put seams). However, the targets also serve another purpose: when you hit the "Create Vertex Groups" button and then the "Make Clothes" button, the program calculates the distance between each vertex of the item of clothing and the nearest vertices in the human mesh, and then uses these relationships to deform the item of clothing when the body moves. If the vertices in the clothing are associated with vertices in the human mesh that have a very different shape, bad things tend to happen. To avoid this problem, you have to do three things before you hit "Create Vertex Groups" : # Select the human mesh, and go into "Edit" mode. Select only the vertices that make up the appropriate helper object (or in some cases, like a long coat or a dress, objects). Doing this will eliminate a lot of the "wedgie" effect, which is due mostly to the skin-tight contours of the body itself and the tights helper in the area around the crotch. (A similar problem occurs between the breasts, with clothes sticking inside the cleavage like a rubber wetsuit, rather than stretching across the gap like most fabrics do.) This procedure can be tricky to do by hand, since some objects cover others (the "Hair" object makes the upper part of the "Tights" object, which is used for shirts, especially hard to work with), and you can't just delete the stuff you don't need, since this fouls up the program. Fortunately, each helper object has a stand-in material with a different color, and there's a handy "Show Selection" button that automatically selects the most commonly used sets of vertices ("Body", "Tights", "Skirt", "Coat", and "Hair"); the hide command ("H") is also useful here ("alt-H" to unhide everything hidden). # Unselect all the vertices that aren't directly underneath the clothes in question. Thus, if you're making a short skirt, not only will you not select the layers of body and tights vertices beneath the skirt helper object, but you'll make sure that skirt helper vertices that lie below your skirt's hemline (or above its waist) also aren't selected. This step eliminates some distortions (huge wrinkles, mostly) that occur for clothing whose vertices are far away from the body. # Finally, get rid of vertices in "crevices". For reasons that are not entirely clear (better understanding of the body than of clothes on the part of the sculptor, probably), the shapes of the helper objects don't correspond very well to real clothes in certain places. As mentioned above, the upper tights follow the contour of the skin between the breasts, and the lower part of the tights dips into the "crack" between the buttocks, and clings skin-tight against the area where the legs join&mdash;as if it were painted on. The skirt helper at least stretches across the space between the legs, but it, too, dips into the crack between the buttocks, rather than stretching between the buttocks like a real skirt would. Unselect the vertices in question: fortunately, they're easy to find, because they all lie at or near the center line of the human mesh (that is, points whose "X" value is 0, and which lie on the plane that divides the left and right sides of the body). You might want to substitute other points that don't lie directly beneath the clothes, but which don't dip into the crevices. If it works, this procedure should eliminate almost all of the wedgie effect not eliminated by step #1. However, note that this particular step is somewhat hit-or-miss: it will make things better for some pieces of clothing, but worse for others. Experiment to find out what works best for the clothing you're creating, === Generate the clothes file === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/v1/data/clothes, in order to be inbcluded automatically in MakeHuman. == Advanced tools == Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === [[File:Btmc06.png|right]] *Show selection. This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go to edit mode, move the mouse on a vertex and press Lkey to select the linked vertices), you can just press these buttons. <br style="clear:both" /> [[File:Btmc07.png|right]] * Show Materials. This shows a button to export the materials only. This is useful when there are no changes to the geometry, but only to the material, in order to avoid recalculating everything. * Show UV projection. This section is useful mainly for making proxy meshes. ** Recover seams. Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be a reference for marking seams for the clothing. ** Auto seams. ** Project UVs. Automatically create a UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. ** Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. <br style="clear:both" /> === Show ZDepth, Show Offset scaling === [[File:Btmc08.png|right]] * Show ZDepth. This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). ** Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and Lingerie, Socks and Stockings, Shirt and Trousers, Sweater, Indoor Jacket, Shoes and Boots, Coat, Backpack. ** Set Z depth.Set the Z depth depending on the selected depth name. ** Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be set manually for fine-tuning. <br style="clear:both" /> [[File:Btmc09.png|right]] * Show Offset scaling. The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. ** Body Part. Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. ** Examine Boundary. Select the boundary vertices with Set boundary is invoked. ** Set Boundary. Set the boundary to vertices determined by the selected body part. ** Custom Boundary. To manually set the bounday box. ** X1, X2, Y1, Y2, Z1, Z2. The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. <br style="clear:both" /> === Show Settings, Show License === [[File:Btmc10.png|right]] * Show Setting. The settings include the author name and the export path. It's possible to save and restore the settings. <br style="clear:both" /> [[File:Btmc11.png|right]]7 * Show License.This set of options are to add the author name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. ** Author. Defaults to: Unknown. ** License. Defaults to: AGPL3 ** HomePage. Defaults to: <NOWIKI>http://www.makehuman.org/ -- http://www.makehuman.org/</NOWIKI> <br style="clear:both" /> 3b97d5d0793eaf0575ad34a1e86eed0dfcff24bf 1814 1684 2020-06-29T04:17:23Z Mtknife 35 /* What if automatic vertex groups don't work? */ wikitext text/x-wiki MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that the clothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within your HOME/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. == Standard Tools == === Using MakeClothes addon === [[File:Btmc01.png|left]] MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. <br style="clear:both" /> <hr> [[File:Btmc02.png|500px|right]] The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: ** Base Mesh: The MakeHuman mesh without any targets applied. ** Average Male: A caucasian young male. ** Average Female: A caucasian young female. ** Average Child: A caucasian young child. ** Average Baby: A caucasian young baby. ** Base Mesh with Helpers: The MakeHuman mesh without any targets applied. ** Average Male with Helpers: A caucasian young male. ** Average Female with Helpers: A caucasian young female. ** Average Childwith Helpers: A caucasian young child. ** Average Baby with Helpers: A caucasian young baby. *Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights, etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The image (right) shows the result of pressing "Load Human Mesh", with type set to Base Mesh. <br style="clear:both" /> [[File:Btmc03.png|500px|right]] A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and incorrectly detected). * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. <br style="clear:both" /> === Glue clothes to the body === The clothes are meshes that can be modelled directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, the next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with the same name must exist in the human mesh as well. On the human side you are more liberal with the vertex groups, i.e. you can have vertices that do not belong to any vertex group or to more then one vertex group, so these vertex groups can overlap. Only human vertices in the correct vertex group will be considered when making clothes. There are special vertex groups for teeth (see: [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]]) and rigid vertex groups beginning with '*'. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient to let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === [[File:Btmc04.png|500px|right]] If vertex groups need to be reassigned, for example because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image (above right), called "Create Vertex Groups From Selection". Selecting a cloth, the button changes to "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human it is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate only a part of the human vertices with all vertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. <br style="clear:both" /> [[File:Btmc05.png|500px|right]] Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the images (right), we can see the vertices assigned to the Mid and Left groups for a nude human. <br style="clear:both" /> === What if automatic vertex groups don't work? === Sometimes, a piece of clothing made with MakeClothes seems to work just fine&mdash;until you try it on a character not shaped exactly life the target used in MakeClothes, at which point all sorts of strange distortions may occur. Why does this happen? When you use MakeClothes, at some point you have to load a target object ("Load Human Mesh"). These come in two basic varieties, with helpers (e.g., "Average Female With [sic] Helpers") and without (e.g., "Average Female"); the obvious difference is that the "With Helpers" objects include not only the human body, but the "helpers" mentioned briefly in the previous section: they're a bunch of vertices that represent different types of clothing, and hair. Thus, just below the waist, if you examine the human mesh closely, you'll find three layers of vertices: the body itself, a tights "object" that lies just on top of the body, and a skirt "object" that conforms to the body in places, but stretches over it in others (between the legs, to be precise). For the modeler, the obvious use of these targets ("human meshes") is to fit clothes; if you use the "with Helpers" versions, you can also use the helper "objects" as templates for creating clothes (this works well for skirts or hair, but with shirts, you run into the problem that the edge loops don't coincide with where you'd want to put seams). However, the targets also serve another purpose: when you hit the "Create Vertex Groups" button and then the "Make Clothes" button, the program calculates the distance between each vertex of the item of clothing and the nearest vertices in the human mesh, and then uses these relationships to deform the item of clothing when the body moves. If the vertices in the clothing are associated with vertices in the human mesh that have a very different shape, bad things tend to happen. To avoid this problem, you have to do three things before you hit "Create Vertex Groups" : # Select the human mesh, and go into "Edit" mode. Select only the vertices that make up the appropriate helper object (or in some cases, like a long coat or a dress, objects). Doing this will eliminate a lot of the "wedgie" effect, which is due mostly to the skin-tight contours of the body itself and the tights helper in the area around the crotch. (A similar problem occurs between the breasts, with clothes sticking inside the cleavage like a rubber wetsuit, rather than stretching across the gap like most fabrics do.) This procedure can be tricky to do by hand, since some objects cover others (the "Hair" object makes the upper part of the "Tights" object, which is used for shirts, especially hard to work with), and you can't just delete the stuff you don't need, since this fouls up the program. Fortunately, each helper object has a stand-in material with a different color, and there's a handy "Show Selection" button that automatically selects the most commonly used sets of vertices ("Body", "Tights", "Skirt", "Coat", and "Hair"); the hide command ("H") is also useful here ("alt-H" to unhide everything hidden). # Unselect all the vertices that aren't directly underneath the clothes in question. Thus, if you're making a short skirt, not only will you not select the layers of body and tights vertices beneath the skirt helper object, but you'll make sure that skirt helper vertices that lie below your skirt's hemline (or above its waist) also aren't selected. This step eliminates some distortions (huge wrinkles, mostly) that occur for clothing whose vertices are far away from the body. # Finally, get rid of vertices in "crevices". For reasons that are not entirely clear (better understanding of the body than of clothes on the part of the sculptor, probably), the shapes of the helper objects don't correspond very well to real clothes in certain places. As mentioned above, the upper tights follow the contour of the skin between the breasts, and the lower part of the tights dips into the "crack" between the buttocks, and clings skin-tight against the area where the legs join&mdash;as if it were painted on. The skirt helper at least stretches across the space between the legs, but it, too, dips into the crack between the buttocks, rather than stretching between the buttocks like a real skirt would. Unselect the vertices in question: fortunately, they're easy to find, because they all lie at or near the center line of the human mesh (that is, points whose "X" value is 0, and which lie on the plane that divides the left and right sides of the body). You might want to substitute other points that don't lie directly beneath the clothes, but which don't dip into the crevices. This step should eliminate almost all of the wedgie effect not eliminated by step #1. Note that this particular step is somewhat hit-or-miss: it will make things better for some pieces of clothing, but worse for others. Experiment to find out what works best for the clothing you're creating, === Generate the clothes file === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/v1/data/clothes, in order to be inbcluded automatically in MakeHuman. == Advanced tools == Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === [[File:Btmc06.png|right]] *Show selection. This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go to edit mode, move the mouse on a vertex and press Lkey to select the linked vertices), you can just press these buttons. <br style="clear:both" /> [[File:Btmc07.png|right]] * Show Materials. This shows a button to export the materials only. This is useful when there are no changes to the geometry, but only to the material, in order to avoid recalculating everything. * Show UV projection. This section is useful mainly for making proxy meshes. ** Recover seams. Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be a reference for marking seams for the clothing. ** Auto seams. ** Project UVs. Automatically create a UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. ** Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. <br style="clear:both" /> === Show ZDepth, Show Offset scaling === [[File:Btmc08.png|right]] * Show ZDepth. This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). ** Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and Lingerie, Socks and Stockings, Shirt and Trousers, Sweater, Indoor Jacket, Shoes and Boots, Coat, Backpack. ** Set Z depth.Set the Z depth depending on the selected depth name. ** Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be set manually for fine-tuning. <br style="clear:both" /> [[File:Btmc09.png|right]] * Show Offset scaling. The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. ** Body Part. Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. ** Examine Boundary. Select the boundary vertices with Set boundary is invoked. ** Set Boundary. Set the boundary to vertices determined by the selected body part. ** Custom Boundary. To manually set the bounday box. ** X1, X2, Y1, Y2, Z1, Z2. The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. <br style="clear:both" /> === Show Settings, Show License === [[File:Btmc10.png|right]] * Show Setting. The settings include the author name and the export path. It's possible to save and restore the settings. <br style="clear:both" /> [[File:Btmc11.png|right]]7 * Show License.This set of options are to add the author name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. ** Author. Defaults to: Unknown. ** License. Defaults to: AGPL3 ** HomePage. Defaults to: <NOWIKI>http://www.makehuman.org/ -- http://www.makehuman.org/</NOWIKI> <br style="clear:both" /> 93237210214373e8a4906219e19ea0d2875e8523 1684 1598 2020-02-23T04:16:55Z Mtknife 35 /* What if automatic vertex groups don't work? */ wikitext text/x-wiki MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that the clothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within your HOME/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. == Standard Tools == === Using MakeClothes addon === [[File:Btmc01.png|left]] MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. <br style="clear:both" /> <hr> [[File:Btmc02.png|500px|right]] The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: ** Base Mesh: The MakeHuman mesh without any targets applied. ** Average Male: A caucasian young male. ** Average Female: A caucasian young female. ** Average Child: A caucasian young child. ** Average Baby: A caucasian young baby. ** Base Mesh with Helpers: The MakeHuman mesh without any targets applied. ** Average Male with Helpers: A caucasian young male. ** Average Female with Helpers: A caucasian young female. ** Average Childwith Helpers: A caucasian young child. ** Average Baby with Helpers: A caucasian young baby. *Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights, etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The image (right) shows the result of pressing "Load Human Mesh", with type set to Base Mesh. <br style="clear:both" /> [[File:Btmc03.png|500px|right]] A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and incorrectly detected). * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. <br style="clear:both" /> === Glue clothes to the body === The clothes are meshes that can be modelled directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, the next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with the same name must exist in the human mesh as well. On the human side you are more liberal with the vertex groups, i.e. you can have vertices that do not belong to any vertex group or to more then one vertex group, so these vertex groups can overlap. Only human vertices in the correct vertex group will be considered when making clothes. There are special vertex groups for teeth (see: [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]]) and rigid vertex groups beginning with '*'. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient to let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === [[File:Btmc04.png|500px|right]] If vertex groups need to be reassigned, for example because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image (above right), called "Create Vertex Groups From Selection". Selecting a cloth, the button changes to "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human it is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate only a part of the human vertices with all vertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. <br style="clear:both" /> [[File:Btmc05.png|500px|right]] Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the images (right), we can see the vertices assigned to the Mid and Left groups for a nude human. <br style="clear:both" /> === What if automatic vertex groups don't work? === Sometimes, a piece of clothing made with MakeClothes seems to work just fine&mdash;until you try it on a character not shaped exactly life the target used in MakeClothes, at which point all sorts of strange distortions may occur. Why does this happen? When you use MakeClothes, at some point you have to load a target object ("Load Human Mesh"). These come in two basic varieties, with helpers (e.g., "Average Female With [sic] Helpers") and without (e.g., "Average Female"); the obvious difference is that the "With Helpers" objects include not only the human body, but the "helpers" mentioned briefly in the previous section: they're a bunch of vertices that represent different types of clothing, and hair. Thus, just below the waist, if you examine the human mesh closely, you'll find three layers of vertices: the body itself, a tights "object" that lies just on top of the body, and a skirt "object" that conforms to the body in places, but stretches over it in others (between the legs, to be precise). For the modeler, the obvious use of these targets ("human meshes") is to fit clothes; if you use the "with Helpers" versions, you can also use the helper "objects" as templates for creating clothes (this works well for skirts or hair, but with shirts, you run into the problem that the edge loops don't coincide with where you'd want to put seams). However, the targets also serve another purpose: when you hit the "Create Vertex Groups" button and then the "Make Clothes" button, the program calculates the distance between each vertex of the item of clothing and the nearest vertices in the human mesh, and then uses these relationships to deform the item of clothing when the body moves. If the vertices in the clothing are associated with vertices in the human mesh that have a very different shape, bad things tend to happen. To avoid this problem, you have to do three things before you hit "Create Vertex Groups" : # Select the human mesh, and go into "Edit" mode. Select only the vertices that make up the appropriate helper object (or in some cases, like a long coat or a dress, objects). This can be tricky to do by hand, since some objects cover others (the "Hair" object makes the upper part of the "Tights" object, which is used for shirts, especially hard to work with), and you can't just delete the stuff you don't need, since this fouls up the program. Fortunately, each helper object has a stand-in material with a different color, and there's a handy "Show Selection" button that automatically selects the most commonly used sets of vertices ("Body", "Tights", "Skirt", "Coat", and "Hair"); the hide command ("H") is also useful here ("alt-H" to unhide everything hidden). Doing this will eliminate a lot of the "wedgie" effect, which is due mostly to the skin-tight contours of the body itself and the tights helper in the area around the crotch. (A similar problem occurs between the breasts, with clothes sticking inside the cleavage like a rubber wetsuit, rather than stretching across the gap like most fabrics do.) # Unselect all the vertices that aren't directly underneath the clothes in question. Thus, if you're making a short skirt, not only will you not select the layers of body and tights vertices beneath the skirt helper object, but you'll make sure that skirt helper vertices that lie below your skirt's hemline (or above its waist) also aren't selected. This step eliminates some distortions (huge wrinkles, mostly) that occur for clothing whose vertices are far away from the body. # Finally, get rid of vertices in "crevices". For reasons that are not entirely clear (better understanding of the body than of clothes on the part of the sculptor, probably), the shapes of the helper objects don't correspond very well to real clothes in certain places. As mentioned above, the upper tights follow the contour of the skin between the breasts, and the lower part of the tights dips into the "crack" between the buttocks, and clings skin-tight against the area where the legs join&mdash;as if it were painted on. The skirt helper at least stretches across the space between the legs, but it, too, dips into the crack between the buttocks, rather than stretching between the buttocks like a real skirt would. Unselect the vertices in question: fortunately, they're easy to find, because they all lie at or near the center line of the human mesh (that is, points whose "X" value is 0, and which lie on the plane that divides the left and right sides of the body). You might want to substitute other points that don't lie directly beneath the clothes, but which don't dip into the crevices. This step should eliminate almost all of the wedgie effect not eliminated by step #1. Note that this particular step is somewhat hit-or-miss: it will make things better for some pieces of clothing, but worse for others. Experiment to find out what works best for the clothing you're creating, === Generate the clothes file === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/v1/data/clothes, in order to be inbcluded automatically in MakeHuman. == Advanced tools == Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === [[File:Btmc06.png|right]] *Show selection. This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go to edit mode, move the mouse on a vertex and press Lkey to select the linked vertices), you can just press these buttons. <br style="clear:both" /> [[File:Btmc07.png|right]] * Show Materials. This shows a button to export the materials only. This is useful when there are no changes to the geometry, but only to the material, in order to avoid recalculating everything. * Show UV projection. This section is useful mainly for making proxy meshes. ** Recover seams. Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be a reference for marking seams for the clothing. ** Auto seams. ** Project UVs. Automatically create a UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. ** Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. <br style="clear:both" /> === Show ZDepth, Show Offset scaling === [[File:Btmc08.png|right]] * Show ZDepth. This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). ** Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and Lingerie, Socks and Stockings, Shirt and Trousers, Sweater, Indoor Jacket, Shoes and Boots, Coat, Backpack. ** Set Z depth.Set the Z depth depending on the selected depth name. ** Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be set manually for fine-tuning. <br style="clear:both" /> [[File:Btmc09.png|right]] * Show Offset scaling. The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. ** Body Part. Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. ** Examine Boundary. Select the boundary vertices with Set boundary is invoked. ** Set Boundary. Set the boundary to vertices determined by the selected body part. ** Custom Boundary. To manually set the bounday box. ** X1, X2, Y1, Y2, Z1, Z2. The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. <br style="clear:both" /> === Show Settings, Show License === [[File:Btmc10.png|right]] * Show Setting. The settings include the author name and the export path. It's possible to save and restore the settings. <br style="clear:both" /> [[File:Btmc11.png|right]]7 * Show License.This set of options are to add the author name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. ** Author. Defaults to: Unknown. ** License. Defaults to: AGPL3 ** HomePage. Defaults to: <NOWIKI>http://www.makehuman.org/ -- http://www.makehuman.org/</NOWIKI> <br style="clear:both" /> de878e396afb1edb63c088e861e21312c48fce69 1598 1213 2019-07-03T02:36:17Z Mtknife 35 Added reference to the hide command. wikitext text/x-wiki MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that the clothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within your HOME/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. == Standard Tools == === Using MakeClothes addon === [[File:Btmc01.png|left]] MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. <br style="clear:both" /> <hr> [[File:Btmc02.png|500px|right]] The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: ** Base Mesh: The MakeHuman mesh without any targets applied. ** Average Male: A caucasian young male. ** Average Female: A caucasian young female. ** Average Child: A caucasian young child. ** Average Baby: A caucasian young baby. ** Base Mesh with Helpers: The MakeHuman mesh without any targets applied. ** Average Male with Helpers: A caucasian young male. ** Average Female with Helpers: A caucasian young female. ** Average Childwith Helpers: A caucasian young child. ** Average Baby with Helpers: A caucasian young baby. *Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights, etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The image (right) shows the result of pressing "Load Human Mesh", with type set to Base Mesh. <br style="clear:both" /> [[File:Btmc03.png|500px|right]] A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and incorrectly detected). * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. <br style="clear:both" /> === Glue clothes to the body === The clothes are meshes that can be modelled directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, the next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with the same name must exist in the human mesh as well. On the human side you are more liberal with the vertex groups, i.e. you can have vertices that do not belong to any vertex group or to more then one vertex group, so these vertex groups can overlap. Only human vertices in the correct vertex group will be considered when making clothes. There are special vertex groups for teeth (see: [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]]) and rigid vertex groups beginning with '*'. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient to let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === [[File:Btmc04.png|500px|right]] If vertex groups need to be reassigned, for example because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image (above right), called "Create Vertex Groups From Selection". Selecting a cloth, the button changes to "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human it is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate only a part of the human vertices with all vertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. <br style="clear:both" /> [[File:Btmc05.png|500px|right]] Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the images (right), we can see the vertices assigned to the Mid and Left groups for a nude human. <br style="clear:both" /> === What if automatic vertex groups don't work? === Sometimes, a piece of clothing made with MakeClothes seems to work just fine&mdash;until you try it on a character not shaped exactly life the target used in MakeClothes, at which point all sorts of strange distortions may occur. Why does this happen? When you use MakeClothes, at some point you have to load a target object ("Load Human Mesh"). These come in two basic varieties, with helpers (e.g., "Average Female With [sic] Helpers") and without (e.g., "Average Female"); the obvious difference is that the "With Helpers" objects include not only the human body, but the "helpers" mentioned briefly in the previous section: they're a bunch of vertices that represent different types of clothing, and hair. Thus, just below the waist, if you examine the human mesh closely, you'll find three layers of vertices: the body itself, a tights "object" that lies just on top of the body, and a skirt "object" that conforms to the body in places, but stretches over it in others (between the legs, to be precise). For the modeler, the obvious use of these targets ("human meshes") is to fit clothes; if you use the "with Helpers" versions, you can also use the helper "objects" as templates for creating clothes (this works well for skirts or hair, but with shirts, you run into the problem that the edge loops don't coincide with where you'd want to put seams). However, the targets also serve another purpose: when you hit the "Create Vertex Groups" button and then the "Make Clothes" button, the program calculates the distance between each vertex of the item of clothing and the nearest vertices in the human mesh, and then uses these relationships to deform the item of clothing when the body moves. If the vertices in the clothing are associated with vertices in the human mesh that have a very different shape, bad things tend to happen. To avoid this problem, you have to do three things before you hit "Create Vertex Groups" : # Select the human mesh, and go into "Edit" mode. Select only the vertices that make up the appropriate helper object (or in some cases, like a long coat or a dress, objects). This can be tricky to do by hand, since some objects cover others (the "Hair" object makes the upper part of the "Tights" object, which is used for shirts, especially hard to work with), and you can't just delete the stuff you don't need, since this fouls up the program. Fortunately, each helper object has a stand-in material with a different color, and there's a handy "Show Selection" button that automatically selects the most commonly used sets of vertices ("Body", "Tights", "Skirt", "Coat", and "Hair"); the hide command ("H") is also useful here ("alt-H" to unhide everything hidden). Doing this will eliminate a lot of the "wedgie" effect, which is due mostly to the skin-tight contours of the body itself and the tights helper in the area around the crotch. (A similar problem occurs between the breasts, with clothes sticking inside the cleavage like a rubber wetsuit, rather than stretching across the gap like most fabrics do.) # Unselect all the vertices that aren't directly underneath the clothes in question. Thus, if you're making a short skirt, not only will you not select the layers of body and tights vertices beneath the skirt helper object, but you'll make sure that skirt helper vertices that lie below your skirt's hemline (or above its waist) also aren't selected. This step eliminates some distortions (huge wrinkles, mostly) that occur for clothing whose vertices are far away from the body. # Finally, get rid of vertices in "crevices". For reasons that are not entirely clear (better understanding of the body than of clothes on the part of the sculptor, probably), the shapes of the helper objects don't correspond very well to real clothes in certain places. As mentioned above, the upper tights follow the contour of the skin between the breasts, and the lower part of the tights dips into the "crack" between the buttocks, and clings skin-tight against the area where the legs join&mdash;as if it were painted on. The skirt helper at least stretches across the space between the legs, but it, too, dips into the crack between the buttocks, rather than stretching between the buttocks like a real skirt would. Unselect the vertices in question: fortunately, they're easy to find, because they all lie at or near the center line of the human mesh (that is, points whose "X" value is 0, and which lie on the plane that divides the left and right sides of the body). You might want to substitute other points that don't lie directly beneath the clothes, but which don't dip into the crevices. This step should eliminate almost all of the wedgie effect not eliminated by step #1. === Generate the clothes file === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/v1/data/clothes, in order to be inbcluded automatically in MakeHuman. == Advanced tools == Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === [[File:Btmc06.png|right]] *Show selection. This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go to edit mode, move the mouse on a vertex and press Lkey to select the linked vertices), you can just press these buttons. <br style="clear:both" /> [[File:Btmc07.png|right]] * Show Materials. This shows a button to export the materials only. This is useful when there are no changes to the geometry, but only to the material, in order to avoid recalculating everything. * Show UV projection. This section is useful mainly for making proxy meshes. ** Recover seams. Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be a reference for marking seams for the clothing. ** Auto seams. ** Project UVs. Automatically create a UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. ** Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. <br style="clear:both" /> === Show ZDepth, Show Offset scaling === [[File:Btmc08.png|right]] * Show ZDepth. This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). ** Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and Lingerie, Socks and Stockings, Shirt and Trousers, Sweater, Indoor Jacket, Shoes and Boots, Coat, Backpack. ** Set Z depth.Set the Z depth depending on the selected depth name. ** Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be set manually for fine-tuning. <br style="clear:both" /> [[File:Btmc09.png|right]] * Show Offset scaling. The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. ** Body Part. Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. ** Examine Boundary. Select the boundary vertices with Set boundary is invoked. ** Set Boundary. Set the boundary to vertices determined by the selected body part. ** Custom Boundary. To manually set the bounday box. ** X1, X2, Y1, Y2, Z1, Z2. The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. <br style="clear:both" /> === Show Settings, Show License === [[File:Btmc10.png|right]] * Show Setting. The settings include the author name and the export path. It's possible to save and restore the settings. <br style="clear:both" /> [[File:Btmc11.png|right]]7 * Show License.This set of options are to add the author name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. ** Author. Defaults to: Unknown. ** License. Defaults to: AGPL3 ** HomePage. Defaults to: <NOWIKI>http://www.makehuman.org/ -- http://www.makehuman.org/</NOWIKI> <br style="clear:both" /> 10295997f8ababbdf49af3e7d757443468e8973a 1213 1212 2016-11-04T02:52:05Z Mtknife 35 wikitext text/x-wiki MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that the clothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within your HOME/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. == Standard Tools == === Using MakeClothes addon === [[File:Btmc01.png|left]] MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. <br style="clear:both" /> <hr> [[File:Btmc02.png|500px|right]] The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: ** Base Mesh: The MakeHuman mesh without any targets applied. ** Average Male: A caucasian young male. ** Average Female: A caucasian young female. ** Average Child: A caucasian young child. ** Average Baby: A caucasian young baby. ** Base Mesh with Helpers: The MakeHuman mesh without any targets applied. ** Average Male with Helpers: A caucasian young male. ** Average Female with Helpers: A caucasian young female. ** Average Childwith Helpers: A caucasian young child. ** Average Baby with Helpers: A caucasian young baby. *Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights, etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The image (right) shows the result of pressing "Load Human Mesh", with type set to Base Mesh. <br style="clear:both" /> [[File:Btmc03.png|500px|right]] A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and incorrectly detected). * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. <br style="clear:both" /> === Glue clothes to the body === The clothes are meshes that can be modelled directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, the next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with the same name must exist in the human mesh as well. On the human side you are more liberal with the vertex groups, i.e. you can have vertices that do not belong to any vertex group or to more then one vertex group, so these vertex groups can overlap. Only human vertices in the correct vertex group will be considered when making clothes. There are special vertex groups for teeth (see: [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]]) and rigid vertex groups beginning with '*'. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient to let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === [[File:Btmc04.png|500px|right]] If vertex groups need to be reassigned, for example because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image (above right), called "Create Vertex Groups From Selection". Selecting a cloth, the button changes to "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human it is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate only a part of the human vertices with all vertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. <br style="clear:both" /> [[File:Btmc05.png|500px|right]] Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the images (right), we can see the vertices assigned to the Mid and Left groups for a nude human. <br style="clear:both" /> === What if automatic vertex groups don't work? === Sometimes, a piece of clothing made with MakeClothes seems to work just fine&mdash;until you try it on a character not shaped exactly life the target used in MakeClothes, at which point all sorts of strange distortions may occur. Why does this happen? When you use MakeClothes, at some point you have to load a target object ("Load Human Mesh"). These come in two basic varieties, with helpers (e.g., "Average Female With [sic] Helpers") and without (e.g., "Average Female"); the obvious difference is that the "With Helpers" objects include not only the human body, but the "helpers" mentioned briefly in the previous section: they're a bunch of vertices that represent different types of clothing, and hair. Thus, just below the waist, if you examine the human mesh closely, you'll find three layers of vertices: the body itself, a tights "object" that lies just on top of the body, and a skirt "object" that conforms to the body in places, but stretches over it in others (between the legs, to be precise). For the modeler, the obvious use of these targets ("human meshes") is to fit clothes; if you use the "with Helpers" versions, you can also use the helper "objects" as templates for creating clothes (this works well for skirts or hair, but with shirts, you run into the problem that the edge loops don't coincide with where you'd want to put seams). However, the targets also serve another purpose: when you hit the "Create Vertex Groups" button and then the "Make Clothes" button, the program calculates the distance between each vertex of the item of clothing and the nearest vertices in the human mesh, and then uses these relationships to deform the item of clothing when the body moves. If the vertices in the clothing are associated with vertices in the human mesh that have a very different shape, bad things tend to happen. To avoid this problem, you have to do three things before you hit "Create Vertex Groups" : # Select the human mesh, and go into "Edit" mode. Select only the vertices that make up the appropriate helper object (or in some cases, like a long coat or a dress, objects). This can be tricky to do by hand, since some objects cover others (the "Hair" object makes the upper part of the "Tights" object, which is used for shirts, especially hard to work with), and you can't just delete the stuff you don't need, since this fouls up the program. Fortunately, each helper object has a stand-in material with a different color, and there's a handy "Show Selection" button that automatically selects the most commonly used sets of vertices ("Body", "Tights", "Skirt", "Coat", and "Hair"). Doing this will eliminate a lot of the "wedgie" effect, which is due mostly to the skin-tight contours of the body itself and the tights helper in the area around the crotch. (A similar problem occurs between the breasts, with clothes sticking inside the cleavage like a rubber wetsuit, rather than stretching across the gap like most fabrics do.) # Unselect all the vertices that aren't directly underneath the clothes in question. Thus, if you're making a short skirt, not only will you not select the layers of body and tights vertices beneath the skirt helper object, but you'll make sure that skirt helper vertices that lie below your skirt's hemline (or above its waist) also aren't selected. This step eliminates some distortions (huge wrinkles, mostly) that occur for clothing whose vertices are far away from the body. # Finally, get rid of vertices in "crevices". For reasons that are not entirely clear (better understanding of the body than of clothes on the part of the sculptor, probably), the shapes of the helper objects don't correspond very well to real clothes in certain places. As mentioned above, the upper tights follow the contour of the skin between the breasts, and the lower part of the tights dips into the "crack" between the buttocks, and clings skin-tight against the area where the legs join&mdash;as if it were painted on. The skirt helper at least stretches across the space between the legs, but it, too, dips into the crack between the buttocks, rather than stretching between the buttocks like a real skirt would. Unselect the vertices in question: fortunately, they're easy to find, because they all lie at or near the center line of the human mesh (that is, points whose "X" value is 0, and which lie on the plane that divides the left and right sides of the body). You might want to substitute other points that don't lie directly beneath the clothes, but which don't dip into the crevices. This step should eliminate almost all of the wedgie effect not eliminated by step #1. === Generate the clothes file === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/v1/data/clothes, in order to be inbcluded automatically in MakeHuman. == Advanced tools == Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === [[File:Btmc06.png|right]] *Show selection. This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go to edit mode, move the mouse on a vertex and press Lkey to select the linked vertices), you can just press these buttons. <br style="clear:both" /> [[File:Btmc07.png|right]] * Show Materials. This shows a button to export the materials only. This is useful when there are no changes to the geometry, but only to the material, in order to avoid recalculating everything. * Show UV projection. This section is useful mainly for making proxy meshes. ** Recover seams. Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be a reference for marking seams for the clothing. ** Auto seams. ** Project UVs. Automatically create a UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. ** Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. <br style="clear:both" /> === Show ZDepth, Show Offset scaling === [[File:Btmc08.png|right]] * Show ZDepth. This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). ** Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and Lingerie, Socks and Stockings, Shirt and Trousers, Sweater, Indoor Jacket, Shoes and Boots, Coat, Backpack. ** Set Z depth.Set the Z depth depending on the selected depth name. ** Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be set manually for fine-tuning. <br style="clear:both" /> [[File:Btmc09.png|right]] * Show Offset scaling. The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. ** Body Part. Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. ** Examine Boundary. Select the boundary vertices with Set boundary is invoked. ** Set Boundary. Set the boundary to vertices determined by the selected body part. ** Custom Boundary. To manually set the bounday box. ** X1, X2, Y1, Y2, Z1, Z2. The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. <br style="clear:both" /> === Show Settings, Show License === [[File:Btmc10.png|right]] * Show Setting. The settings include the author name and the export path. It's possible to save and restore the settings. <br style="clear:both" /> [[File:Btmc11.png|right]]7 * Show License.This set of options are to add the author name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. ** Author. Defaults to: Unknown. ** License. Defaults to: AGPL3 ** HomePage. Defaults to: <NOWIKI>http://www.makehuman.org/ -- http://www.makehuman.org/</NOWIKI> <br style="clear:both" /> e92842448d6b7de55313c839acd107aaf215221f 1212 871 2016-11-04T02:49:31Z Mtknife 35 Added tips on fixing distortions by using custom vertex groups. wikitext text/x-wiki MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that the clothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within your HOME/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. == Standard Tools == === Using MakeClothes addon === [[File:Btmc01.png|left]] MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. <br style="clear:both" /> <hr> [[File:Btmc02.png|500px|right]] The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: ** Base Mesh: The MakeHuman mesh without any targets applied. ** Average Male: A caucasian young male. ** Average Female: A caucasian young female. ** Average Child: A caucasian young child. ** Average Baby: A caucasian young baby. ** Base Mesh with Helpers: The MakeHuman mesh without any targets applied. ** Average Male with Helpers: A caucasian young male. ** Average Female with Helpers: A caucasian young female. ** Average Childwith Helpers: A caucasian young child. ** Average Baby with Helpers: A caucasian young baby. *Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights, etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The image (right) shows the result of pressing "Load Human Mesh", with type set to Base Mesh. <br style="clear:both" /> [[File:Btmc03.png|500px|right]] A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and incorrectly detected). * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. <br style="clear:both" /> === Glue clothes to the body === The clothes are meshes that can be modelled directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, the next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with the same name must exist in the human mesh as well. On the human side you are more liberal with the vertex groups, i.e. you can have vertices that do not belong to any vertex group or to more then one vertex group, so these vertex groups can overlap. Only human vertices in the correct vertex group will be considered when making clothes. There are special vertex groups for teeth (see: [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]]) and rigid vertex groups beginning with '*'. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient to let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === [[File:Btmc04.png|500px|right]] If vertex groups need to be reassigned, for example because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image (above right), called "Create Vertex Groups From Selection". Selecting a cloth, the button changes to "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human it is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate only a part of the human vertices with all vertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. <br style="clear:both" /> [[File:Btmc05.png|500px|right]] Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the images (right), we can see the vertices assigned to the Mid and Left groups for a nude human. <br style="clear:both" /> === What if automatic vertex groups don't work? === Sometimes, a piece of clothing made with MakeClothes seems to work just fine&mdash;until you try it on a character not shaped exactly life the target used in MakeClothes, at which point all sorts of strange distortions may occur. Why does this happen? When you use MakeClothes, at some point you have to load a target object ("Load Human Mesh"). These come in two basic varieties, with helpers (e.g., "Average Female With [sic] Helpers") and without (e.g., "Average Female"); the obvious difference is that the "With Helpers" objects include not only the human body, but the "helpers" mentioned briefly in the previous section: they're a bunch of vertices that represent different types of clothing, and hair. Thus, just below the waist, if you examine the human mesh closely, you'll find three layers of vertices: the body itself, a tights "object" that lies just on top of the body, and a skirt "object" that conforms to the body in places, but stretches over it in others (between the legs, to be precise). For the modeler, the obvious use of these targets ("human meshes") is to fit clothes; if you use the "with Helpers" versions, you can also use the helper "objects" as templates for creating clothes (this works well for skirts or hair, but with shirts, you run into the problem that the edge loops don't coincide with where you'd want to put seams). However, the targets also serve another purpose: when you hit the "Create Vertex Groups" button and then the "Make Clothes" button, the program calculates the distance between each vertex of the item of clothing and nearest vertices in the human mesh, and then uses these relationships to deform the item of clothing when the body moves. If the vertices in the clothing are associated with vertices in the human mesh that have a very different shape, bad things tend to happen. To avoid this problem, you have to do three things before you hit "Create Vertex Groups" : # Select the human mesh, and go into "Edit" mode. Select only the vertices that make up the appropriate helper object (or in some cases, like a long coat or a dress, objects). This can be tricky to do by hand, since some objects cover others (the "Hair" object makes the upper part of the "Tights" object, which is used for shirts, especially hard to work with), and you can't just delete the stuff you don't need, since this fouls up the program. Fortunately, each helper object has a stand-in material with a different color, and there's a handy "Show Selection" button that automatically selects the most commonly used sets of vertices ("Body", "Tights", "Skirt", "Coat", and "Hair"). Doing this will eliminate a lot of the "wedgie" effect, which is due mostly to the skin-tight contours of the body itself and the tights helper in the area around the crotch. (A similar problem occurs between the breasts, with clothes sticking inside the cleavage like a rubber wetsuit, rather than stretching across the gap like most fabrics do.) # Unselect all the vertices that aren't directly underneath the clothes in question. Thus, if you're making a short skirt, not only will you not select the layers of body and tights vertices beneath the skirt helper object, but you'll make sure that skirt helper vertices that lie below your skirt's hemline (or above its waist) also aren't selected. This step eliminates some distortions (huge wrinkles, mostly) that occur for clothing whose vertices are far away from the body. # Finally, get rid of vertices in "crevices". For reasons that are not entirely clear (better understanding of the body than of clothes on the part of the sculptor, probably), the shapes of the helper objects don't correspond very well to real clothes in certain places. As mentioned above, the upper tights follow the contour of the skin between the breasts, and the lower part of the tights dips into the "crack" between the buttocks, and clings skin-tight against the area where the legs join&mdash;as if it were painted on. The skirt helper at least stretches across the space between the legs, but it, too, dips into the crack between the buttocks, rather than stretching between the buttocks like a real skirt would. Unselect the vertices in question: fortunately, they're easy to find, because they all lie at or near the center line of the human mesh (that is, points whose "X" value is 0, and which lie on the plane that divides the left and right sides of the body). You might want to substitute other points that don't lie directly beneath the clothes, but which don't dip into the crevices. This step should eliminate almost all of the wedgie effect not eliminated by step #1. === Generate the clothes file === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/v1/data/clothes, in order to be inbcluded automatically in MakeHuman. == Advanced tools == Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === [[File:Btmc06.png|right]] *Show selection. This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go to edit mode, move the mouse on a vertex and press Lkey to select the linked vertices), you can just press these buttons. <br style="clear:both" /> [[File:Btmc07.png|right]] * Show Materials. This shows a button to export the materials only. This is useful when there are no changes to the geometry, but only to the material, in order to avoid recalculating everything. * Show UV projection. This section is useful mainly for making proxy meshes. ** Recover seams. Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be a reference for marking seams for the clothing. ** Auto seams. ** Project UVs. Automatically create a UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. ** Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. <br style="clear:both" /> === Show ZDepth, Show Offset scaling === [[File:Btmc08.png|right]] * Show ZDepth. This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). ** Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and Lingerie, Socks and Stockings, Shirt and Trousers, Sweater, Indoor Jacket, Shoes and Boots, Coat, Backpack. ** Set Z depth.Set the Z depth depending on the selected depth name. ** Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be set manually for fine-tuning. <br style="clear:both" /> [[File:Btmc09.png|right]] * Show Offset scaling. The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. ** Body Part. Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. ** Examine Boundary. Select the boundary vertices with Set boundary is invoked. ** Set Boundary. Set the boundary to vertices determined by the selected body part. ** Custom Boundary. To manually set the bounday box. ** X1, X2, Y1, Y2, Z1, Z2. The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. <br style="clear:both" /> === Show Settings, Show License === [[File:Btmc10.png|right]] * Show Setting. The settings include the author name and the export path. It's possible to save and restore the settings. <br style="clear:both" /> [[File:Btmc11.png|right]]7 * Show License.This set of options are to add the author name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. ** Author. Defaults to: Unknown. ** License. Defaults to: AGPL3 ** HomePage. Defaults to: <NOWIKI>http://www.makehuman.org/ -- http://www.makehuman.org/</NOWIKI> <br style="clear:both" /> fe781d24efe0600db435a871a4a0dc45759086aa 871 731 2016-05-27T12:08:27Z Aranuvir 17 wikitext text/x-wiki MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that the clothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within your HOME/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. == Standard Tools == === Using MakeClothes addon === [[File:Btmc01.png|left]] MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. <br style="clear:both" /> <hr> [[File:Btmc02.png|500px|right]] The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: ** Base Mesh: The MakeHuman mesh without any targets applied. ** Average Male: A caucasian young male. ** Average Female: A caucasian young female. ** Average Child: A caucasian young child. ** Average Baby: A caucasian young baby. ** Base Mesh with Helpers: The MakeHuman mesh without any targets applied. ** Average Male with Helpers: A caucasian young male. ** Average Female with Helpers: A caucasian young female. ** Average Childwith Helpers: A caucasian young child. ** Average Baby with Helpers: A caucasian young baby. *Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights, etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The image (right) shows the result of pressing "Load Human Mesh", with type set to Base Mesh. <br style="clear:both" /> [[File:Btmc03.png|500px|right]] A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and incorrectly detected). * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. <br style="clear:both" /> === Glue clothes to the body === The clothes are meshes that can be modelled directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, the next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with the same name must exist in the human mesh as well. On the human side you are more liberal with the vertex groups, i.e. you can have vertices that do not belong to any vertex group or to more then one vertex group, so these vertex groups can overlap. Only human vertices in the correct vertex group will be considered when making clothes. There are special vertex groups for teeth (see: [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]]) and rigid vertex groups beginning with '*'. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient to let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === [[File:Btmc04.png|500px|right]] If vertex groups need to be reassigned, for example because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image (above right), called "Create Vertex Groups From Selection". Selecting a cloth, the button changes to "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human it is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate only a part of the human vertices with all vertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. <br style="clear:both" /> [[File:Btmc05.png|500px|right]] Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the images (right), we can see the vertices assigned to the Mid and Left groups for a nude human. <br style="clear:both" /> === Generate the clothes file === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/v1/data/clothes, in order to be inbcluded automatically in MakeHuman. == Advanced tools == Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === [[File:Btmc06.png|right]] *Show selection. This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go to edit mode, move the mouse on a vertex and press Lkey to select the linked vertices), you can just press these buttons. <br style="clear:both" /> [[File:Btmc07.png|right]] * Show Materials. This shows a button to export the materials only. This is useful when there are no changes to the geometry, but only to the material, in order to avoid recalculating everything. * Show UV projection. This section is useful mainly for making proxy meshes. ** Recover seams. Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be a reference for marking seams for the clothing. ** Auto seams. ** Project UVs. Automatically create a UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. ** Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. <br style="clear:both" /> === Show ZDepth, Show Offset scaling === [[File:Btmc08.png|right]] * Show ZDepth. This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). ** Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and Lingerie, Socks and Stockings, Shirt and Trousers, Sweater, Indoor Jacket, Shoes and Boots, Coat, Backpack. ** Set Z depth.Set the Z depth depending on the selected depth name. ** Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be set manually for fine-tuning. <br style="clear:both" /> [[File:Btmc09.png|right]] * Show Offset scaling. The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. ** Body Part. Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. ** Examine Boundary. Select the boundary vertices with Set boundary is invoked. ** Set Boundary. Set the boundary to vertices determined by the selected body part. ** Custom Boundary. To manually set the bounday box. ** X1, X2, Y1, Y2, Z1, Z2. The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. <br style="clear:both" /> === Show Settings, Show License === [[File:Btmc10.png|right]] * Show Setting. The settings include the author name and the export path. It's possible to save and restore the settings. <br style="clear:both" /> [[File:Btmc11.png|right]] * Show License.This set of options are to add the author name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. ** Author. Defaults to: Unknown. ** License. Defaults to: AGPL3 ** HomePage. Defaults to: <NOWIKI>http://www.makehuman.org/ -- http://www.makehuman.org/</NOWIKI> <br style="clear:both" /> 8d4625040b9d7ee10a6042f631bd76dcdb4811e5 731 730 2016-05-20T11:42:27Z Joepal 14 wikitext text/x-wiki MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that the clothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within your HOME/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. == Standard Tools == === Using MakeClothes addon === [[File:Btmc01.png|left]] MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. <br style="clear:both" /> <hr> [[File:Btmc02.png|500px|right]] The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: ** Base Mesh: The MakeHuman mesh without any targets applied. ** Average Male: A caucasian young male. ** Average Female: A caucasian young female. ** Average Child: A caucasian young child. ** Average Baby: A caucasian young baby. ** Base Mesh with Helpers: The MakeHuman mesh without any targets applied. ** Average Male with Helpers: A caucasian young male. ** Average Female with Helpers: A caucasian young female. ** Average Childwith Helpers: A caucasian young child. ** Average Baby with Helpers: A caucasian young baby. *Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights, etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The image (right) shows the result of pressing "Load Human Mesh", with type set to Base Mesh. <br style="clear:both" /> [[File:Btmc03.png|500px|right]] A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and incorrectly detected). * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. <br style="clear:both" /> === Glue clothes to the body === The clothes are meshes that can be modelled directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, the next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with the same name must exist in the human mesh as well. Only human vertices in the correct vertex group will be considered when making clothes. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient to let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === [[File:Btmc04.png|500px|right]] If vertex groups need to be reassigned, for example because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image (above right), called "Create Vertex Groups From Selection". Selecting a cloth, the button changes to "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human it is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate only a part of the human vertices with all vertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. <br style="clear:both" /> [[File:Btmc05.png|500px|right]] Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the images (right), we can see the vertices assigned to the Mid and Left groups for a nude human. <br style="clear:both" /> === Generate the clothes file === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/v1/data/clothes, in order to be inbcluded automatically in MakeHuman. == Advanced tools == Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === [[File:Btmc06.png|right]] *Show selection. This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go to edit mode, move the mouse on a vertex and press Lkey to select the linked vertices), you can just press these buttons. <br style="clear:both" /> [[File:Btmc07.png|right]] * Show Materials. This shows a button to export the materials only. This is useful when there are no changes to the geometry, but only to the material, in order to avoid recalculating everything. * Show UV projection. This section is useful mainly for making proxy meshes. ** Recover seams. Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be a reference for marking seams for the clothing. ** Auto seams. ** Project UVs. Automatically create a UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. ** Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. <br style="clear:both" /> === Show ZDepth, Show Offset scaling === [[File:Btmc08.png|right]] * Show ZDepth. This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). ** Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and Lingerie, Socks and Stockings, Shirt and Trousers, Sweater, Indoor Jacket, Shoes and Boots, Coat, Backpack. ** Set Z depth.Set the Z depth depending on the selected depth name. ** Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be set manually for fine-tuning. <br style="clear:both" /> [[File:Btmc09.png|right]] * Show Offset scaling. The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. ** Body Part. Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. ** Examine Boundary. Select the boundary vertices with Set boundary is invoked. ** Set Boundary. Set the boundary to vertices determined by the selected body part. ** Custom Boundary. To manually set the bounday box. ** X1, X2, Y1, Y2, Z1, Z2. The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. <br style="clear:both" /> === Show Settings, Show License === [[File:Btmc10.png|right]] * Show Setting. The settings include the author name and the export path. It's possible to save and restore the settings. <br style="clear:both" /> [[File:Btmc11.png|right]] * Show License.This set of options are to add the author name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. ** Author. Defaults to: Unknown. ** License. Defaults to: AGPL3 ** HomePage. Defaults to: <NOWIKI>http://www.makehuman.org/ -- http://www.makehuman.org/</NOWIKI> <br style="clear:both" /> 60d8ab20f1fc331341a4c348d49c6fd718624db5 730 710 2016-05-20T11:42:10Z Joepal 14 wikitext text/x-wiki {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:0.5em;"| '''Note:''' This document relates to MakeHuman version 1.1.0, currently only available as a nightly build. |} MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that the clothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within your HOME/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. == Standard Tools == === Using MakeClothes addon === [[File:Btmc01.png|left]] MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. <br style="clear:both" /> <hr> [[File:Btmc02.png|500px|right]] The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: ** Base Mesh: The MakeHuman mesh without any targets applied. ** Average Male: A caucasian young male. ** Average Female: A caucasian young female. ** Average Child: A caucasian young child. ** Average Baby: A caucasian young baby. ** Base Mesh with Helpers: The MakeHuman mesh without any targets applied. ** Average Male with Helpers: A caucasian young male. ** Average Female with Helpers: A caucasian young female. ** Average Childwith Helpers: A caucasian young child. ** Average Baby with Helpers: A caucasian young baby. *Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights, etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The image (right) shows the result of pressing "Load Human Mesh", with type set to Base Mesh. <br style="clear:both" /> [[File:Btmc03.png|500px|right]] A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and incorrectly detected). * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. <br style="clear:both" /> === Glue clothes to the body === The clothes are meshes that can be modelled directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, the next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with the same name must exist in the human mesh as well. Only human vertices in the correct vertex group will be considered when making clothes. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient to let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === [[File:Btmc04.png|500px|right]] If vertex groups need to be reassigned, for example because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image (above right), called "Create Vertex Groups From Selection". Selecting a cloth, the button changes to "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human it is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate only a part of the human vertices with all vertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. <br style="clear:both" /> [[File:Btmc05.png|500px|right]] Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the images (right), we can see the vertices assigned to the Mid and Left groups for a nude human. <br style="clear:both" /> === Generate the clothes file === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/v1/data/clothes, in order to be inbcluded automatically in MakeHuman. == Advanced tools == Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === [[File:Btmc06.png|right]] *Show selection. This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go to edit mode, move the mouse on a vertex and press Lkey to select the linked vertices), you can just press these buttons. <br style="clear:both" /> [[File:Btmc07.png|right]] * Show Materials. This shows a button to export the materials only. This is useful when there are no changes to the geometry, but only to the material, in order to avoid recalculating everything. * Show UV projection. This section is useful mainly for making proxy meshes. ** Recover seams. Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be a reference for marking seams for the clothing. ** Auto seams. ** Project UVs. Automatically create a UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. ** Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. <br style="clear:both" /> === Show ZDepth, Show Offset scaling === [[File:Btmc08.png|right]] * Show ZDepth. This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). ** Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and Lingerie, Socks and Stockings, Shirt and Trousers, Sweater, Indoor Jacket, Shoes and Boots, Coat, Backpack. ** Set Z depth.Set the Z depth depending on the selected depth name. ** Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be set manually for fine-tuning. <br style="clear:both" /> [[File:Btmc09.png|right]] * Show Offset scaling. The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. ** Body Part. Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. ** Examine Boundary. Select the boundary vertices with Set boundary is invoked. ** Set Boundary. Set the boundary to vertices determined by the selected body part. ** Custom Boundary. To manually set the bounday box. ** X1, X2, Y1, Y2, Z1, Z2. The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. <br style="clear:both" /> === Show Settings, Show License === [[File:Btmc10.png|right]] * Show Setting. The settings include the author name and the export path. It's possible to save and restore the settings. <br style="clear:both" /> [[File:Btmc11.png|right]] * Show License.This set of options are to add the author name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. ** Author. Defaults to: Unknown. ** License. Defaults to: AGPL3 ** HomePage. Defaults to: <NOWIKI>http://www.makehuman.org/ -- http://www.makehuman.org/</NOWIKI> <br style="clear:both" /> a9666c726150ba13525d7dda6a4cc70afb8428e8 710 704 2016-05-20T11:21:46Z Joepal 14 wikitext text/x-wiki MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that theclothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within %USER%/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. === Using MakeClothes addon === MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. !IMAGE!Pictures/mc2-010-main.png!/IMAGE! The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: * Base Mesh: The MakeHuman mesh without any targets applied. * Average Male: A caucasian young male. * Average Female: A caucasian young female. * Average Child: A caucasian young child. * Average Baby: A caucasian young baby. * Base Mesh with Helpers: The MakeHuman mesh without any targets applied. * Average Male with Helpers: A caucasian young male. * Average Female with Helpers: A caucasian young female. * Average Childwith Helpers: A caucasian young child. * Average Baby with Helpers: A caucasian young baby. * Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The picture below shows the result of pressing "Load Human Mesh", with type set to Base Mesh. !IMAGE!Pictures/mc2-011-main_0.png!/IMAGE! A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and wrongly detected as a human item) * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. !IMAGE!Pictures/makeclothes03.png!/IMAGE! === Glue clothes to the body === The clothes are meshes that be done directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with thesame namemust exist in the human mesh as well. Only human vertices in the correct vertex group will be considered when making clothes. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === If vertex groups need to be reassigned, e.g. because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image above, called "Create Vertex Groups From Selection". Selecting a cloth, the button change in "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate onlya partof the human vertices withallvertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the image below, vertices assigned to the Mid and Left groups for a nude human. !IMAGE!Pictures/auto-vert.png!/IMAGE! === Generate the clothes file. === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/a8/data/clothes, in order to be inbcluded automatically in MakeHuman. ==== Advanced tools ==== Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === !IMAGE!Pictures/options-01.png!/IMAGE! Show selection.This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go in edit mode, move the mous on a vert and press Lkey to select the linked vertices), you can just press these buttons. Show Materials. This will show a button to export the materials only. It's useful in case there are not changes on geometry, but only on the material, in order to avoid to recompute all. Show UV projection.This section is useful mainly for making proxy meshes. * Recover seams.Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be reference for marking seams for the clothing. * Auto seams. * Project UVs.Automatically create an UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. * Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. === Show ZDepth, Show Offset scaling === !IMAGE!Pictures/options-02_0.png!/IMAGE! Show ZDepth.This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). * Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and lingerie, Socks and stockings, Shirt and trousers, Sweater, Indoor jacket, Shoes and boots, Coat, Backpack. * Set Z depth.Set the Z depth depending on the selected depth name. * Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be dialledmanually for fine-tuning. Show Offset scaling.The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. * Body part.Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. * Examine.Select the boundary vertices with Set boundary is invoked. * Set boundary.Set the boundary to vertices determined by the selected body part. * Custom Boundary.To manually set the bounday box. * X1, X2, Y1, Y2, Z1, Z2.The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. === Show Setting, Show License === !IMAGE!Pictures/options-03.png!/IMAGE! Show Setting.The setting include the author name and the export path. It's possible to save and restore the settings. Show License.This set of options are to add theauthor name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. * Author. Defaults to: Unknown. * License. Defaults to: AGPL3 * HomePage. Defaults to:!LINK!http://www.makehuman.org/ -- http://www.makehuman.org/!/LINK! === MHBlenderTools: MakeClothes rigid fitting === The standard clothes fitting algorithm is suitable for flexible clothes, especially clothes that follow the body closely. However, is does not work well for rigid objects like shoes, Therefore, MakeClothes has a variant suitable for rigid shoes. Rigid fitting is used on a vertex group basis, so rigid and flexible fitting can be mixed in the same piece of clothing. Rigid fitting is used for every vertex group whose name starts with a '*'. Each such vertex group in the human must contain exactly three vertices, that determine the triangle used for fitting in this group. !IMAGE!Pictures/rf-100-orig.png!/IMAGE! The use of rigid vertex groups is best explained by an example. Consider a pair of shoes, which is a rigid object. We used the standard MakeClothes settings and an adult human with the original shoe to the left. Then the mhclo file was loaded onto a baby, with the result to the right. The shoe is recognizable but it has been deformed in an undesirable way. However, even though the quality of the fitting is poor, make sure to save the mhclo file, because we will need it at the end of this tutorial. !IMAGE!Pictures/rf-110-projection.png!/IMAGE! Each clothing vertex v is associated with a triangle t in the human mesh, i.e. three human vertices v1, v2, v3. Letrdenote the location of v andr1,r2,r3the locations of the corners of the triangle. Further, let d be the perpendicular distance from the clothes vertex to the plane spanned by the triangle. MakeClothes assigns three weights w1, w2, w3, such that r= w1r1+ w2r2+ w3r3+d, where the sum of weights w1+ w2+ w3= 1. When the clothing is loaded onto a different character, the new location becomes r'= w1r'1+ w2r'2+ w3r'3+d', wherer'1,r'2,r'3are the locations of the three human vertices in the new character, and d' = Sd= (sxdx, sydy, szdz) is obtained from the original offsetdby inhomogeneous global scaling with the diagonal scale matrix S = diag(sx, sy, sz). The important observation is that the quality of the fitting depends crucially on the chosen triangle, i.e. the triple of human vertices the determines the clothes vertex location. The standard choice is to choose the human triangle closest to to clothing vertex. In rigid fitting the triangle is the same for all vertices, and is defined by the tree vertices in the vertex group. !IMAGE!Pictures/rf-120-vgroups.png!/IMAGE! Here we see the vertex groups used to fit the left shoe. The standard vertex group Left consists of all vertices close to the left shoe, in the tights helper. On the other hand, the rigid vertex group *Left only contains three vertices that define the single triangle used for all clothes vertices in this group. !IMAGE!Pictures/rf-130-triangles.png!/IMAGE! The next illustration shows the corresponding triangles used for fitting. The Left group uses many triangles obtained by triangulating the corresponding faces. Different shoe vertices are associated with triangles that are transformed differently, and the rigid character of the shoe is lost. The *Left group only has one single triangle, with corners at the three vertices in the vertex group. The same triangle is used by all left shoe vertices. !IMAGE!Pictures/rf-140-rename-vgroups.png!/IMAGE! Once the human vertex groups have been defined, we proceed with clothes-making. Rename the shoe vertex groups to *Left and *Right, to make the shoes use rigid fitting. Recall that the human can have several overlapping vertex groups, but in a piece of clothing each vertex must belong to exactly one group. !IMAGE!Pictures/rf-150-offset-scaling.png!/IMAGE! Next we open the Offset Scaling section and select Foot as the body part. In flexible fitting, the offsets are usually very small, and selecting the correct body part is not so important. In contrast, this step is very important in rigid fitting, because many vertices are far away from their triangles and the offsets must be scaled correctly. Press Examing Boundary for a visual inspection of which vertices define the global scale matrix.. !IMAGE!Pictures/rf-160-baby-shoes.png!/IMAGE! This picture shows the shoe loaded on a baby, using flexible fitting (blue) and rigid fitting (red). Rigid fitting clearly maintains the shape of the shoe much better. However, one problem remains: bone weighting. Start up MakeHuman and load the shoes under the Geometries > Clothes tab. Export the character with a rig in one of the formats that allows that, e.g. mhx, and import the character into Blender. Now try to pose the feet. As we see in the picture below, the shoe does not follow the foot but is squashed or stretched in strange ways. !IMAGE!Pictures/rf-170-bad-deformation.png!/IMAGE! The reason is that rigid fitting affects the bone weights as well as the vertex locations. The bone weights are interpolated between the three corners of the triangle, rather than using the information from the entire foot. To correct this we need to use two different associations between clothes and human vertices: rigid fitting for vertex locations, but flexible fitting for bone weights. Fortunately, MakeHuman can handle this situation, although there is currently no elegant interface for it in MakeClothes. In a text editor, open the mhclo file obtained by standard fitting in the beginning of this tutotial (this is why you needed to save it), and copy everything after the line verts 0 to the end of the new mhclo file obtained by rigid fitting. Before the copied section, insert the line weighting_verts Export the shoes again from MakeHuman and import into Blender. The shoes should now both maintain their rigid shape and deform correctly. !IMAGE!Pictures/rf-190-good-deformation.png!/IMAGE! Due to an unfortunate behavior in MakeHuman, it is possible that the updated mhclo file is not loaded after it has replaced the old one. This is because MakeHuman automatically compiles mhclo and obj files when loaded, so they can be loaded faster next time. Although this behavior is convenient for ordinary users, it is very confusing and frustrating for clothes makers. If MakeHuman insists on loading old versions of your clothes, you may need to delete the compiled files (*.mhpxy and *.npz), or restart MakeHuman, or both. After the compiled files are gone, the updated clothes should load without problems. !IMAGE!Pictures/rf-180-compiled-files.png!/IMAGE! 3c6bab42ee488f90f30558cea013c34a897d84e4 704 2016-05-20T11:10:12Z Joepal 14 Created page with "MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique tha..." wikitext text/x-wiki MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that theclothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within %USER%/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. === Using MakeClothes addon === MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. !IMAGE!Pictures/mc2-010-main.png!/IMAGE! The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: * Base Mesh: The MakeHuman mesh without any targets applied. * Average Male: A caucasian young male. * Average Female: A caucasian young female. * Average Child: A caucasian young child. * Average Baby: A caucasian young baby. * Base Mesh with Helpers: The MakeHuman mesh without any targets applied. * Average Male with Helpers: A caucasian young male. * Average Female with Helpers: A caucasian young female. * Average Childwith Helpers: A caucasian young child. * Average Baby with Helpers: A caucasian young baby. * Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The picture below shows the result of pressing "Load Human Mesh", with type set to Base Mesh. !IMAGE!Pictures/mc2-011-main_0.png!/IMAGE! A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and wrongly detected as a human item) * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. !IMAGE!Pictures/makeclothes03.png!/IMAGE! === Glue clothes to the body === The clothes are meshes that be done directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with thesame namemust exist in the human mesh as well. Only human vertices in the correct vertex group will be considered when making clothes. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === If vertex groups need to be reassigned, e.g. because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image above, called "Create Vertex Groups From Selection". Selecting a cloth, the button change in "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate onlya partof the human vertices withallvertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the image below, vertices assigned to the Mid and Left groups for a nude human. !IMAGE!Pictures/auto-vert.png!/IMAGE! === Generate the clothes file. === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/a8/data/clothes, in order to be inbcluded automatically in MakeHuman. ==== Advanced tools ==== Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === !IMAGE!Pictures/options-01.png!/IMAGE! Show selection.This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go in edit mode, move the mous on a vert and press Lkey to select the linked vertices), you can just press these buttons. Show Materials. This will show a button to export the materials only. It's useful in case there are not changes on geometry, but only on the material, in order to avoid to recompute all. Show UV projection.This section is useful mainly for making proxy meshes. * Recover seams.Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be reference for marking seams for the clothing. * Auto seams. * Project UVs.Automatically create an UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. * Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. === Show ZDepth, Show Offset scaling === !IMAGE!Pictures/options-02_0.png!/IMAGE! Show ZDepth.This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). * Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and lingerie, Socks and stockings, Shirt and trousers, Sweater, Indoor jacket, Shoes and boots, Coat, Backpack. * Set Z depth.Set the Z depth depending on the selected depth name. * Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be dialledmanually for fine-tuning. Show Offset scaling.The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. * Body part.Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. * Examine.Select the boundary vertices with Set boundary is invoked. * Set boundary.Set the boundary to vertices determined by the selected body part. * Custom Boundary.To manually set the bounday box. * X1, X2, Y1, Y2, Z1, Z2.The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. === Show Setting, Show License === !IMAGE!Pictures/options-03.png!/IMAGE! Show Setting.The setting include the author name and the export path. It's possible to save and restore the settings. Show License.This set of options are to add theauthor name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. * Author. Defaults to: Unknown. * License. Defaults to: AGPL3 * HomePage. Defaults to:!LINK!http://www.makehuman.org/ -- http://www.makehuman.org/!/LINK! 0a17229d372d897a679e47d7a13c5323f218b5a1 Documentation:ClothesV2 3000 641 1949 1933 2020-11-15T14:45:32Z Punkduck 38 wikitext text/x-wiki = Makeclothes Version 2 = [[File:makeclothestitle.jpg]] MakeClothes2 is used to create clothes for MakeHuman characters. It could be installed as a single plugin, but at least MakeSkin should be used, if the creation of material is also part of your work. Furthermore it is able to work with the human base mesh provided by MPFB. The term "clothes" is not really correct, the program creates any kind of mesh which can be used for a character generated by MakeHuman. This also includes hair and different tongue or a new topology for the skin. To use MakeClothes in Blender knowledge of Blender itself is needed. == Notation == To understand the process, a short summary of terms used in MakeHuman: * '''base mesh''' and '''helper mesh''': The base mesh is the standard body mesh including a helper-mesh used in MakeHuman. ([[Documentation:Basemesh|detailed information]]) * '''proxies''': in a way all meshes projected on the body are proxies. Do differentiate between a piece of cloth and an alternative mesh for the skin, the alternative mesh is called a '''topology'''. * '''topologies''': special case for a proxy used as a mesh for the skin. Typically used for e.g. a different resolution or to add genitals. * '''smoothing''': MakeHuman may use smoothing on a base mesh. This results in a mesh with 4 times as many vertices. <u>This mesh cannot be used for MakeClothes.</u> * '''clothes''': clothes will be all meshes MakeClothes is able to create. Hair and body proxies included. * '''posing''': the standard "unposed" base mesh is presented in an A-Pose. Other poses are T-Pose or a pose which is user generated. Typically these poses are created with the standard skeleton. Shapekeys can be used as a special pose too. * '''weighting''': when a character is posed the skin but also the clothes should follow the bones. So weights are added to each vertex. These weights determine how much a bone will be followed. MakeClothes uses a similar construction, since the clothes follow vertices on the helper or base mesh. [[File:Mc2_meshes_to_use.png]] Only base mesh and helper can be used to create clothes. == Limits == Makeclothes has certain limits according to the internal structure of MakeHuman * The mesh for the clothes can either be done with quads or with triangles. No mixture allowed. Advantage for quads is a smoother design with a later usage of subdivision surface algorithm (smoothing). Triangles are normally used for e.g. sculpting or when you work with 3rd party meshes. * only one material for one item of clothing is allowed in MakeHuman * each vertex of an item of clothing uses 3 vertices on body or helper to find its position according to the human created in MakeHuman * each vertex of an item of clothing needs to be in one (and only one) vertex group. A group of the same name must be created on the human * it is possible to create more than one item of clothing with one human * only one human is allowed when clothes are created. So only one object is "marked as human". However, if you need more than one base mesh, all others can be marked as clothes [[File:Mc2_makeclothes2.png|right]] == How to load a human == MakeHuman uses a mesh called hm08. Makeclothes is prepared to deal with other meshes as well for future versions. When the mesh is changed it must be changed in MakeHuman as well. So this documentation will only consider the hm08 base mesh. To create clothes you can create them directly on the body or on the helper mesh. For underwear the nude body is best choice, but for a coat the helper mesh will be used. A good method for e.g. a skirt or coat is to design the piece of cloth on the nude body and then use the helper mesh for weighting in the end. There are currently a few possibilities to load a human. The simplest way is to load a predefined one or to use MPFB, both have some vertex-groups assigned: * '''Load a predefined human''' The easiest way directly supported by MakeClothes is to work with the predefined meshes. MakeClothes contains 2 Blend-files which are placed in the "humans" sub-directory of the plugin (male.blend and female.blend). When MakeClothes starts, these blend-files are scanned once and names of the objects starting with "mh_" are presented in a menu. To work with it, select a mesh and press "Import predefined human" button. [[File:Mc2_loadpredef.png]] In case of a helper mesh, the parts of the mesh are assigned to different vertex-groups to allow an easy selection and use different colors. After the mesh is loaded these buttons disappear, because one human is already loaded. The loaded mesh is automatically marked as a human. To load another human either delete the human or mark your human as clothes. * '''Load the human via MPFB''' Makehuman Plugin for Blender also can provide a base mesh. Be aware that the best base is an unmodified male or female mesh, because the clothes will fit most of the characters. Do not use alternative topologies in MakeHuman. If you import an human this is already the base mesh. It can be done easily by doing these steps: [[File:Mc2_loadhumanmfb.png]] The default preset of MakeClothes inside MPFB will mask the helper. It is possible, to switch the masking on or off. To do that, press the button marked in the illustration: [[File:Mc2_togglehelper.png]] Typically the helper will be switched off, when the clothes are modelled. When you assign the vertex groups you should switch it on, because it makes sense to use groups on the helper for the weighting. It is possible to extract clothes from the helper (even when masked) as long as it is not deleted. * '''Load normal base.obj file''' This is the way using the predefined base.obj file which can be downloaded from github. MakeClothes reads the wavefront file. Vertex groups are created according to the .obj file. Disadvantage: this mesh is neither male nor female. An exported wavefront mesh made by MakeHuman can be used as well (no alternative topology such as male muscled mesh, do not use smoothing and delete the extra eyes). It is possible to export it including the helpers. Unfortunately it has no vertex groups assigned. This must be done in Blender later. * '''Load an mhx2 file''' The body (no alternative topology, do not use smoothing and delete the extra eyes) used by mhx2 export can also be used as a base mesh. When you load it you have to select Override Exported Data and the mark Helper Geometry before importing it. * '''Delete helpers''' If a mesh is loaded and the helpers are not needed, the helpers can be deleted. In this case a vertex-group "body" is expected, all vertices belonging to other groups are deleted. If body is not available, nothing will be done. == Tell MakeClothes the type of the object == [[File:Mc2_customprops.png|right]] To create clothes, one object must be marked as human and at least one as clothes. If you work with more than one human, all others must be marked as clothes temporarily. When you mark one object as human a previously marked human will automatically be marked as clothes. The custom properties of the object will hold this information. == Create simple clothes (extract from helper) == If a helper mesh is available it is possible to use this helper as a basis for the clothes. Especially for beginners (but also for the advanced for a good weighting) this could be helpful. [[File:MC2_extract_helpers.png]] The normal way would be to extract either "Tights" or "Skirt". Extract means that a copy of a helper part is prepared for your work. The second step would then be to modify this geometry for your own purposes. == Assign vertex-groups == Vertex-groups are a number of vertices of a mesh forming a group with vertex-group name. These groups are used to determine relations between e.g. vertices on the body and vertices on an item of clothing. The simplest way would be: * create a group "clothing" on the human * assign all vertices of the human to this group * create a group "clothing" on your item of clothing * assign all vertices of the item of clothing to this group This might work, but it is not a good way. There are many risks. So here are examples from some of the assets I did: [[Documentation:MakeClothes Vertex-Groups|Create vertex-groups]] == Test the human mesh == The human loaded with one of the methods usually should not have problems. Nevertheless there is a small test available to check the human. This test is also automatically done when clothes are created. * the number of human objects must be one * there must be one vertex group on the human * no vertex belongs to an non-existing group [[File:Mc2_checkhuman.png]] == Test the clothes == Clothes need a bit more testing. * clothes should not have stray geometry. These are single vertices or edges. If this problem appears, change into edit mode. The vertices are pre-selected. Simply delete them or change geometry otherwise. * maximum number of vertices per face is 4. If you have more than this, these faces are selected and must be changed. * clothes can be quad or triangle meshes. A mixture is not allowed. The process assumes a mesh type and selects the faces to be changed. * the process tests if at least one vertex group is available * all vertices must belong to one vertex group. Vertices belonging to no group are selected and can be changed in edit mode. * all vertices must belong to only one vertex group. Vertices belonging to more than one group are selected and can be changed in edit mode. * no vertex belongs to an non-existing group * a test is done, how many edges belong to one vertex. Typically quad meshes with a low pole-count will have better geometric qualities. This is only a warning. The vertices with more than 8 neighbor vertices will be selected and can be changed in edit mode. [[File:Mc2_checkclothes.png]] == Common settings == The common settings will provide the '''license''' and the name of the '''author''', which will be used for all the clothes generated with this file. * '''Overwrite existing files''' is switched off. The name of the item of clothing is used as a filename. If it is necessary to overwrite an existing object, the box must be marked. * '''Modifiers are allowed'''. Typically the mirror modifier may make sense. Be careful with e.g. subdivision surface, because it may produce a huge number of vertices. When the clothes should be designed with subdivision surface but created without, switch off "Allow Modifiers" == Produce clothes == The main features of creating clothes are: * '''name''': this is the name of the item of clothing, also the filename * '''comment''': a short optional description * '''tags''': a list of predefined and own tags as a search criteria for MakeHuman [[File:Mc2_tagselector.png]] * '''zdepth''': determines the order of clothes. Lower values are used for clothes near the body, higher values for parts far away. This will be used to hide clothes near the body. A rule of thumb is to start with underwear at 31; normal clothes (pants, t-shirt, shoes) use a default value of 50 and clothes like a coat usually use high values like 63. The following illustration shows the effect for a character equipped with ballet clothes. It also demonstrates what is happening when all values are equal. [[File:Mc2_zdepth.png]] * '''scaling''': select the part of the body which is important for the scaling. Most likely torso for a t-shirt, head for a hat etc. * '''delete-group''': it is a good method to delete vertices on the body if clothes are not transparent. This avoids bleeding through, that is, that vertices that should be "inside" suddenly appear outside of the clothes (see: [[Documentation:MakeClothes Delete-Groups|use delete-groups]]). All vertices not to be displayed should be selected on the body (not helper) and assigned to a vertex on the human. The name of this group must be inserted in the box. If more than one piece of cloth is created, they all can have a different delete-group on the same human. * '''use MakeSkin''': without MakeSkin a simple material is saved for the piece of cloth (white base color). Otherwise the material file of the plugin [[Documentation:MaterialsMakeSkin|MakeSkin]] is used. See "Materials" below. * '''subdir''': the directory inside where the clothes will be created. == Materials == Most of the clothes will need a texture. Before the texture can be used the piece of cloth must be unwrapped. The best way is to create seams in Blender where the real seams are. Unwrap the clothes in any case. The output of this process is a UV-Map, which will be used to determine the coordinates of each vertex on the texture. If the simple standard material should not be used for export, a material can be attached with [[Documentation:MaterialsMakeSkin|MakeSkin]] [[Documentation:Modeling Clothes#Texturing the clothes|Some methods to texture clothes you will find here]]. == Create the clothes == The last step to create clothes is to select the item of clothing and press produce clothes. The tests "check clothes" and "check human" are processed and also an additional test about matching vertex groups is done. If everything is okay, the clothes can be loaded in MakeHuman. This is not the documentation of how to model geometries for clothes and not every one will be happy with simple way to copy the helper meshes and create clothes directly. [[Documentation:Modeling Clothes|Some different methods to create clothes you will find here.]] == Usage of shape keys and targets, create heels == A special female body with shape keys is added as a predefined mesh to allow creation of heels. For advanced users: [[Documentation:CreateHeels|this is the way it works]] == Importing existing clothes == It is possible to load an existing mhclo-file from the data folder of MakeHuman. It's best to load the human mesh before, if you want to change geometry. The clothes will also fit to a different body, but in this case they will not look as good as on the body they were made for. But the advantage is that, e.g., clothes created for males can be used as a base for a female version. When clothes are imported, most of fields are filled in by the process and the delete-group is marked on the human (in case a human is available). The material is also loaded, when MakeSkin is available. The illustration shows the result of the import of the "lace_up_blouse". A material called "lace_up_blouse" was created in blender. All available information is imported and displayed. This includes the special parameters only used in MakeHuman (Backface culling, Transparent, LitSphere etc.). So also the material setup could be used for a new item of clothing. [[File:Mc2_importclothes.png]] 9f7700db55b9ac882d09b47d717d2401119aa4ee 1933 1886 2020-11-14T19:55:28Z Punkduck 38 wikitext text/x-wiki Caution: this file is still under construction :) = Makeclothes Version 2 = [[File:makeclothestitle.jpg]] MakeClothes2 is used to create clothes for MakeHuman characters. It could be installed as a single plugin, but at least MakeSkin should be used, if the creation of material is also part of your work. Furthermore it is able to work with the human base mesh provided by MPFB. The term "clothes" is not really correct, the program creates any kind of mesh which can be used for a character generated by MakeHuman. This also includes hair and different tongue or a new topology for the skin. To use MakeClothes in Blender knowledge of Blender itself is needed. == Notation == To understand the process, a short summary of terms used in MakeHuman: * '''base mesh''' and '''helper mesh''': The base mesh is the standard body mesh including a helper-mesh used in MakeHuman. ([[Documentation:Basemesh|detailed information]]) * '''proxies''': in a way all meshes projected on the body are proxies. Do differentiate between a piece of cloth and an alternative mesh for the skin, the alternative mesh is called a '''topology'''. * '''topologies''': special case for a proxy used as a mesh for the skin. Typically used for e.g. a different resolution or to add genitals. * '''smoothing''': MakeHuman may use smoothing on a base mesh. This results in a mesh with 4 times as many vertices. <u>This mesh cannot be used for MakeClothes.</u> * '''clothes''': clothes will be all meshes MakeClothes is able to create. Hair and body proxies included. * '''posing''': the standard "unposed" base mesh is presented in an A-Pose. Other poses are T-Pose or a pose which is user generated. Typically these poses are created with the standard skeleton. Shapekeys can be used as a special pose too. * '''weighting''': when a character is posed the skin but also the clothes should follow the bones. So weights are added to each vertex. These weights determine how much a bone will be followed. MakeClothes uses a similar construction, since the clothes follow vertices on the helper or base mesh. [[File:Mc2_meshes_to_use.png]] Only base mesh and helper can be used to create clothes. == Limits == Makeclothes has certain limits according to the internal structure of MakeHuman * The mesh for the clothes can either be done with quads or with triangles. No mixture allowed. Advantage for quads is a smoother design with a later usage of subdivision surface algorithm (smoothing). Triangles are normally used for e.g. sculpting or when you work with 3rd party meshes. * only one material for one item of clothing is allowed in MakeHuman * each vertex of an item of clothing uses 3 vertices on body or helper to find its position according to the human created in MakeHuman * each vertex of an item of clothing needs to be in one (and only one) vertex group. A group of the same name must be created on the human * it is possible to create more than one item of clothing with one human * only one human is allowed when clothes are created. So only one object is "marked as human". However, if you need more than one base mesh, all others can be marked as clothes [[File:Mc2_makeclothes2.png|right]] == How to load a human == MakeHuman uses a mesh called hm08. Makeclothes is prepared to deal with other meshes as well for future versions. When the mesh is changed it must be changed in MakeHuman as well. So this documentation will only consider the hm08 base mesh. To create clothes you can create them directly on the body or on the helper mesh. For underwear the nude body is best choice, but for a coat the helper mesh will be used. A good method for e.g. a skirt or coat is to design the piece of cloth on the nude body and then use the helper mesh for weighting in the end. There are currently a few possibilities to load a human. The simplest way is to load a predefined one or to use MPFB, both have some vertex-groups assigned: * '''Load a predefined human''' The easiest way directly supported by MakeClothes is to work with the predefined meshes. MakeClothes contains 2 Blend-files which are placed in the "humans" sub-directory of the plugin (male.blend and female.blend). When MakeClothes starts, these blend-files are scanned once and names of the objects starting with "mh_" are presented in a menu. To work with it, select a mesh and press "Import predefined human" button. [[File:Mc2_loadpredef.png]] In case of a helper mesh, the parts of the mesh are assigned to different vertex-groups to allow an easy selection and use different colors. After the mesh is loaded these buttons disappear, because one human is already loaded. The loaded mesh is automatically marked as a human. To load another human either delete the human or mark your human as clothes. * '''Load the human via MPFB''' Makehuman Plugin for Blender also can provide a base mesh. Be aware that the best base is an unmodified male or female mesh, because the clothes will fit most of the characters. Do not use alternative topologies in MakeHuman. If you import an human this is already the base mesh. It can be done easily by doing these steps: [[File:Mc2_loadhumanmfb.png]] The default preset of MakeClothes inside MPFB will mask the helper. It is possible, to switch the masking on or off. To do that, press the button marked in the illustration: [[File:Mc2_togglehelper.png]] Typically the helper will be switched off, when the clothes are modelled. When you assign the vertex groups you should switch it on, because it makes sense to use groups on the helper for the weighting. It is possible to extract clothes from the helper (even when masked) as long as it is not deleted. * '''Load normal base.obj file''' This is the way using the predefined base.obj file which can be downloaded from github. MakeClothes reads the wavefront file. Vertex groups are created according to the .obj file. Disadvantage: this mesh is neither male nor female. An exported wavefront mesh made by MakeHuman can be used as well (no alternative topology such as male muscled mesh, do not use smoothing and delete the extra eyes). It is possible to export it including the helpers. Unfortunately it has no vertex groups assigned. This must be done in Blender later. * '''Load an mhx2 file''' The body (no alternative topology, do not use smoothing and delete the extra eyes) used by mhx2 export can also be used as a base mesh. When you load it you have to select Override Exported Data and the mark Helper Geometry before importing it. * '''Delete helpers''' If a mesh is loaded and the helpers are not needed, the helpers can be deleted. In this case a vertex-group "body" is expected, all vertices belonging to other groups are deleted. If body is not available, nothing will be done. == Tell MakeClothes the type of the object == [[File:Mc2_customprops.png|right]] To create clothes, one object must be marked as human and at least one as clothes. If you work with more than one human, all others must be marked as clothes temporarily. When you mark one object as human a previously marked human will automatically be marked as clothes. The custom properties of the object will hold this information. == Create simple clothes (extract from helper) == If a helper mesh is available it is possible to use this helper as a basis for the clothes. Especially for beginners (but also for the advanced for a good weighting) this could be helpful. [[File:MC2_extract_helpers.png]] The normal way would be to extract either "Tights" or "Skirt". Extract means that a copy of a helper part is prepared for your work. The second step would then be to modify this geometry for your own purposes. == Assign vertex-groups == Vertex-groups are a number of vertices of a mesh forming a group with vertex-group name. These groups are used to determine relations between e.g. vertices on the body and vertices on an item of clothing. The simplest way would be: * create a group "clothing" on the human * assign all vertices of the human to this group * create a group "clothing" on your item of clothing * assign all vertices of the item of clothing to this group This might work, but it is not a good way. There are many risks. So here are examples from some of the assets I did: [[Documentation:MakeClothes Vertex-Groups|Create vertex-groups]] == Test the human mesh == The human loaded with one of the methods usually should not have problems. Nevertheless there is a small test available to check the human. This test is also automatically done when clothes are created. * the number of human objects must be one * there must be one vertex group on the human * no vertex belongs to an non-existing group [[File:Mc2_checkhuman.png]] == Test the clothes == Clothes need a bit more testing. * clothes should not have stray geometry. These are single vertices or edges. If this problem appears, change into edit mode. The vertices are pre-selected. Simply delete them or change geometry otherwise. * maximum number of vertices per face is 4. If you have more than this, these faces are selected and must be changed. * clothes can be quad or triangle meshes. A mixture is not allowed. The process assumes a mesh type and selects the faces to be changed. * the process tests if at least one vertex group is available * all vertices must belong to one vertex group. Vertices belonging to no group are selected and can be changed in edit mode. * all vertices must belong to only one vertex group. Vertices belonging to more than one group are selected and can be changed in edit mode. * no vertex belongs to an non-existing group * a test is done, how many edges belong to one vertex. Typically quad meshes with a low pole-count will have better geometric qualities. This is only a warning. The vertices with more than 8 neighbor vertices will be selected and can be changed in edit mode. [[File:Mc2_checkclothes.png]] == Common settings == The common settings will provide the '''license''' and the name of the '''author''', which will be used for all the clothes generated with this file. * '''Overwrite existing files''' is switched off. The name of the item of clothing is used as a filename. If it is necessary to overwrite an existing object, the box must be marked. * '''Modifiers are allowed'''. Typically the mirror modifier may make sense. Be careful with e.g. subdivision surface, because it may produce a huge number of vertices. When the clothes should be designed with subdivision surface but created without, switch off "Allow Modifiers" == Produce clothes == The main features of creating clothes are: * '''name''': this is the name of the item of clothing, also the filename * '''comment''': a short optional description * '''tags''': a list of predefined and own tags as a search criteria for MakeHuman [[File:Mc2_tagselector.png]] * '''zdepth''': determines the order of clothes. Lower values are used for clothes near the body, higher values for parts far away. This will be used to hide clothes near the body. A rule of thumb is to start with underwear at 31; normal clothes (pants, t-shirt, shoes) use a default value of 50 and clothes like a coat usually use high values like 63. The following illustration shows the effect for a character equipped with ballet clothes. It also demonstrates what is happening when all values are equal. [[File:Mc2_zdepth.png]] * '''scaling''': select the part of the body which is important for the scaling. Most likely torso for a t-shirt, head for a hat etc. * '''delete-group''': it is a good method to delete vertices on the body if clothes are not transparent. This avoids bleeding through, that is, that vertices that should be "inside" suddenly appear outside of the clothes (see: [[Documentation:MakeClothes Delete-Groups|use delete-groups]]). All vertices not to be displayed should be selected on the body (not helper) and assigned to a vertex on the human. The name of this group must be inserted in the box. If more than one piece of cloth is created, they all can have a different delete-group on the same human. * '''use MakeSkin''': without MakeSkin a simple material is saved for the piece of cloth (white base color). Otherwise the material file of the plugin [[Documentation:MaterialsMakeSkin|MakeSkin]] is used. See "Materials" below. * '''subdir''': the directory inside where the clothes will be created. == Materials == Most of the clothes will need a texture. Before the texture can be used the piece of cloth must be unwrapped. The best way is to create seams in Blender where the real seams are. Unwrap the clothes in any case. The output of this process is a UV-Map, which will be used to determine the coordinates of each vertex on the texture. If the simple standard material should not be used for export, a material can be attached with [[Documentation:MaterialsMakeSkin|MakeSkin]] <will be changed later with some advice how to do good textures etc.> == Create the clothes == One of simplest ways is to copy the helper meshes and create clothes directly. Of course there are more possibilities to do it, [[Documentation:Modeling Clothes|here are some methods you can use]]. The last step to create clothes is to select the item of clothing and press produce clothes. The tests "check clothes" and "check human" are processed and also an additional test about matching vertex groups is done. If everything is okay, the clothes can be loaded in MakeHuman. == Usage of shape keys and targets, create heels == A special female body with shape keys is added as a predefined mesh to allow creation of heels. For advanced users: [[Documentation:CreateHeels|this is the way it works]] == Importing existing clothes == It is possible to load an existing mhclo-file from the data folder of MakeHuman. It's best to load the human mesh before, if you want to change geometry. The clothes will also fit to a different body, but in this case they will not look as good as on the body they were made for. But the advantage is that, e.g., clothes created for males can be used as a base for a female version. When clothes are imported, most of fields are filled in by the process and the delete-group is marked on the human (in case a human is available). The material is also loaded, when MakeSkin is available. The illustration shows the result of the import of the "lace_up_blouse". A material called "lace_up_blouse" was created in blender. All available information is imported and displayed. This includes the special parameters only used in MakeHuman (Backface culling, Transparent, LitSphere etc.). So also the material setup could be used for a new item of clothing. [[File:Mc2_importclothes.png]] a087854f981ebb1af864250fa4a3919ff59be9d8 1886 1885 2020-09-28T03:12:43Z Mtknife 35 /* Limits */ wikitext text/x-wiki Caution: this file is still under construction :) = Makeclothes Version 2 = [[File:makeclothestitle.jpg]] MakeClothes2 is used to create clothes for MakeHuman characters. It could be installed as a single plugin, but at least MakeSkin should be used, if the creation of material is also part of your work. Furthermore it is able to work with the human base mesh provided by MPFB. The term "clothes" is not really correct, the program creates any kind of mesh which can be used for a character generated by MakeHuman. This also includes hair and different tongue or a new topology for the skin. To use MakeClothes in Blender knowledge of Blender itself is needed. == Notation == To understand the process, a short summary of terms used in MakeHuman: * '''base mesh''' and '''helper mesh''': The base mesh is the standard body mesh including a helper-mesh used in MakeHuman. ([[Documentation:Basemesh|detailed information]]) * '''proxies''': in a way all meshes projected on the body are proxies. Do differentiate between a piece of cloth and an alternative mesh for the skin, the alternative mesh is called a '''topology'''. * '''topologies''': special case for a proxy used as a mesh for the skin. Typically used for e.g. a different resolution or to add genitals. * '''smoothing''': MakeHuman may use smoothing on a base mesh. This results in a mesh with 4 times as many vertices. <u>This mesh cannot be used for MakeClothes.</u> * '''clothes''': clothes will be all meshes MakeClothes is able to create. Hair and body proxies included. * '''posing''': the standard "unposed" base mesh is presented in an A-Pose. Other poses are T-Pose or a pose which is user generated. Typically these poses are created with the standard skeleton. Shapekeys can be used as a special pose too. * '''weighting''': when a character is posed the skin but also the clothes should follow the bones. So weights are added to each vertex. These weights determine how much a bone will be followed. MakeClothes uses a similar construction, since the clothes follow vertices on the helper or base mesh. [[File:Mc2_meshes_to_use.png]] Only base mesh and helper can be used to create clothes. == Limits == Makeclothes has certain limits according to the internal structure of MakeHuman * The mesh for the clothes can either be done with quads or with triangles. No mixture allowed. Advantage for quads is a smoother design with a later usage of subdivision surface algorithm (smoothing). Triangles are normally used for e.g. sculpting or when you work with 3rd party meshes. * only one material for one item of clothing is allowed in MakeHuman * each vertex of an item of clothing uses 3 vertices on body or helper to find its position according to the human created in MakeHuman * each vertex of an item of clothing needs to be in one (and only one) vertex group. A group of the same name must be created on the human * it is possible to create more than one item of clothing with one human * only one human is allowed when clothes are created. So only one object is "marked as human". However, if you need more than one base mesh, all others can be marked as clothes [[File:Mc2_makeclothes2.png|right]] == How to load a human == MakeHuman uses a mesh called hm08. Makeclothes is prepared to deal with other meshes as well for future versions. When the mesh is changed it must be changed in MakeHuman as well. So this documentation will only consider the hm08 base mesh. To create clothes you can create them directly on the body or on the helper mesh. For underwear the nude body is best choice, but for a coat the helper mesh will be used. A good method for e.g. a skirt or coat is to design the piece of cloth on the nude body and then use the helper mesh for weighting in the end. There are currently a few possibilities to load a human. The simplest way is to load a predefined one or to use MPFB, both have some vertex-groups assigned: * '''Load a predefined human''' The easiest way directly supported by MakeClothes is to work with the predefined meshes. MakeClothes contains 2 Blend-files which are placed in the "humans" sub-directory of the plugin (male.blend and female.blend). When MakeClothes starts, these blend-files are scanned once and names of the objects starting with "mh_" are presented in a menu. To work with it, select a mesh and press "Import predefined human" button. [[File:Mc2_loadpredef.png]] In case of a helper mesh, the parts of the mesh are assigned to different vertex-groups to allow an easy selection and use different colors. After the mesh is loaded these buttons disappear, because one human is already loaded. The loaded mesh is automatically marked as a human. To load another human either delete the human or mark your human as clothes. * '''Load the human via MPFB''' Makehuman Plugin for Blender also can provide a base mesh. Be aware that the best base is an unmodified male or female mesh, because the clothes will fit most of the characters. Do not use alternative topologies in MakeHuman. If you import an human this is already the base mesh. It can be done easily by doing these steps: [[File:Mc2_loadhumanmfb.png]] The default preset of MakeClothes inside MPFB will mask the helper. It is possible, to switch the masking on or off. To do that, press the button marked in the illustration: [[File:Mc2_togglehelper.png]] Typically the helper will be switched off, when the clothes are modelled. When you assign the vertex groups you should switch it on, because it makes sense to use groups on the helper for the weighting. It is possible to extract clothes from the helper (even when masked) as long as it is not deleted. * '''Load normal base.obj file''' This is the way using the predefined base.obj file which can be downloaded from github. MakeClothes reads the wavefront file. Vertex groups are created according to the .obj file. Disadvantage: this mesh is neither male nor female. An exported wavefront mesh made by MakeHuman can be used as well (no alternative topology such as male muscled mesh, do not use smoothing and delete the extra eyes). It is possible to export it including the helpers. Unfortunately it has no vertex groups assigned. This must be done in Blender later. * '''Load an mhx2 file''' The body (no alternative topology, do not use smoothing and delete the extra eyes) used by mhx2 export can also be used as a base mesh. When you load it you have to select Override Exported Data and the mark Helper Geometry before importing it. * '''Delete helpers''' If a mesh is loaded and the helpers are not needed, the helpers can be deleted. In this case a vertex-group "body" is expected, all vertices belonging to other groups are deleted. If body is not available, nothing will be done. == Tell MakeClothes the type of the object == [[File:Mc2_customprops.png|right]] To create clothes, one object must be marked as human and at least one as clothes. If you work with more than one human, all others must be marked as clothes temporarily. When you mark one object as human a previously marked human will automatically be marked as clothes. The custom properties of the object will hold this information. == Create simple clothes (extract from helper) == If a helper mesh is available it is possible to use this helper as a basis for the clothes. Especially for beginners (but also for the advanced for a good weighting) this could be helpful. [[File:MC2_extract_helpers.png]] The normal way would be to extract either "Tights" or "Skirt". Extract means that a copy of a helper part is prepared for your work. The second step would then be to modify this geometry for your own purposes. == Assign vertex-groups == Vertex-groups are a number of vertices of a mesh forming a group with vertex-group name. These groups are used to determine relations between e.g. vertices on the body and vertices on an item of clothing. The simplest way would be: * create a group "clothing" on the human * assign all vertices of the human to this group * create a group "clothing" on your item of clothing * assign all vertices of the item of clothing to this group This might work, but it is not a good way. There are many risks. So here are examples from some of the assets I did: [[Documentation:MakeClothes Vertex-Groups|Create vertex-groups]] == Test the human mesh == The human loaded with one of the methods usually should not have problems. Nevertheless there is a small test available to check the human. This test is also automatically done when clothes are created. * the number of human objects must be one * there must be one vertex group on the human * no vertex belongs to an non-existing group [[File:Mc2_checkhuman.png]] == Test the clothes == Clothes need a bit more testing. * clothes should not have stray geometry. These are single vertices or edges. If this problem appears, change into edit mode. The vertices are pre-selected. Simply delete them or change geometry otherwise. * maximum number of vertices per face is 4. If you have more than this, these faces are selected and must be changed. * clothes can be quad or triangle meshes. A mixture is not allowed. The process assumes a mesh type and selects the faces to be changed. * the process tests if at least one vertex group is available * all vertices must belong to one vertex group. Vertices belonging to no group are selected and can be changed in edit mode. * all vertices must belong to only one vertex group. Vertices belonging to more than one group are selected and can be changed in edit mode. * no vertex belongs to an non-existing group * a test is done, how many edges belong to one vertex. Typically quad meshes with a low pole-count will have better geometric qualities. This is only a warning. The vertices with more than 8 neighbor vertices will be selected and can be changed in edit mode. [[File:Mc2_checkclothes.png]] == Common settings == The common settings will provide the '''license''' and the name of the '''author''', which will be used for all the clothes generated with this file. * '''Overwrite existing files''' is switched off. The name of the item of clothing is used as a filename. If it is necessary to overwrite an existing object, the box must be marked. * '''Modifiers are allowed'''. Typically the mirror modifier may make sense. Be careful with e.g. subdivision surface, because it may produce a huge number of vertices. When the clothes should be designed with subdivision surface but created without, switch off "Allow Modifiers" == Produce clothes == The main features of creating clothes are: * '''name''': this is the name of the item of clothing, also the filename * '''comment''': a short optional description * '''tags''': a list of predefined and own tags as a search criteria for MakeHuman [[File:Mc2_tagselector.png]] * '''zdepth''': determines the order of clothes. Lower values are used for clothes near the body, higher values for parts far away. This will be used to hide clothes near the body. A rule of thumb is to start with underwear at 31; normal clothes (pants, t-shirt, shoes) use a default value of 50 and clothes like a coat usually use high values like 63. The following illustration shows the effect for a character equipped with ballet clothes. It also demonstrates what is happening when all values are equal. [[File:Mc2_zdepth.png]] * '''scaling''': select the part of the body which is important for the scaling. Most likely torso for a t-shirt, head for a hat etc. * '''delete-group''': it is a good method to delete vertices on the body if clothes are not transparent. This avoids bleeding through, that is, that vertices that should be "inside" suddenly appear outside of the clothes (see: [[Documentation:MakeClothes Delete-Groups|use delete-groups]]). All vertices not to be displayed should be selected on the body (not helper) and assigned to a vertex on the human. The name of this group must be inserted in the box. If more than one piece of cloth is created, they all can have a different delete-group on the same human. * '''use MakeSkin''': without MakeSkin a simple material is saved for the piece of cloth (white base color). Otherwise the material file of the plugin [[Documentation:MaterialsMakeSkin|MakeSkin]] is used. See "Materials" below. * '''subdir''': the directory inside where the clothes will be created. == Materials == Most of the clothes will need a texture. Before the texture can be used the piece of cloth must be unwrapped. The best way is to create seams in Blender where the real seams are. Unwrap the clothes in any case. The output of this process is a UV-Map, which will be used to determine the coordinates of each vertex on the texture. If the simple standard material should not be used for export, a material can be attached with [[Documentation:MaterialsMakeSkin|MakeSkin]] <will be changed later with some advice how to do good textures etc.> == Creating of own clothes == To create clothes select the item of clothing and press produce clothes. The tests "check clothes" and "check human" are processed and also an additional test about matching vertex groups is done. If everything is okay, the clothes can be loaded in MakeHuman. <will contain a lot of tips & tricks later> == Usage of shape keys and targets, create heels == A special female body with shape keys is added as a predefined mesh to allow creation of heels. For advanced users: [[Documentation:CreateHeels|this is the way it works]] == Importing existing clothes == It is possible to load an existing mhclo-file from the data folder of MakeHuman. It's best to load the human mesh before, if you want to change geometry. The clothes will also fit to a different body, but in this case they will not look as good as on the body they were made for. But the advantage is that, e.g., clothes created for males can be used as a base for a female version. When clothes are imported, most of fields are filled in by the process and the delete-group is marked on the human (in case a human is available). The material is also loaded, when MakeSkin is available. The illustration shows the result of the import of the "lace_up_blouse". A material called "lace_up_blouse" was created in blender. All available information is imported and displayed. This includes the special parameters only used in MakeHuman (Backface culling, Transparent, LitSphere etc.). So also the material setup could be used for a new item of clothing. [[File:Mc2_importclothes.png]] 113d35408935f3776fb5349affc8bcb5fe5e8392 1885 1879 2020-09-28T03:12:11Z Mtknife 35 Replaced "piece of cloth" with "item of clothing"--one item of clothing can be made of multiple pieces of cloth, and I don't think you want to give the impression that a single piece of clothing can have multiple materials, one for each piece of cloth. wikitext text/x-wiki Caution: this file is still under construction :) = Makeclothes Version 2 = [[File:makeclothestitle.jpg]] MakeClothes2 is used to create clothes for MakeHuman characters. It could be installed as a single plugin, but at least MakeSkin should be used, if the creation of material is also part of your work. Furthermore it is able to work with the human base mesh provided by MPFB. The term "clothes" is not really correct, the program creates any kind of mesh which can be used for a character generated by MakeHuman. This also includes hair and different tongue or a new topology for the skin. To use MakeClothes in Blender knowledge of Blender itself is needed. == Notation == To understand the process, a short summary of terms used in MakeHuman: * '''base mesh''' and '''helper mesh''': The base mesh is the standard body mesh including a helper-mesh used in MakeHuman. ([[Documentation:Basemesh|detailed information]]) * '''proxies''': in a way all meshes projected on the body are proxies. Do differentiate between a piece of cloth and an alternative mesh for the skin, the alternative mesh is called a '''topology'''. * '''topologies''': special case for a proxy used as a mesh for the skin. Typically used for e.g. a different resolution or to add genitals. * '''smoothing''': MakeHuman may use smoothing on a base mesh. This results in a mesh with 4 times as many vertices. <u>This mesh cannot be used for MakeClothes.</u> * '''clothes''': clothes will be all meshes MakeClothes is able to create. Hair and body proxies included. * '''posing''': the standard "unposed" base mesh is presented in an A-Pose. Other poses are T-Pose or a pose which is user generated. Typically these poses are created with the standard skeleton. Shapekeys can be used as a special pose too. * '''weighting''': when a character is posed the skin but also the clothes should follow the bones. So weights are added to each vertex. These weights determine how much a bone will be followed. MakeClothes uses a similar construction, since the clothes follow vertices on the helper or base mesh. [[File:Mc2_meshes_to_use.png]] Only base mesh and helper can be used to create clothes. == Limits == Makeclothes has certain limits according to the internal structure of MakeHuman * The mesh for the clothes can either be done with quads or with triangles. No mixture allowed. Advantage for quads is a smoother design with a later usage of subdivision surface algorithm (smoothing). Triangles are normally used for e.g. sculpting or when you work with 3rd party meshes. * only one material for one item of clothing is allowed in MakeHuman * each vertex of a item of clothing uses 3 vertices on body or helper to find its position according to the human created in MakeHuman * each vertex of a item of clothing needs to be in one (and only one) vertex group. A group of the same name must be created on the human * it is possible to create more than one item of clothing with one human * only one human is allowed when clothes are created. So only one object is "marked as human". However, if you need more than one base mesh, all others can be marked as clothes [[File:Mc2_makeclothes2.png|right]] == How to load a human == MakeHuman uses a mesh called hm08. Makeclothes is prepared to deal with other meshes as well for future versions. When the mesh is changed it must be changed in MakeHuman as well. So this documentation will only consider the hm08 base mesh. To create clothes you can create them directly on the body or on the helper mesh. For underwear the nude body is best choice, but for a coat the helper mesh will be used. A good method for e.g. a skirt or coat is to design the piece of cloth on the nude body and then use the helper mesh for weighting in the end. There are currently a few possibilities to load a human. The simplest way is to load a predefined one or to use MPFB, both have some vertex-groups assigned: * '''Load a predefined human''' The easiest way directly supported by MakeClothes is to work with the predefined meshes. MakeClothes contains 2 Blend-files which are placed in the "humans" sub-directory of the plugin (male.blend and female.blend). When MakeClothes starts, these blend-files are scanned once and names of the objects starting with "mh_" are presented in a menu. To work with it, select a mesh and press "Import predefined human" button. [[File:Mc2_loadpredef.png]] In case of a helper mesh, the parts of the mesh are assigned to different vertex-groups to allow an easy selection and use different colors. After the mesh is loaded these buttons disappear, because one human is already loaded. The loaded mesh is automatically marked as a human. To load another human either delete the human or mark your human as clothes. * '''Load the human via MPFB''' Makehuman Plugin for Blender also can provide a base mesh. Be aware that the best base is an unmodified male or female mesh, because the clothes will fit most of the characters. Do not use alternative topologies in MakeHuman. If you import an human this is already the base mesh. It can be done easily by doing these steps: [[File:Mc2_loadhumanmfb.png]] The default preset of MakeClothes inside MPFB will mask the helper. It is possible, to switch the masking on or off. To do that, press the button marked in the illustration: [[File:Mc2_togglehelper.png]] Typically the helper will be switched off, when the clothes are modelled. When you assign the vertex groups you should switch it on, because it makes sense to use groups on the helper for the weighting. It is possible to extract clothes from the helper (even when masked) as long as it is not deleted. * '''Load normal base.obj file''' This is the way using the predefined base.obj file which can be downloaded from github. MakeClothes reads the wavefront file. Vertex groups are created according to the .obj file. Disadvantage: this mesh is neither male nor female. An exported wavefront mesh made by MakeHuman can be used as well (no alternative topology such as male muscled mesh, do not use smoothing and delete the extra eyes). It is possible to export it including the helpers. Unfortunately it has no vertex groups assigned. This must be done in Blender later. * '''Load an mhx2 file''' The body (no alternative topology, do not use smoothing and delete the extra eyes) used by mhx2 export can also be used as a base mesh. When you load it you have to select Override Exported Data and the mark Helper Geometry before importing it. * '''Delete helpers''' If a mesh is loaded and the helpers are not needed, the helpers can be deleted. In this case a vertex-group "body" is expected, all vertices belonging to other groups are deleted. If body is not available, nothing will be done. == Tell MakeClothes the type of the object == [[File:Mc2_customprops.png|right]] To create clothes, one object must be marked as human and at least one as clothes. If you work with more than one human, all others must be marked as clothes temporarily. When you mark one object as human a previously marked human will automatically be marked as clothes. The custom properties of the object will hold this information. == Create simple clothes (extract from helper) == If a helper mesh is available it is possible to use this helper as a basis for the clothes. Especially for beginners (but also for the advanced for a good weighting) this could be helpful. [[File:MC2_extract_helpers.png]] The normal way would be to extract either "Tights" or "Skirt". Extract means that a copy of a helper part is prepared for your work. The second step would then be to modify this geometry for your own purposes. == Assign vertex-groups == Vertex-groups are a number of vertices of a mesh forming a group with vertex-group name. These groups are used to determine relations between e.g. vertices on the body and vertices on an item of clothing. The simplest way would be: * create a group "clothing" on the human * assign all vertices of the human to this group * create a group "clothing" on your item of clothing * assign all vertices of the item of clothing to this group This might work, but it is not a good way. There are many risks. So here are examples from some of the assets I did: [[Documentation:MakeClothes Vertex-Groups|Create vertex-groups]] == Test the human mesh == The human loaded with one of the methods usually should not have problems. Nevertheless there is a small test available to check the human. This test is also automatically done when clothes are created. * the number of human objects must be one * there must be one vertex group on the human * no vertex belongs to an non-existing group [[File:Mc2_checkhuman.png]] == Test the clothes == Clothes need a bit more testing. * clothes should not have stray geometry. These are single vertices or edges. If this problem appears, change into edit mode. The vertices are pre-selected. Simply delete them or change geometry otherwise. * maximum number of vertices per face is 4. If you have more than this, these faces are selected and must be changed. * clothes can be quad or triangle meshes. A mixture is not allowed. The process assumes a mesh type and selects the faces to be changed. * the process tests if at least one vertex group is available * all vertices must belong to one vertex group. Vertices belonging to no group are selected and can be changed in edit mode. * all vertices must belong to only one vertex group. Vertices belonging to more than one group are selected and can be changed in edit mode. * no vertex belongs to an non-existing group * a test is done, how many edges belong to one vertex. Typically quad meshes with a low pole-count will have better geometric qualities. This is only a warning. The vertices with more than 8 neighbor vertices will be selected and can be changed in edit mode. [[File:Mc2_checkclothes.png]] == Common settings == The common settings will provide the '''license''' and the name of the '''author''', which will be used for all the clothes generated with this file. * '''Overwrite existing files''' is switched off. The name of the item of clothing is used as a filename. If it is necessary to overwrite an existing object, the box must be marked. * '''Modifiers are allowed'''. Typically the mirror modifier may make sense. Be careful with e.g. subdivision surface, because it may produce a huge number of vertices. When the clothes should be designed with subdivision surface but created without, switch off "Allow Modifiers" == Produce clothes == The main features of creating clothes are: * '''name''': this is the name of the item of clothing, also the filename * '''comment''': a short optional description * '''tags''': a list of predefined and own tags as a search criteria for MakeHuman [[File:Mc2_tagselector.png]] * '''zdepth''': determines the order of clothes. Lower values are used for clothes near the body, higher values for parts far away. This will be used to hide clothes near the body. A rule of thumb is to start with underwear at 31; normal clothes (pants, t-shirt, shoes) use a default value of 50 and clothes like a coat usually use high values like 63. The following illustration shows the effect for a character equipped with ballet clothes. It also demonstrates what is happening when all values are equal. [[File:Mc2_zdepth.png]] * '''scaling''': select the part of the body which is important for the scaling. Most likely torso for a t-shirt, head for a hat etc. * '''delete-group''': it is a good method to delete vertices on the body if clothes are not transparent. This avoids bleeding through, that is, that vertices that should be "inside" suddenly appear outside of the clothes (see: [[Documentation:MakeClothes Delete-Groups|use delete-groups]]). All vertices not to be displayed should be selected on the body (not helper) and assigned to a vertex on the human. The name of this group must be inserted in the box. If more than one piece of cloth is created, they all can have a different delete-group on the same human. * '''use MakeSkin''': without MakeSkin a simple material is saved for the piece of cloth (white base color). Otherwise the material file of the plugin [[Documentation:MaterialsMakeSkin|MakeSkin]] is used. See "Materials" below. * '''subdir''': the directory inside where the clothes will be created. == Materials == Most of the clothes will need a texture. Before the texture can be used the piece of cloth must be unwrapped. The best way is to create seams in Blender where the real seams are. Unwrap the clothes in any case. The output of this process is a UV-Map, which will be used to determine the coordinates of each vertex on the texture. If the simple standard material should not be used for export, a material can be attached with [[Documentation:MaterialsMakeSkin|MakeSkin]] <will be changed later with some advice how to do good textures etc.> == Creating of own clothes == To create clothes select the item of clothing and press produce clothes. The tests "check clothes" and "check human" are processed and also an additional test about matching vertex groups is done. If everything is okay, the clothes can be loaded in MakeHuman. <will contain a lot of tips & tricks later> == Usage of shape keys and targets, create heels == A special female body with shape keys is added as a predefined mesh to allow creation of heels. For advanced users: [[Documentation:CreateHeels|this is the way it works]] == Importing existing clothes == It is possible to load an existing mhclo-file from the data folder of MakeHuman. It's best to load the human mesh before, if you want to change geometry. The clothes will also fit to a different body, but in this case they will not look as good as on the body they were made for. But the advantage is that, e.g., clothes created for males can be used as a base for a female version. When clothes are imported, most of fields are filled in by the process and the delete-group is marked on the human (in case a human is available). The material is also loaded, when MakeSkin is available. The illustration shows the result of the import of the "lace_up_blouse". A material called "lace_up_blouse" was created in blender. All available information is imported and displayed. This includes the special parameters only used in MakeHuman (Backface culling, Transparent, LitSphere etc.). So also the material setup could be used for a new item of clothing. [[File:Mc2_importclothes.png]] 78fa7c7cf27b1764dd7a349c2223ee4b8d1640b5 1879 1876 2020-09-26T13:55:10Z Punkduck 38 wikitext text/x-wiki Caution: this file is still under construction :) = Makeclothes Version 2 = [[File:makeclothestitle.jpg]] MakeClothes2 is used to create clothes for MakeHuman characters. It could be installed as a single plugin, but at least MakeSkin should be used, if the creation of material is also part of your work. Furthermore it is able to work with the human base mesh provided by MPFB. The term "clothes" is not really correct, the program creates any kind of mesh which can be used for a character generated by MakeHuman. This also includes hair and different tongue or a new topology for the skin. To use MakeClothes in Blender knowledge of Blender itself is needed. == Notation == To understand the process, a short summary of terms used in MakeHuman: * '''base mesh''' and '''helper mesh''': The base mesh is the standard body mesh including a helper-mesh used in MakeHuman. ([[Documentation:Basemesh|detailed information]]) * '''proxies''': in a way all meshes projected on the body are proxies. Do differentiate between a piece of cloth and an alternative mesh for the skin, the alternative mesh is called a '''topology'''. * '''topologies''': special case for a proxy used as a mesh for the skin. Typically used for e.g. a different resolution or to add genitals. * '''smoothing''': MakeHuman may use smoothing on a base mesh. This results in a mesh with 4 times as many vertices. <u>This mesh cannot be used for MakeClothes.</u> * '''clothes''': clothes will be all meshes MakeClothes is able to create. Hair and body proxies included. * '''posing''': the standard "unposed" base mesh is presented in an A-Pose. Other poses are T-Pose or a pose which is user generated. Typically these poses are created with the standard skeleton. Shapekeys can be used as a special pose too. * '''weighting''': when a character is posed the skin but also the clothes should follow the bones. So weights are added to each vertex. These weights determine how much a bone will be followed. MakeClothes uses a similar construction, since the clothes follow vertices on the helper or base mesh. [[File:Mc2_meshes_to_use.png]] Only base mesh and helper can be used to create clothes. == Limits == Makeclothes has certain limits according to the internal structure of MakeHuman * The mesh for the clothes can either be done with quads or with triangles. No mixture allowed. Advantage for quads is a smoother design with a later usage of subdivision surface algorithm (smoothing). Triangles are normally used for e.g. sculpting or when you work with 3rd party meshes. * only one material for one piece of cloth is allowed in MakeHuman * each vertex of a piece of cloth uses 3 vertices on body or helper to find its position according to the human created in MakeHuman * each vertex of a piece of cloth needs to be in one (and only one) vertex group. A group of the same name must be created on the human * it is possible to create more than one piece of cloth with one human * only one human is allowed when clothes are created. So only one object is "marked as human". However, if you need more than one base mesh, all others can be marked as clothes [[File:Mc2_makeclothes2.png|right]] == How to load a human == MakeHuman uses a mesh called hm08. Makeclothes is prepared to deal with other meshes as well for future versions. When the mesh is changed it must be changed in MakeHuman as well. So this documentation will only consider the hm08 base mesh. To create clothes you can create them directly on the body or on the helper mesh. For underwear the nude body is best choice, but for a coat the helper mesh will be used. A good method for e.g. a skirt or coat is to design the piece of cloth on the nude body and then use the helper mesh for weighting in the end. There are currently a few possibilities to load a human. The simplest way is to load a predefined one or to use MPFB, both have some vertex-groups assigned: * '''Load a predefined human''' The easiest way directly supported by MakeClothes is to work with the predefined meshes. MakeClothes contains 2 Blend-files which are placed in the "humans" sub-directory of the plugin (male.blend and female.blend). When MakeClothes starts, these blend-files are scanned once and names of the objects starting with "mh_" are presented in a menu. To work with it, select a mesh and press "Import predefined human" button. [[File:Mc2_loadpredef.png]] In case of a helper mesh, the parts of the mesh are assigned to different vertex-groups to allow an easy selection and use different colors. After the mesh is loaded these buttons disappear, because one human is already loaded. The loaded mesh is automatically marked as a human. To load another human either delete the human or mark your human as clothes. * '''Load the human via MPFB''' Makehuman Plugin for Blender also can provide a base mesh. Be aware that the best base is an unmodified male or female mesh, because the clothes will fit most of the characters. Do not use alternative topologies in MakeHuman. If you import an human this is already the base mesh. It can be done easily by doing these steps: [[File:Mc2_loadhumanmfb.png]] The default preset of MakeClothes inside MPFB will mask the helper. Masking means, that it is possible, to switch the masking on or off. To do that, press the button marked in the illustration: [[File:Mc2_togglehelper.png]] Typically the helper will be switched off, when the clothes are modelled. When you assign the vertex groups you should switch it on, because it makes sense to use groups on the helper for the weighting. It is possible to extract clothes from the helper (even when masked) as long as it is not deleted. * '''Load normal base.obj file''' This is the way using the predefined base.obj file which can be downloaded from github. MakeClothes reads the wavefront file. Vertex groups are created according to the .obj file. Disadvantage: this mesh is neither male nor female. An exported wavefront mesh made by MakeHuman can be used as well (no alternative topology such as male muscled mesh, do not use smoothing and delete the extra eyes). It is possible to export it including the helpers. Unfortunately it has no vertex groups assigned. This must be done in Blender later. * '''Load an mhx2 file''' The body (no alternative topology, do not use smoothing and delete the extra eyes) used by mhx2 export can also be used as a base mesh. When you load it you have to select Override Exported Data and the mark Helper Geometry before importing it. * '''Delete helpers''' If a mesh is loaded and the helpers are not needed, the helpers can be deleted. In this case a vertex-group "body" is expected, all vertices belonging to other groups are deleted. If body is not available, nothing will be done. == Tell MakeClothes the type of the object == [[File:Mc2_customprops.png|right]] To create clothes, one object must be marked as human and at least one as clothes. If you work with more than one human, all others must be marked as clothes temporarily. When you mark one object as human a previously marked human will automatically be marked as clothes. The custom properties of the object will held this information. == Create simple clothes (extract from helper) == In case a helper mesh is available it is possible to use this helper as a basis for the clothes. Especially for beginners (but also for the advanced for a good weighting) this could be helpful. [[File:MC2_extract_helpers.png]] The normal way would be to extract either "Tights" or "Skirt". Extract means, that a copy of a helper part is prepared for your work. The second step would then be to modify this geometry for your own purposes. == Assign vertex-groups == Vertex-groups are a number of vertices of a mesh forming a group with vertex-group name. These groups are used to determine relations between e.g. vertices on the body and vertices on a piece of cloth. The simplest way would be: * create a group "cloth" on the human * assign all vertices of the human to this group * create a group "cloth" on your piece of cloth * assign all vertices of the piece of cloth to this group This might work, but it is not a good way. There are many risks. So here are examples from some of the assets I did: [[Documentation:MakeClothes Vertex-Groups|Create vertex-groups]] == Test the human mesh == The human loaded with one of the methods usually should not have problems. Nevertheless there is a small test available to check the human. This test is also automatically done when clothes are created. * the number of human objects must be one * there must be one vertex group on the human * no vertex belongs to an non-existing group [[File:Mc2_checkhuman.png]] == Test the clothes == Clothes need a bit more testing. * clothes should not have stray geometry. These are single vertices or edges. If this problem appears, change into edit mode. The vertices are pre-selected. Simply delete them or change geometry otherwise. * maximum number of vertices per face is 4. If you have more than this, these faces are selected and must be changed. * clothes can be quad or triangle meshes. A mixture is not allowed. The process assumes a mesh type and selects the faces to be changed. * the process tests if at least one vertex group is available * all vertices must belong to one vertex group. Vertices belonging to no group are selected and can be changed in edit mode. * all vertices must belong to only one vertex group. Vertices belonging to more than one group are selected and can be changed in edit mode. * no vertex belongs to an non-existing group * a test is done, how many edges belong to one vertex. Typically quad meshes with a low pole-count will have better geometric qualities. This is only a warning. The vertices with more than 8 neighbor vertices will be selected and can be changed in edit mode. [[File:Mc2_checkclothes.png]] == Common settings == The common settings will provide the '''license''' and the name of the '''author''', which will be used for all the clothes generated with this file. * '''Overwrite existing files''' is switched off. The name of the piece of cloth is used as a filename. If it is necessary to overwrite an existing object, the box must be marked. * '''Modifiers are allowed'''. Typically the mirror modifier may make sense. Be careful with e.g. subdivision surface, because it may produce a huge number of vertices. When the clothes should be designed with subdivision surface but created without, switch off "Allow Modifiers" == Produce clothes == The main features of creating clothes are: * '''name''': this is the name of the piece of cloth, also the filename * '''comment''': a short optional description * '''tags''': a list of predefined and own tags as a search criteria for MakeHuman [[File:Mc2_tagselector.png]] * '''zdepth''': determines the order of clothes. Lower values are used for clothes near the body, higher values for parts far away. This will be used to hide clothes near the body. A rule of thumb is to start with underware at 31, normal clothes (pants, t-shirt, shoes) use a default value of 50 and clothes like a coat usually use high values like 63. The following illustration shows the effect for a character equipped with ballet clothes. It also demonstrates what is happening when all values are equal. [[File:Mc2_zdepth.png]] * '''scaling''': select the part of the body which is important for the scaling. Most likely torso for a t-shirt, head for a hat etc. * '''delete-group''': it is a good method to delete vertices on the body if clothes are not transparent. This avoids bleeding through, that is, that vertices that should be "inside" suddenly appear outside of the clothes (see: [[Documentation:MakeClothes Delete-Groups|use delete-groups]]). All vertices not to be displayed should be selected on the body (not helper) and assigned to a vertex on the human. The name of this group must be inserted in the box. If more than one piece of cloth is created, they all can have a different delete-group on the same human. * '''use MakeSkin''': without MakeSkin a simple material is saved for the piece of cloth (white base color). Otherwise the material file of the plugin [[Documentation:MaterialsMakeSkin|MakeSkin]] is used. See "Materials" below. * '''subdir''': the directory inside where the clothes will be created. == Materials == Most of the clothes will need a texture. Before the texture can be used the piece of cloth must be unwrapped. Best way is to create seams in Blender, where the real seams are. Unwrap the clothes in any case. The output of this process is a UV-Map, which will be used to determine the coordinates of each vertex on the texture. If the simple standard material should not be used for export, a material can be attached with [[Documentation:MaterialsMakeSkin|MakeSkin]] <will be changed later with some advice how to do good textures etc.> == Creating of own clothes == To create clothes select the piece of cloth and press produce clothes. The tests "check clothes" and "check human" are processed and also an additional test about matching vertex groups is done. If everything is okay, the clothes can be loaded in MakeHuman. <will contain a lot of tips & tricks later> == Usage of shape keys and targets, create heels == A special female body with shape keys is added as a predefined mesh to allow creation of heels. For advanced users: [[Documentation:CreateHeels|this is the way it works]] == Importing existent clothes == It is possible to load an existent mhclo-file from the data folder of MakeHuman. Best is to load the human mesh before, if you want to change geometry. The clothes will also fit to a different body, but in this case they will not look as good as on the body, they were made for. But the advantage is, that e.g. clothes created for males can be used as a base for a female version. When clothes are imported, Most of fields are filled in by the process and the delete-group is marked on the human (in case a humans is available). The material is also loaded, when MakeSkin is available. The illustration shows the result of the import of the "lace_up_blouse". A material called "lace_up_blouse" was created in blender. All available information is imported and displayed. This includes the special parameters only used in MakeHuman (Backface culling, Transparent, LitSphere etc.). So also the material setup could be used for a new piece of cloth. [[File:Mc2_importclothes.png]] bede7194f5d705d313c03445908b28c4818f74dd 1876 1871 2020-09-13T15:53:33Z Punkduck 38 wikitext text/x-wiki Caution: this file is still under construction :) = Makeclothes Version 2 = [[File:makeclothestitle.jpg]] MakeClothes2 is used to create clothes for MakeHuman characters. It could be installed as a single plugin, but at least MakeSkin should be used, if the creation of material is also part of your work. Furthermore it is able to work with the human base mesh provided by MPFB. The term "clothes" is not really correct, the program creates any kind of mesh which can be used for a character generated by MakeHuman. This also includes hair and different tongue or a new topology for the skin. To use MakeClothes in Blender knowledge of Blender itself is needed. == Notation == To understand the process, a short summary of terms used in MakeHuman: * '''base mesh''' and '''helper mesh''': The base mesh is the standard body mesh including a helper-mesh used in MakeHuman. ([[Documentation:Basemesh|detailed information]]) * '''proxies''': in a way all meshes projected on the body are proxies. Do differentiate between a piece of cloth and an alternative mesh for the skin, the alternative mesh is called a '''topology'''. * '''topologies''': special case for a proxy used as a mesh for the skin. Typically used for e.g. a different resolution or to add genitals. * '''smoothing''': MakeHuman may use smoothing on a base mesh. This results in a mesh with 4 times as many vertices. <u>This mesh cannot be used for MakeClothes.</u> * '''clothes''': clothes will be all meshes MakeClothes is able to create. Hair and body proxies included. * '''posing''': the standard "unposed" base mesh is presented in an A-Pose. Other poses are T-Pose or a pose which is user generated. Typically these poses are created with the standard skeleton. Shapekeys can be used as a special pose too. * '''weighting''': when a character is posed the skin but also the clothes should follow the bones. So weights are added to each vertex. These weights determine how much a bone will be followed. MakeClothes uses a similar construction, since the clothes follow vertices on the helper or base mesh. [[File:Mc2_meshes_to_use.png]] Only base mesh and helper can be used to create clothes. == Limits == Makeclothes has certain limits according to the internal structure of MakeHuman * The mesh for the clothes can either be done with quads or with triangles. No mixture allowed. Advantage for quads is a smoother design with a later usage of subdivision surface algorithm (smoothing). Triangles are normally used for e.g. sculpting or when you work with 3rd party meshes. * only one material for one piece of cloth is allowed in MakeHuman * each vertex of a piece of cloth uses 3 vertices on body or helper to find its position according to the human created in MakeHuman * each vertex of a piece of cloth needs to be in one (and only one) vertex group. A group of the same name must be created on the human * it is possible to create more than one piece of cloth with one human * only one human is allowed when clothes are created. So only one object is "marked as human". However, if you need more than one base mesh, all others can be marked as clothes [[File:Mc2_makeclothes2.png|right]] == How to load a human == MakeHuman uses a mesh called hm08. Makeclothes is prepared to deal with other meshes as well for future versions. When the mesh is changed it must be changed in MakeHuman as well. So this documentation will only consider the hm08 base mesh. To create clothes you can create them directly on the body or on the helper mesh. For underwear the nude body is best choice, but for a coat the helper mesh will be used. A good method for e.g. a skirt or coat is to design the piece of cloth on the nude body and then use the helper mesh for weighting in the end. There are currently a few possibilities to load a human. The simplest way is to load a predefined one or to use MPFB, both have some vertex-groups assigned: * '''Load a predefined human''' Blend-files which are placed in the "humans" sub-directory of the makeclothes plugin can be used directly. When MakeClothes starts, these blend-files are scanned once and names of the objects starting with "mh_" are presented in a menu. The selected mesh is appended by pressing the "Import predefined human" button. [[File:Mc2_loadpredef.png]] In case of a helper mesh, the parts of the mesh are assigned to different vertex-groups to allow an easy selection and use different colors. After the mesh is loaded these buttons disappear, because one human is already loaded. The loaded mesh is automatically marked as a human. To load another human either delete the human or mark your human as clothes. {| style="color:green; background-color:#ffffcc;" |- |The files of the pre-defined humans are not yet included in the repository, this will happen soon, different meshes will be provided, also t-posed ones. If you want to work with that already: |- |create folder humans in Blender directory scripts/addons/makeclothes |- |unzip this file [http://www.makehumancommunity.org/forum/download/file.php?id=8095 Zip-File with male and female meshes] |- |move both blend files into this folder. |- |} * '''Load the human via MPFB''' Makehuman Plugin for Blender also can provide a base mesh. Be aware that the best base is an unmodified male or female mesh, because the clothes will fit most of the characters. Do not use alternative topologies in MakeHuman. If you import an human this is already the base mesh. It can be done easily by doing these steps: [[File:Mc2_loadhumanmfb.png]] The default preset of MakeClothes inside MPFB will mask the helper. Masking means, that it is possible, to switch the masking on or off. To do that, press the button marked in the illustration: [[File:Mc2_togglehelper.png]] Typically the helper will be switched off, when the clothes are modelled. When you assign the vertex groups you should switch it on, because it makes sense to use groups on the helper for the weighting. It is possible to extract clothes from the helper (even when masked) as long as it is not deleted. * '''Load normal base.obj file''' This is the way using the predefined base.obj file which can be downloaded from github. MakeClothes reads the wavefront file. Vertex groups are created according to the .obj file. Disadvantage: this mesh is neither male nor female. An exported wavefront mesh made by MakeHuman can be used as well (no alternative topology such as male muscled mesh, do not use smoothing and delete the extra eyes). It is possible to export it including the helpers. Unfortunately it has no vertex groups assigned. This must be done in Blender later. * '''Load an mhx2 file''' The body (no alternative topology, do not use smoothing and delete the extra eyes) used by mhx2 export can also be used as a base mesh. When you load it you have to select Override Exported Data and the mark Helper Geometry before importing it. * '''Delete helpers''' If a mesh is loaded and the helpers are not needed, the helpers can be deleted. In this case a vertex-group "body" is expected, all vertices belonging to other groups are deleted. If body is not available, nothing will be done. == Tell MakeClothes the type of the object == [[File:Mc2_customprops.png|right]] To create clothes, one object must be marked as human and at least one as clothes. If you work with more than one human, all others must be marked as clothes temporarily. When you mark one object as human a previously marked human will automatically be marked as clothes. The custom properties of the object will held this information. == Create simple clothes (extract from helper) == In case a helper mesh is available it is possible to use this helper as a basis for the clothes. Especially for beginners (but also for the advanced for a good weighting) this could be helpful. [[File:MC2_extract_helpers.png]] The normal way would be to extract either "Tights" or "Skirt". Extract means, that a copy of a helper part is prepared for your work. The second step would then be to modify this geometry for your own purposes. == Assign vertex-groups == Vertex-groups are a number of vertices of a mesh forming a group with vertex-group name. These groups are used to determine relations between e.g. vertices on the body and vertices on a piece of cloth. The simplest way would be: * create a group "cloth" on the human * assign all vertices of the human to this group * create a group "cloth" on your piece of cloth * assign all vertices of the piece of cloth to this group This might work, but it is not a good way. There are many risks. So here are examples from some of the assets I did: [[Documentation:MakeClothes Vertex-Groups|Create vertex-groups]] == Test the human mesh == The human loaded with one of the methods usually should not have problems. Nevertheless there is a small test available to check the human. This test is also automatically done when clothes are created. * the number of human objects must be one * there must be one vertex group on the human * no vertex belongs to an non-existing group [[File:Mc2_checkhuman.png]] == Test the clothes == Clothes need a bit more testing. * clothes should not have stray geometry. These are single vertices or edges. If this problem appears, change into edit mode. The vertices are pre-selected. Simply delete them or change geometry otherwise. * maximum number of vertices per face is 4. If you have more than this, these faces are selected and must be changed. * clothes can be quad or triangle meshes. A mixture is not allowed. The process assumes a mesh type and selects the faces to be changed. * the process tests if at least one vertex group is available * all vertices must belong to one vertex group. Vertices belonging to no group are selected and can be changed in edit mode. * all vertices must belong to only one vertex group. Vertices belonging to more than one group are selected and can be changed in edit mode. * no vertex belongs to an non-existing group * a test is done, how many edges belong to one vertex. Typically quad meshes with a low pole-count will have better geometric qualities. This is only a warning. The vertices with more than 8 neighbor vertices will be selected and can be changed in edit mode. [[File:Mc2_checkclothes.png]] == Common settings == The common settings will provide the '''license''' and the name of the '''author''', which will be used for all the clothes generated with this file. * '''Overwrite existing files''' is switched off. The name of the piece of cloth is used as a filename. If it is necessary to overwrite an existing object, the box must be marked. * '''Modifiers are allowed'''. Typically the mirror modifier may make sense. Be careful with e.g. subdivision surface, because it may produce a huge number of vertices. When the clothes should be designed with subdivision surface but created without, switch off "Allow Modifiers" == Produce clothes == The main features of creating clothes are: * '''name''': this is the name of the piece of cloth, also the filename * '''comment''': a short optional description * '''tags''': a list of predefined and own tags as a search criteria for MakeHuman [[File:Mc2_tagselector.png]] * '''zdepth''': determines the order of clothes. Lower values are used for clothes near the body, higher values for parts far away. This will be used to hide clothes near the body. A rule of thumb is to start with underware at 31, normal clothes (pants, t-shirt, shoes) use a default value of 50 and clothes like a coat usually use high values like 63. The following illustration shows the effect for a character equipped with ballet clothes. It also demonstrates what is happening when all values are equal. [[File:Mc2_zdepth.png]] * '''scaling''': select the part of the body which is important for the scaling. Most likely torso for a t-shirt, head for a hat etc. * '''delete-group''': it is a good method to delete vertices on the body if clothes are not transparent. This avoids bleeding through, that is, that vertices that should be "inside" suddenly appear outside of the clothes (see: [[Documentation:MakeClothes Delete-Groups|use delete-groups]]). All vertices not to be displayed should be selected on the body (not helper) and assigned to a vertex on the human. The name of this group must be inserted in the box. If more than one piece of cloth is created, they all can have a different delete-group on the same human. * '''use MakeSkin''': without MakeSkin a simple material is saved for the piece of cloth (white base color). Otherwise the material file of the plugin [[Documentation:MaterialsMakeSkin|MakeSkin]] is used. See "Materials" below. * '''subdir''': the directory inside where the clothes will be created. == Materials == Most of the clothes will need a texture. Before the texture can be used the piece of cloth must be unwrapped. Best way is to create seams in Blender, where the real seams are. Unwrap the clothes in any case. The output of this process is a UV-Map, which will be used to determine the coordinates of each vertex on the texture. If the simple standard material should not be used for export, a material can be attached with [[Documentation:MaterialsMakeSkin|MakeSkin]] <will be changed later with some advice how to do good textures etc.> == Creating of own clothes == To create clothes select the piece of cloth and press produce clothes. The tests "check clothes" and "check human" are processed and also an additional test about matching vertex groups is done. If everything is okay, the clothes can be loaded in MakeHuman. <will contain a lot of tips & tricks later> == Special poses, heels etc. == <works with a special target in MakeHuman and a pose changed with shape key in MakeClothes> == Importing existent clothes == It is possible to load an existent mhclo-file from the data folder of MakeHuman. Best is to load the human mesh before, if you want to change geometry. The clothes will also fit to a different body, but in this case they will not look as good as on the body, they were made for. But the advantage is, that e.g. clothes created for males can be used as a base for a female version. When clothes are imported, Most of fields are filled in by the process and the delete-group is marked on the human (in case a humans is available). The material is also loaded, when MakeSkin is available. The illustration shows the result of the import of the "lace_up_blouse". A material called "lace_up_blouse" was created in blender. All available information is imported and displayed. This includes the special parameters only used in MakeHuman (Backface culling, Transparent, LitSphere etc.). So also the material setup could be used for a new piece of cloth. [[File:Mc2_importclothes.png]] 84f5cdac70e15c691defe608d2d6cf5053abc5ec 1871 1868 2020-09-13T14:49:56Z Punkduck 38 wikitext text/x-wiki Caution: this file is still under construction :) = Makeclothes Version 2 = [[File:makeclothestitle.jpg]] MakeClothes2 is used to create clothes for MakeHuman characters. It could be installed as a single plugin, but at least MakeSkin should be used, if the creation of material is also part of your work. Furthermore it is able to work with the human base mesh provided by MPFB. The term "clothes" is not really correct, the program creates any kind of mesh which can be used for a character generated by MakeHuman. This also includes hair and different tongue or a new topology for the skin. To use MakeClothes in Blender knowledge of Blender itself is needed. == Notation == To understand the process, a short summary of terms used in MakeHuman: * '''base mesh''' and '''helper mesh''': The base mesh is the standard body mesh including a helper-mesh used in MakeHuman. ([[Documentation:Basemesh|detailed information]]) * '''proxies''': in a way all meshes projected on the body are proxies. Do differentiate between a piece of cloth and an alternative mesh for the skin, the alternative mesh is called a '''topology'''. * '''topologies''': special case for a proxy used as a mesh for the skin. Typically used for e.g. a different resolution or to add genitals. * '''smoothing''': MakeHuman may use smoothing on a base mesh. This results in a mesh with 4 times as many vertices. <u>This mesh cannot be used for MakeClothes.</u> * '''clothes''': clothes will be all meshes MakeClothes is able to create. Hair and body proxies included. * '''posing''': the standard "unposed" base mesh is presented in an A-Pose. Other poses are T-Pose or a pose which is user generated. Typically these poses are created with the standard skeleton. Shapekeys can be used as a special pose too. * '''weighting''': when a character is posed the skin but also the clothes should follow the bones. So weights are added to each vertex. These weights determine how much a bone will be followed. MakeClothes uses a similar construction, since the clothes follow vertices on the helper or base mesh. [[File:Mc2_meshes_to_use.png]] Only base mesh and helper can be used to create clothes. == Limits == Makeclothes has certain limits according to the internal structure of MakeHuman * The mesh for the clothes can either be done with quads or with triangles. No mixture allowed. Advantage for quads is a smoother design with a later usage of subdivision surface algorithm (smoothing). Triangles are normally used for e.g. sculpting or when you work with 3rd party meshes. * only one material for one piece of cloth is allowed in MakeHuman * each vertex of a piece of cloth uses 3 vertices on body or helper to find its position according to the human created in MakeHuman * each vertex of a piece of cloth needs to be in one (and only one) vertex group. A group of the same name must be created on the human * it is possible to create more than one piece of cloth with one human * only one human is allowed when clothes are created. So only one object is "marked as human". However, if you need more than one base mesh, all others can be marked as clothes [[File:Mc2_makeclothes2.png|right]] == How to load a human == MakeHuman uses a mesh called hm08. Makeclothes is prepared to deal with other meshes as well for future versions. When the mesh is changed it must be changed in MakeHuman as well. So this documentation will only consider the hm08 base mesh. To create clothes you can create them directly on the body or on the helper mesh. For underwear the nude body is best choice, but for a coat the helper mesh will be used. A good method for e.g. a skirt or coat is to design the piece of cloth on the nude body and then use the helper mesh for weighting in the end. There are currently a few possibilities to load a human. The simplest way is to load a predefined one or to use MPFB, both have some vertex-groups assigned: * '''Load a predefined human''' Blend-files which are placed in the "humans" sub-directory of the makeclothes plugin can be used directly. When MakeClothes starts, these blend-files are scanned once and names of the objects starting with "mh_" are presented in a menu. The selected mesh is appended by pressing the "Import predefined human" button. [[File:Mc2_loadpredef.png]] In case of a helper mesh, the parts of the mesh are assigned to different vertex-groups to allow an easy selection and use different colors. After the mesh is loaded these buttons disappear, because one human is already loaded. The loaded mesh is automatically marked as a human. To load another human either delete the human or mark your human as clothes. {| style="color:green; background-color:#ffffcc;" |- |The files of the pre-defined humans are not yet included in the repository, this will happen soon, different meshes will be provided, also t-posed ones. If you want to work with that already: |- |create folder humans in Blender directory scripts/addons/makeclothes |- |unzip this file [http://www.makehumancommunity.org/forum/download/file.php?id=8095 Zip-File with male and female meshes] |- |move both blend files into this folder. |- |} * '''Load the human via MPFB''' Makehuman Plugin for Blender also can provide a base mesh. Be aware that the best base is an unmodified male or female mesh, because the clothes will fit most of the characters. Do not use alternative topologies. If you import an human this is already the base mesh. If you need the helpers, change settings according to the illustration and import the mesh. Instead of "don't modify" you can also use "Mask". [[File:Mc2_loadhumanmfb.png]] * '''Load normal base.obj file''' This is the way using the predefined base.obj file which can be downloaded from github. MakeClothes reads the wavefront file. Vertex groups are created according to the .obj file. Disadvantage: this mesh is neither male nor female. An exported wavefront mesh made by MakeHuman can be used as well (no alternative topology such as male muscled mesh, do not use smoothing and delete the extra eyes). It is possible to export it including the helpers. Unfortunately it has no vertex groups assigned. This must be done in Blender later. * '''Load an mhx2 file''' The body (no alternative topology, do not use smoothing and delete the extra eyes) used by mhx2 export can also be used as a base mesh. When you load it you have to select Override Exported Data and the mark Helper Geometry before importing it. * '''Delete helpers''' If a mesh is loaded and the helpers are not needed, the helpers can be deleted. In this case a vertex-group "body" is expected, all vertices belonging to other groups are deleted. If body is not available, nothing will be done. == Tell MakeClothes the type of the object == [[File:Mc2_customprops.png|right]] To create clothes, one object must be marked as human and at least one as clothes. If you work with more than one human, all others must be marked as clothes temporarily. When you mark one object as human a previously marked human will automatically be marked as clothes. The custom properties of the object will held this information. == Create simple clothes (extract from helper) == In case a helper mesh is available it is possible to use the helpers as a first try. Especially for beginners (but also for the advanced for a good weighting) this could be helpful. <more text to be written> == Assign vertex-groups == Vertex-groups are a number of vertices of a mesh forming a group with vertex-group name. These groups are used to determine relations between e.g. vertices on the body and vertices on a piece of cloth. The simplest way would be: * create a group "cloth" on the human * assign all vertices of the human to this group * create a group "cloth" on your piece of cloth * assign all vertices of the piece of cloth to this group This might work, but it is not a good way. There are many risks. So here are examples from some of the assets I did: [[Documentation:MakeClothes Vertex-Groups|Create vertex-groups]] == Test the human mesh == The human loaded with one of the methods usually should not have problems. Nevertheless there is a small test available to check the human. This test is also automatically done when clothes are created. * the number of human objects must be one * there must be one vertex group on the human * no vertex belongs to an non-existing group [[File:Mc2_checkhuman.png]] == Test the clothes == Clothes need a bit more testing. * clothes should not have stray geometry. These are single vertices or edges. If this problem appears, change into edit mode. The vertices are pre-selected. Simply delete them or change geometry otherwise. * maximum number of vertices per face is 4. If you have more than this, these faces are selected and must be changed. * clothes can be quad or triangle meshes. A mixture is not allowed. The process assumes a mesh type and selects the faces to be changed. * the process tests if at least one vertex group is available * all vertices must belong to one vertex group. Vertices belonging to no group are selected and can be changed in edit mode. * all vertices must belong to only one vertex group. Vertices belonging to more than one group are selected and can be changed in edit mode. * no vertex belongs to an non-existing group * a test is done, how many edges belong to one vertex. Typically quad meshes with a low pole-count will have better geometric qualities. This is only a warning. The vertices with more than 8 neighbor vertices will be selected and can be changed in edit mode. [[File:Mc2_checkclothes.png]] == Common settings == The common settings will provide the '''license''' and the name of the '''author''', which will be used for all the clothes generated with this file. * '''Overwrite existing files''' is switched off. The name of the piece of cloth is used as a filename. If it is necessary to overwrite an existing object, the box must be marked. * '''Modifiers are allowed'''. Typically the mirror modifier may make sense. Be careful with e.g. subdivision surface, because it may produce a huge number of vertices. When the clothes should be designed with subdivision surface but created without, switch off "Allow Modifiers" == Produce clothes == The main features of creating clothes are: * '''name''': this is the name of the piece of cloth, also the filename * '''comment''': a short optional description * '''tags''': a list of predefined and own tags as a search criteria for MakeHuman [[File:Mc2_tagselector.png]] * '''zdepth''': determines the order of clothes. Lower values are used for clothes near the body, higher values for parts far away. This will be used to hide clothes near the body. A rule of thumb is to start with underware at 31, normal clothes (pants, t-shirt, shoes) use a default value of 50 and clothes like a coat usually use high values like 63. The following illustration shows the effect for a character equipped with ballet clothes. It also demonstrates what is happening when all values are equal. [[File:Mc2_zdepth.png]] * '''scaling''': select the part of the body which is important for the scaling. Most likely torso for a t-shirt, head for a hat etc. * '''delete-group''': it is a good method to delete vertices on the body if clothes are not transparent. This avoids bleeding through, that is, that vertices that should be "inside" suddenly appear outside of the clothes (see: [[Documentation:MakeClothes Delete-Groups|use delete-groups]]). All vertices not to be displayed should be selected on the body (not helper) and assigned to a vertex on the human. The name of this group must be inserted in the box. If more than one piece of cloth is created, they all can have a different delete-group on the same human. * '''use MakeSkin''': without MakeSkin a simple material is saved for the piece of cloth (white base color). Otherwise the material file of the plugin [[Documentation:MaterialsMakeSkin|MakeSkin]] is used. See "Materials" below. * '''subdir''': the directory inside where the clothes will be created. == Materials == Most of the clothes will need a texture. Before the texture can be used the piece of cloth must be unwrapped. Best way is to create seams in Blender, where the real seams are. Unwrap the clothes in any case. The output of this process is a UV-Map, which will be used to determine the coordinates of each vertex on the texture. If the simple standard material should not be used for export, a material can be attached with [[Documentation:MaterialsMakeSkin|MakeSkin]] <will be changed later with some advice how to do good textures etc.> == Creating of own clothes == To create clothes select the piece of cloth and press produce clothes. The tests "check clothes" and "check human" are processed and also an additional test about matching vertex groups is done. If everything is okay, the clothes can be loaded in MakeHuman. <will contain a lot of tips & tricks later> == Special poses, heels etc. == <works with a special target in MakeHuman and a pose changed with shape key in MakeClothes> == Importing existent clothes == It is possible to load an existent mhclo-file from the data folder of MakeHuman. Best is to load the human mesh before, if you want to change geometry. The clothes will also fit to a different body, but in this case they will not look as good as on the body, they were made for. But the advantage is, that e.g. clothes created for males can be used as a base for a female version. When clothes are imported, Most of fields are filled in by the process and the delete-group is marked on the human (in case a humans is available). The material is also loaded, when MakeSkin is available. The illustration shows the result of the import of the "lace_up_blouse". A material called "lace_up_blouse" was created in blender. All available information is imported and displayed. This includes the special parameters only used in MakeHuman (Backface culling, Transparent, LitSphere etc.). So also the material setup could be used for a new piece of cloth. [[File:Mc2_importclothes.png]] e627327323ff9abbb0d7931ba46b009454813304 1868 1856 2020-09-13T14:22:50Z Punkduck 38 /* Notation */ wikitext text/x-wiki Caution: this file is still under construction :) = Makeclothes Version 2 = [[File:makeclothestitle.jpg]] MakeClothes2 is used to create clothes for MakeHuman characters. It could be installed as a single plugin, but at least MakeSkin should be used, if the creation of material is also part of your work. Furthermore it is able to work with the human base mesh provided by MPFB. The term "clothes" is not really correct, the program creates any kind of mesh which can be used for a character generated by MakeHuman. This also includes hair and different tongue or a new proxy. To use MakeClothes in Blender knowledge of Blender itself is needed. == Notation == To understand the process, a short summary of terms used in MakeHuman: * '''base mesh''' and '''helper mesh''': The base mesh is the standard body mesh including a helper-mesh used in MakeHuman. ([[Documentation:Basemesh|detailed information]]) * '''proxies''': in a way all meshes projected on the body are proxies. Do differentiate between a piece of cloth and an alternative mesh for the skin, the alternative mesh is called a '''topology'''. * '''topologies''': special case for a proxy used as a mesh for the skin. * '''smoothing''': MakeHuman may use smoothing on a base mesh. This results in a mesh with 4 times as many vertices. <u>This mesh cannot be used for MakeClothes.</u> * '''clothes''': clothes will be all meshes MakeClothes is able to create. Hair and body proxies included. * '''posing''': the standard "unposed" base mesh is presented in an A-Pose. Other poses are T-Pose or a pose which is user generated. Typically these poses are created with the standard skeleton. Shapekeys can be used as a special pose too. * '''weighting''': when a character is posed the skin but also the clothes should follow the bones. So weights are added to each vertex. These weights determine how much a bone will be followed. MakeClothes uses a similar construction, since the clothes follow vertices on the helper or base mesh. [[File:Mc2_meshes_to_use.png]] Only base mesh and helper can be used to create clothes. == Limits == Makeclothes has certain limits according to the internal structure of MakeHuman * The mesh for the clothes can either be done with quads or with triangles. No mixture allowed. Advantage for quads is a smoother design with a later usage of subdivision surface algorithm (smoothing). Triangles are normally used for e.g. sculpting or when you work with 3rd party meshes. * only one material for one piece of cloth is allowed in MakeHuman * each vertex of a piece of cloth uses 3 vertices on body or helper to find its position according to the human created in MakeHuman * each vertex of a piece of cloth needs to be in one (and only one) vertex group. A group of the same name must be created on the human * it is possible to create more than one piece of cloth with one human * only one human is allowed when clothes are created. So only one object is "marked as human". However, if you need more than one base mesh, all others can be marked as clothes [[File:Mc2_makeclothes2.png|right]] == How to load a human == MakeHuman uses a mesh called hm08. Makeclothes is prepared to deal with other meshes as well for future versions. When the mesh is changed it must be changed in MakeHuman as well. So this documentation will only consider the hm08 base mesh. To create clothes you can create them directly on the body or on the helper mesh. For underwear the nude body is best choice, but for a coat the helper mesh will be used. A good method for e.g. a skirt or coat is to design the piece of cloth on the nude body and then use the helper mesh for weighting in the end. There are currently a few possibilities to load a human. The simplest way is to load a predefined one or to use MPFB, both have some vertex-groups assigned: * '''Load a predefined human''' Blend-files which are placed in the "humans" sub-directory of the makeclothes plugin can be used directly. When MakeClothes starts, these blend-files are scanned once and names of the objects starting with "mh_" are presented in a menu. The selected mesh is appended by pressing the "Import predefined human" button. [[File:Mc2_loadpredef.png]] In case of a helper mesh, the parts of the mesh are assigned to different vertex-groups to allow an easy selection and use different colors. After the mesh is loaded these buttons disappear, because one human is already loaded. The loaded mesh is automatically marked as a human. To load another human either delete the human or mark your human as clothes. {| style="color:green; background-color:#ffffcc;" |- |The files of the pre-defined humans are not yet included in the repository, this will happen soon, different meshes will be provided, also t-posed ones. If you want to work with that already: |- |create folder humans in Blender directory scripts/addons/makeclothes |- |unzip this file [http://www.makehumancommunity.org/forum/download/file.php?id=8095 Zip-File with male and female meshes] |- |move both blend files into this folder. |- |} * '''Load the human via MPFB''' Makehuman Plugin for Blender also can provide a base mesh. Be aware that the best base is an unmodified male or female mesh, because the clothes will fit most of the characters. Do not use proxies. If you import an human this is already the base mesh. If you need the helpers, change settings according to the illustration and import the mesh. Instead of "don't modify" you can also use "Mask". [[File:Mc2_loadhumanmfb.png]] * '''Load normal base.obj file''' This is the way using the predefined base.obj file which can be downloaded from github. MakeClothes reads the wavefront file. Vertex groups are created according to the .obj file. Disadvantage: this mesh is neither male nor female. An exported wavefront mesh made by MakeHuman can be used as well (no proxy, do not use smoothing and delete the extra eyes). It is possible to export it including the helpers. Unfortunately it has no vertex groups assigned. This must be done in Blender later. * '''Load an mhx2 file''' The body (no proxy, do not use smoothing and delete the extra eyes) used by mhx2 export can also be used as a base mesh. When you load it you have to select Override Exported Data and the mark Helper Geometry before importing it. * '''Delete helpers''' If a mesh is loaded and the helpers are not needed, the helpers can be deleted. In this case a vertex-group "body" is expected, all vertices belonging to other groups are deleted. If body is not available, nothing will be done. == Tell MakeClothes the type of the object == [[File:Mc2_customprops.png|right]] To create clothes, one object must be marked as human and at least one as clothes. If you work with more than one human, all others must be marked as clothes temporarily. When you mark one object as human a previously marked human will automatically be marked as clothes. The custom properties of the object will held this information. == Create simple clothes (extract from helper) == In case a helper mesh is available it is possible to use the helpers as a first try. Especially for beginners (but also for the advanced for a good weighting) this could be helpful. <more text to be written> == Assign vertex-groups == Vertex-groups are a number of vertices of a mesh forming a group with vertex-group name. These groups are used to determine relations between e.g. vertices on the body and vertices on a piece of cloth. The simplest way would be: * create a group "cloth" on the human * assign all vertices of the human to this group * create a group "cloth" on your piece of cloth * assign all vertices of the piece of cloth to this group This might work, but it is not a good way. There are many risks. So here are examples from some of the assets I did: [[Documentation:MakeClothes Vertex-Groups|Create vertex-groups]] == Test the human mesh == The human loaded with one of the methods usually should not have problems. Nevertheless there is a small test available to check the human. This test is also automatically done when clothes are created. * the number of human objects must be one * there must be one vertex group on the human * no vertex belongs to an non-existing group [[File:Mc2_checkhuman.png]] == Test the clothes == Clothes need a bit more testing. * clothes should not have stray geometry. These are single vertices or edges. If this problem appears, change into edit mode. The vertices are pre-selected. Simply delete them or change geometry otherwise. * maximum number of vertices per face is 4. If you have more than this, these faces are selected and must be changed. * clothes can be quad or triangle meshes. A mixture is not allowed. The process assumes a mesh type and selects the faces to be changed. * the process tests if at least one vertex group is available * all vertices must belong to one vertex group. Vertices belonging to no group are selected and can be changed in edit mode. * all vertices must belong to only one vertex group. Vertices belonging to more than one group are selected and can be changed in edit mode. * no vertex belongs to an non-existing group * a test is done, how many edges belong to one vertex. Typically quad meshes with a low pole-count will have better geometric qualities. This is only a warning. The vertices with more than 8 neighbor vertices will be selected and can be changed in edit mode. [[File:Mc2_checkclothes.png]] == Common settings == The common settings will provide the '''license''' and the name of the '''author''', which will be used for all the clothes generated with this file. * '''Overwrite existing files''' is switched off. The name of the piece of cloth is used as a filename. If it is necessary to overwrite an existing object, the box must be marked. * '''Modifiers are allowed'''. Typically the mirror modifier may make sense. Be careful with e.g. subdivision surface, because it may produce a huge number of vertices. When the clothes should be designed with subdivision surface but created without, switch off "Allow Modifiers" == Produce clothes == The main features of creating clothes are: * '''name''': this is the name of the piece of cloth, also the filename * '''comment''': a short optional description * '''tags''': a list of predefined and own tags as a search criteria for MakeHuman [[File:Mc2_tagselector.png]] * '''zdepth''': determines the order of clothes. Lower values are used for clothes near the body, higher values for parts far away. This will be used to hide clothes near the body. A rule of thumb is to start with underware at 31, normal clothes (pants, t-shirt, shoes) use a default value of 50 and clothes like a coat usually use high values like 63. The following illustration shows the effect for a character equipped with ballet clothes. It also demonstrates what is happening when all values are equal. [[File:Mc2_zdepth.png]] * '''scaling''': select the part of the body which is important for the scaling. Most likely torso for a t-shirt, head for a hat etc. * '''delete-group''': it is a good method to delete vertices on the body if clothes are not transparent. This avoids bleeding through, that is, that vertices that should be "inside" suddenly appear outside of the clothes (see: [[Documentation:MakeClothes Delete-Groups|use delete-groups]]). All vertices not to be displayed should be selected on the body (not helper) and assigned to a vertex on the human. The name of this group must be inserted in the box. If more than one piece of cloth is created, they all can have a different delete-group on the same human. * '''use MakeSkin''': without MakeSkin a simple material is saved for the piece of cloth (white base color). Otherwise the material file of the plugin [[Documentation:MaterialsMakeSkin|MakeSkin]] is used. See "Materials" below. * '''subdir''': the directory inside where the clothes will be created. == Materials == Most of the clothes will need a texture. Before the texture can be used the piece of cloth must be unwrapped. Best way is to create seams in Blender, where the real seams are. Unwrap the clothes in any case. The output of this process is a UV-Map, which will be used to determine the coordinates of each vertex on the texture. If the simple standard material should not be used for export, a material can be attached with [[Documentation:MaterialsMakeSkin|MakeSkin]] <will be changed later with some advice how to do good textures etc.> == Creating of own clothes == To create clothes select the piece of cloth and press produce clothes. The tests "check clothes" and "check human" are processed and also an additional test about matching vertex groups is done. If everything is okay, the clothes can be loaded in MakeHuman. <will contain a lot of tips & tricks later> == Special poses, heels etc. == <works with a special target in MakeHuman and a pose changed with shape key in MakeClothes> == Importing existent clothes == It is possible to load an existent mhclo-file from the data folder of MakeHuman. Best is to load the human mesh before, if you want to change geometry. The clothes will also fit to a different body, but in this case they will not look as good as on the body, they were made for. But the advantage is, that e.g. clothes created for males can be used as a base for a female version. When clothes are imported, Most of fields are filled in by the process and the delete-group is marked on the human (in case a humans is available). The material is also loaded, when MakeSkin is available. The illustration shows the result of the import of the "lace_up_blouse". A material called "lace_up_blouse" was created in blender. All available information is imported and displayed. This includes the special parameters only used in MakeHuman (Backface culling, Transparent, LitSphere etc.). So also the material setup could be used for a new piece of cloth. [[File:Mc2_importclothes.png]] 3b2f1b82a0db7d5d068e6142e57615d4a717220b 1856 1850 2020-08-06T18:00:55Z Punkduck 38 wikitext text/x-wiki Caution: this file is still under construction :) = Makeclothes Version 2 = [[File:makeclothestitle.jpg]] MakeClothes2 is used to create clothes for MakeHuman characters. It could be installed as a single plugin, but at least MakeSkin should be used, if the creation of material is also part of your work. Furthermore it is able to work with the human base mesh provided by MPFB. The term "clothes" is not really correct, the program creates any kind of mesh which can be used for a character generated by MakeHuman. This also includes hair and different tongue or a new proxy. To use MakeClothes in Blender knowledge of Blender itself is needed. == Notation == To understand the process, a short summary of terms used in MakeHuman: * '''base mesh''': The base mesh is the standard body mesh used in MakeHuman. It has an exact number of vertices and each vertex has a number, starting with number 0 to 13379. * '''helper mesh''': The helper mesh is used to create all parts not directly attached to the body. This includes body parts like teeth, tongue and eyes and (male) genital, but also is used for generation of clothes (tights and skirt) and hair. The helper mesh is also deformed invisible in MakeHuman, when you change the character. The helper mesh comes with the base mesh. * '''proxy''': in a way all meshes projected on the body are proxies. Also the clothes are proxies, but in this case proxies should only be alternative meshes for the skin of the body * '''smoothing''': MakeHuman may use smoothing on a base mesh. This results in a mesh with 4 times as many vertices. <u>This mesh cannot be used for MakeClothes.</u> * '''clothes''': clothes will be all meshes MakeClothes is able to create. Hair and body proxies included. * '''posing''': the standard "unposed" base mesh is presented in an A-Pose. Other poses are T-Pose or a pose which is user generated. Typically these poses are created with the standard skeleton. Shapekeys can be used as a special pose too. * '''weighting''': when a character is posed the skin but also the clothes should follow the bones. So weights are added to each vertex. These weights determine how much a bone will be followed. MakeClothes uses a similar construction, since the clothes follow vertices on the helper or base mesh. [[File:Mc2_meshes_to_use.png]] Only base mesh and helper can be used to create clothes. == Limits == Makeclothes has certain limits according to the internal structure of MakeHuman * The mesh for the clothes can either be done with quads or with triangles. No mixture allowed. Advantage for quads is a smoother design with a later usage of subdivision surface algorithm (smoothing). Triangles are normally used for e.g. sculpting or when you work with 3rd party meshes. * only one material for one piece of cloth is allowed in MakeHuman * each vertex of a piece of cloth uses 3 vertices on body or helper to find its position according to the human created in MakeHuman * each vertex of a piece of cloth needs to be in one (and only one) vertex group. A group of the same name must be created on the human * it is possible to create more than one piece of cloth with one human * only one human is allowed when clothes are created. So only one object is "marked as human". However, if you need more than one base mesh, all others can be marked as clothes [[File:Mc2_makeclothes2.png|right]] == How to load a human == MakeHuman uses a mesh called hm08. Makeclothes is prepared to deal with other meshes as well for future versions. When the mesh is changed it must be changed in MakeHuman as well. So this documentation will only consider the hm08 base mesh. To create clothes you can create them directly on the body or on the helper mesh. For underwear the nude body is best choice, but for a coat the helper mesh will be used. A good method for e.g. a skirt or coat is to design the piece of cloth on the nude body and then use the helper mesh for weighting in the end. There are currently a few possibilities to load a human. The simplest way is to load a predefined one or to use MPFB, both have some vertex-groups assigned: * '''Load a predefined human''' Blend-files which are placed in the "humans" sub-directory of the makeclothes plugin can be used directly. When MakeClothes starts, these blend-files are scanned once and names of the objects starting with "mh_" are presented in a menu. The selected mesh is appended by pressing the "Import predefined human" button. [[File:Mc2_loadpredef.png]] In case of a helper mesh, the parts of the mesh are assigned to different vertex-groups to allow an easy selection and use different colors. After the mesh is loaded these buttons disappear, because one human is already loaded. The loaded mesh is automatically marked as a human. To load another human either delete the human or mark your human as clothes. {| style="color:green; background-color:#ffffcc;" |- |The files of the pre-defined humans are not yet included in the repository, this will happen soon, different meshes will be provided, also t-posed ones. If you want to work with that already: |- |create folder humans in Blender directory scripts/addons/makeclothes |- |unzip this file [http://www.makehumancommunity.org/forum/download/file.php?id=8095 Zip-File with male and female meshes] |- |move both blend files into this folder. |- |} * '''Load the human via MPFB''' Makehuman Plugin for Blender also can provide a base mesh. Be aware that the best base is an unmodified male or female mesh, because the clothes will fit most of the characters. Do not use proxies. If you import an human this is already the base mesh. If you need the helpers, change settings according to the illustration and import the mesh. Instead of "don't modify" you can also use "Mask". [[File:Mc2_loadhumanmfb.png]] * '''Load normal base.obj file''' This is the way using the predefined base.obj file which can be downloaded from github. MakeClothes reads the wavefront file. Vertex groups are created according to the .obj file. Disadvantage: this mesh is neither male nor female. An exported wavefront mesh made by MakeHuman can be used as well (no proxy, do not use smoothing and delete the extra eyes). It is possible to export it including the helpers. Unfortunately it has no vertex groups assigned. This must be done in Blender later. * '''Load an mhx2 file''' The body (no proxy, do not use smoothing and delete the extra eyes) used by mhx2 export can also be used as a base mesh. When you load it you have to select Override Exported Data and the mark Helper Geometry before importing it. * '''Delete helpers''' If a mesh is loaded and the helpers are not needed, the helpers can be deleted. In this case a vertex-group "body" is expected, all vertices belonging to other groups are deleted. If body is not available, nothing will be done. == Tell MakeClothes the type of the object == [[File:Mc2_customprops.png|right]] To create clothes, one object must be marked as human and at least one as clothes. If you work with more than one human, all others must be marked as clothes temporarily. When you mark one object as human a previously marked human will automatically be marked as clothes. The custom properties of the object will held this information. == Create simple clothes (extract from helper) == In case a helper mesh is available it is possible to use the helpers as a first try. Especially for beginners (but also for the advanced for a good weighting) this could be helpful. <more text to be written> == Assign vertex-groups == Vertex-groups are a number of vertices of a mesh forming a group with vertex-group name. These groups are used to determine relations between e.g. vertices on the body and vertices on a piece of cloth. The simplest way would be: * create a group "cloth" on the human * assign all vertices of the human to this group * create a group "cloth" on your piece of cloth * assign all vertices of the piece of cloth to this group This might work, but it is not a good way. There are many risks. So here are examples from some of the assets I did: [[Documentation:MakeClothes Vertex-Groups|Create vertex-groups]] == Test the human mesh == The human loaded with one of the methods usually should not have problems. Nevertheless there is a small test available to check the human. This test is also automatically done when clothes are created. * the number of human objects must be one * there must be one vertex group on the human * no vertex belongs to an non-existing group [[File:Mc2_checkhuman.png]] == Test the clothes == Clothes need a bit more testing. * clothes should not have stray geometry. These are single vertices or edges. If this problem appears, change into edit mode. The vertices are pre-selected. Simply delete them or change geometry otherwise. * maximum number of vertices per face is 4. If you have more than this, these faces are selected and must be changed. * clothes can be quad or triangle meshes. A mixture is not allowed. The process assumes a mesh type and selects the faces to be changed. * the process tests if at least one vertex group is available * all vertices must belong to one vertex group. Vertices belonging to no group are selected and can be changed in edit mode. * all vertices must belong to only one vertex group. Vertices belonging to more than one group are selected and can be changed in edit mode. * no vertex belongs to an non-existing group * a test is done, how many edges belong to one vertex. Typically quad meshes with a low pole-count will have better geometric qualities. This is only a warning. The vertices with more than 8 neighbor vertices will be selected and can be changed in edit mode. [[File:Mc2_checkclothes.png]] == Common settings == The common settings will provide the '''license''' and the name of the '''author''', which will be used for all the clothes generated with this file. * '''Overwrite existing files''' is switched off. The name of the piece of cloth is used as a filename. If it is necessary to overwrite an existing object, the box must be marked. * '''Modifiers are allowed'''. Typically the mirror modifier may make sense. Be careful with e.g. subdivision surface, because it may produce a huge number of vertices. When the clothes should be designed with subdivision surface but created without, switch off "Allow Modifiers" == Produce clothes == The main features of creating clothes are: * '''name''': this is the name of the piece of cloth, also the filename * '''comment''': a short optional description * '''tags''': a list of predefined and own tags as a search criteria for MakeHuman [[File:Mc2_tagselector.png]] * '''zdepth''': determines the order of clothes. Lower values are used for clothes near the body, higher values for parts far away. This will be used to hide clothes near the body. A rule of thumb is to start with underware at 31, normal clothes (pants, t-shirt, shoes) use a default value of 50 and clothes like a coat usually use high values like 63. The following illustration shows the effect for a character equipped with ballet clothes. It also demonstrates what is happening when all values are equal. [[File:Mc2_zdepth.png]] * '''scaling''': select the part of the body which is important for the scaling. Most likely torso for a t-shirt, head for a hat etc. * '''delete-group''': it is a good method to delete vertices on the body if clothes are not transparent. This avoids bleeding through, that is, that vertices that should be "inside" suddenly appear outside of the clothes (see: [[Documentation:MakeClothes Delete-Groups|use delete-groups]]). All vertices not to be displayed should be selected on the body (not helper) and assigned to a vertex on the human. The name of this group must be inserted in the box. If more than one piece of cloth is created, they all can have a different delete-group on the same human. * '''use MakeSkin''': without MakeSkin a simple material is saved for the piece of cloth (white base color). Otherwise the material file of the plugin [[Documentation:MaterialsMakeSkin|MakeSkin]] is used. See "Materials" below. * '''subdir''': the directory inside where the clothes will be created. == Materials == Most of the clothes will need a texture. Before the texture can be used the piece of cloth must be unwrapped. Best way is to create seams in Blender, where the real seams are. Unwrap the clothes in any case. The output of this process is a UV-Map, which will be used to determine the coordinates of each vertex on the texture. If the simple standard material should not be used for export, a material can be attached with [[Documentation:MaterialsMakeSkin|MakeSkin]] <will be changed later with some advice how to do good textures etc.> == Creating of own clothes == To create clothes select the piece of cloth and press produce clothes. The tests "check clothes" and "check human" are processed and also an additional test about matching vertex groups is done. If everything is okay, the clothes can be loaded in MakeHuman. <will contain a lot of tips & tricks later> == Special poses, heels etc. == <works with a special target in MakeHuman and a pose changed with shape key in MakeClothes> == Importing existent clothes == It is possible to load an existent mhclo-file from the data folder of MakeHuman. Best is to load the human mesh before, if you want to change geometry. The clothes will also fit to a different body, but in this case they will not look as good as on the body, they were made for. But the advantage is, that e.g. clothes created for males can be used as a base for a female version. When clothes are imported, Most of fields are filled in by the process and the delete-group is marked on the human (in case a humans is available). The material is also loaded, when MakeSkin is available. The illustration shows the result of the import of the "lace_up_blouse". A material called "lace_up_blouse" was created in blender. All available information is imported and displayed. This includes the special parameters only used in MakeHuman (Backface culling, Transparent, LitSphere etc.). So also the material setup could be used for a new piece of cloth. [[File:Mc2_importclothes.png]] c53bd2fdfacda68bdaa26b834614243930aae2c8 1850 1841 2020-08-03T18:30:57Z Punkduck 38 wikitext text/x-wiki Caution: this file is still under construction :) = Makeclothes Version 2 = [[File:makeclothestitle.jpg]] MakeClothes2 is used to create clothes for MakeHuman characters. It could be installed as a single plugin, but at least MakeSkin should be used, if the creation of material is also part of your work. Furthermore it is able to work with the human base mesh provided by MPFB. The term "clothes" is not really correct, the program creates any kind of mesh which can be used for a character generated by MakeHuman. This also includes hair and different tongue or a new proxy. To use MakeClothes in Blender knowledge of Blender itself is needed. == Notation == To understand the process, a short summary of terms used in MakeHuman: * '''base mesh''': The base mesh is the standard body mesh used in MakeHuman. It has an exact number of vertices and each vertex has a number, starting with number 0 to 13379. * '''helper mesh''': The helper mesh is used to create all parts not directly attached to the body. This includes body parts like teeth, tongue and eyes and (male) genital, but also is used for generation of clothes (tights and skirt) and hair. The helper mesh is also deformed invisible in MakeHuman, when you change the character. The helper mesh comes with the base mesh. * '''proxy''': in a way all meshes projected on the body are proxies. Also the clothes are proxies, but in this case proxies should only be alternative meshes for the skin of the body * '''smoothing''': MakeHuman may use smoothing on a base mesh. This results in a mesh with 4 times as many vertices. <u>This mesh cannot be used for MakeClothes.</u> * '''clothes''': clothes will be all meshes MakeClothes is able to create. Hair and body proxies included. * '''posing''': the standard "unposed" base mesh is presented in an A-Pose. Other poses are T-Pose or a pose which is user generated. Typically these poses are created with the standard skeleton. Shapekeys can be used as a special pose too. * '''weighting''': when a character is posed the skin but also the clothes should follow the bones. So weights are added to each vertex. These weights determine how much a bone will be followed. MakeClothes uses a similar construction, since the clothes follow vertices on the helper or base mesh. [[File:Mc2_meshes_to_use.png]] Only base mesh and helper can be used to create clothes. == Limits == Makeclothes has certain limits according to the internal structure of MakeHuman * The mesh for the clothes can either be done with quads or with triangles. No mixture allowed. Advantage for quads is a smoother design with a later usage of subdivision surface algorithm (smoothing). Triangles are normally used for e.g. sculpting or when you work with 3rd party meshes. * only one material for one piece of cloth is allowed in MakeHuman * each vertex of a piece of cloth uses 3 vertices on body or helper to find its position according to the human created in MakeHuman * each vertex of a piece of cloth needs to be in one (and only one) vertex group. A group of the same name must be created on the human * it is possible to create more than one piece of cloth with one human * only one human is allowed when clothes are created. So only one object is "marked as human". However, if you need more than one base mesh, all others can be marked as clothes [[File:Mc2_makeclothes2.png|right]] == How to load a human == MakeHuman uses a mesh called hm08. Makeclothes is prepared to deal with other meshes as well for future versions. When the mesh is changed it must be changed in MakeHuman as well. So this documentation will only consider the hm08 base mesh. To create clothes you can create them directly on the body or on the helper mesh. For underwear the nude body is best choice, but for a coat the helper mesh will be used. A good method for e.g. a skirt or coat is to design the piece of cloth on the nude body and then use the helper mesh for weighting in the end. There are currently a few possibilities to load a human. The simplest way is to load a predefined one or to use MPFB, both have some vertex-groups assigned: * '''Load a predefined human''' Blend-files which are placed in the "humans" sub-directory of the makeclothes plugin can be used directly. When MakeClothes starts, these blend-files are scanned once and names of the objects starting with "mh_" are presented in a menu. The selected mesh is appended by pressing the "Import predefined human" button. [[File:Mc2_loadpredef.png]] In case of a helper mesh, the parts of the mesh are assigned to different vertex-groups to allow an easy selection and use different colors. After the mesh is loaded these buttons disappear, because one human is already loaded. The loaded mesh is automatically marked as a human. To load another human either delete the human or mark your human as clothes. {| style="color:green; background-color:#ffffcc;" |- |The files of the pre-defined humans are not yet included in the repository, this will happen soon, different meshes will be provided, also t-posed ones. If you want to work with that already: |- |create folder humans in Blender directory scripts/addons/makeclothes |- |unzip this file [http://www.makehumancommunity.org/forum/download/file.php?id=8095 Zip-File with male and female meshes] |- |move both blend files into this folder. |- |} * '''Load the human via MPFB''' Makehuman Plugin for Blender also can provide a base mesh. Be aware that the best base is an unmodified male or female mesh, because the clothes will fit most of the characters. Do not use proxies. If you import an human this is already the base mesh. If you need the helpers, change settings according to the illustration and import the mesh. Instead of "don't modify" you can also use "Mask". [[File:Mc2_loadhumanmfb.png]] * '''Load normal base.obj file''' This is the way using the predefined base.obj file which can be downloaded from github. MakeClothes reads the wavefront file. Vertex groups are created according to the .obj file. Disadvantage: this mesh is neither male nor female. An exported wavefront mesh made by MakeHuman can be used as well (no proxy, do not use smoothing and delete the extra eyes). It is possible to export it including the helpers. Unfortunately it has no vertex groups assigned. This must be done in Blender later. * '''Load an mhx2 file''' The body (no proxy, do not use smoothing and delete the extra eyes) used by mhx2 export can also be used as a base mesh. When you load it you have to select Override Exported Data and the mark Helper Geometry before importing it. * '''Delete helpers''' If a mesh is loaded and the helpers are not needed, the helpers can be deleted. In this case a vertex-group "body" is expected, all vertices belonging to other groups are deleted. If body is not available, nothing will be done. == Tell MakeClothes the type of the object == [[File:Mc2_customprops.png|right]] To create clothes, one object must be marked as human and at least one as clothes. If you work with more than one human, all others must be marked as clothes temporarily. When you mark one object as human a previously marked human will automatically be marked as clothes. The custom properties of the object will held this information. == Create simple clothes (extract from helper) == In case a helper mesh is available it is possible to use the helpers as a first try. Especially for beginners (but also for the advanced for a good weighting) this could be helpful. <more text to be written> == Assign vertex-groups == Vertex-groups are a number of vertices of a mesh forming a group with vertex-group name. These groups are used to determine relations between e.g. vertices on the body and vertices on a piece of cloth. The simplest way would be: * create a group "cloth" on the human * assign all vertices of the human to this group * create a group "cloth" on your piece of cloth * assign all vertices of the piece of cloth to this group This might work, but it is not a good way. There are many risks. So here are examples from some of the assets I did: [[Documentation:MakeClothes Vertex-Groups|Create vertex-groups]] == Test the human mesh == The human loaded with one of the methods usually should not have problems. Nevertheless there is a small test available to check the human. This test is also automatically done when clothes are created. * the number of human objects must be one * there must be one vertex group on the human * no vertex belongs to an non-existing group [[File:Mc2_checkhuman.png]] == Test the clothes == Clothes need a bit more testing. * clothes should not have stray geometry. These are single vertices or edges. If this problem appears, change into edit mode. The vertices are pre-selected. Simply delete them or change geometry otherwise. * maximum number of vertices per face is 4. If you have more than this, these faces are selected and must be changed. * clothes can be quad or triangle meshes. A mixture is not allowed. The process assumes a mesh type and selects the faces to be changed. * the process tests if at least one vertex group is available * all vertices must belong to one vertex group. Vertices belonging to no group are selected and can be changed in edit mode. * all vertices must belong to only one vertex group. Vertices belonging to more than one group are selected and can be changed in edit mode. * no vertex belongs to an non-existing group * a test is done, how many edges belong to one vertex. Typically quad meshes with a low pole-count will have better geometric qualities. This is only a warning. The vertices with more than 8 neighbor vertices will be selected and can be changed in edit mode. [[File:Mc2_checkclothes.png]] == Common settings == The common settings will provide the '''license''' and the name of the '''author''', which will be used for all the clothes generated with this file. * '''Overwrite existing files''' is switched off. The name of the piece of cloth is used as a filename. If it is necessary to overwrite an existing object, the box must be marked. * '''Modifiers are allowed'''. Typically the mirror modifier may make sense. Be careful with e.g. subdivision surface, because it may produce a huge number of vertices. When the clothes should be designed with subdivision surface but created without, switch off "Allow Modifiers" == Produce clothes == The main features of creating clothes are: * '''name''': this is the name of the piece of cloth, also the filename * '''comment''': a short optional description * '''tags''': a list of predefined and own tags as a search criteria for MakeHuman [[File:Mc2_tagselector.png]] * '''zdepth''': determines the order of clothes. Lower values are used for clothes near the body, higher values for parts far away. This will be used to hide clothes near the body. A rule of thumb is to start with underware at 31, normal clothes (pants, t-shirt, shoes) use a default value of 50 and clothes like a coat usually use high values like 63. The following illustration shows the effect for a character equipped with ballet clothes. It also demonstrates what is happening when all values are equal. [[File:Mc2_zdepth.png]] * '''scaling''': select the part of the body which is important for the scaling. Most likely torso for a t-shirt, head for a hat etc. * '''delete-group''': it is a good method to delete vertices on the body if clothes are not transparent. This avoids bleeding through, that is, that vertices that should be "inside" suddenly appear outside of the clothes. All vertices not to be displayed should be selected on the body (not helper) and assigned to a vertex on the human. The name of this group must be inserted in the box. If more than one piece of cloth is created, they all can have a different delete-group on the same human. * '''use MakeSkin''': without MakeSkin a simple material is saved for the piece of cloth (white base color). Otherwise the material file of the plugin [[Documentation:MaterialsMakeSkin|MakeSkin]] is used. See "Materials" below. * '''subdir''': the directory inside where the clothes will be created. == Materials == Most of the clothes will need a texture. Before the texture can be used the piece of cloth must be unwrapped. Best way is to create seams in Blender, where the real seams are. Unwrap the clothes in any case. The output of this process is a UV-Map, which will be used to determine the coordinates of each vertex on the texture. If the simple standard material should not be used for export, a material can be attached with [[Documentation:MaterialsMakeSkin|MakeSkin]] <will be changed later with some advice how to do good textures etc.> == Creating of own clothes == To create clothes select the piece of cloth and press produce clothes. The tests "check clothes" and "check human" are processed and also an additional test about matching vertex groups is done. If everything is okay, the clothes can be loaded in MakeHuman. <will contain a lot of tips & tricks later> == Special poses, heels etc. == <works with a special target in MakeHuman and a pose changed with shape key in MakeClothes> == Importing existent clothes == It is possible to load an existent mhclo-file from the data folder of MakeHuman. Best is to load the human mesh before, if you want to change geometry. The clothes will also fit to a different body, but in this case they will not look as good as on the body, they were made for. But the advantage is, that e.g. clothes created for males can be used as a base for a female version. When clothes are imported, Most of fields are filled in by the process and the delete-group is marked on the human (in case a humans is available). The material is also loaded, when MakeSkin is available. The illustration shows the result of the import of the "lace_up_blouse". A material called "lace_up_blouse" was created in blender. All available information is imported and displayed. This includes the special parameters only used in MakeHuman (Backface culling, Transparent, LitSphere etc.). So also the material setup could be used for a new piece of cloth. [[File:Mc2_importclothes.png]] 73746ee5e8a8f7dd3f7a5307f7cac4114f08ea0d 1841 1834 2020-07-26T10:44:41Z Punkduck 38 wikitext text/x-wiki Caution: this file is still under construction :) = Makeclothes Version 2 = [[File:makeclothestitle.jpg]] MakeClothes2 is used to create clothes for MakeHuman characters. It could be installed as a single plugin, but at least MakeSkin should be used, if the creation of material is also part of your work. Furthermore it is able to work with the human base mesh provided by MPFB. The term "clothes" is not really correct, the program creates any kind of mesh which can be used for a character generated by MakeHuman. This also includes hair and different tongue or a new proxy. To use MakeClothes in Blender knowledge of Blender itself is needed. == Notation == To understand the process, a short summary of terms used in MakeHuman: * '''base mesh''': The base mesh is the standard body mesh used in MakeHuman. It has an exact number of vertices and each vertex has a number, starting with number 0 to 13379. * '''helper mesh''': The helper mesh is used to create all parts not directly attached to the body. This includes body parts like teeth, tongue and eyes and (male) genital, but also is used for generation of clothes (tights and skirt) and hair. The helper mesh is also deformed invisible in MakeHuman, when you change the character. The helper mesh comes with the base mesh. * '''proxy''': in a way all meshes projected on the body are proxies. Also the clothes are proxies, but in this case proxies should only be alternative meshes for the skin of the body * '''smoothing''': MakeHuman may use smoothing on a base mesh. This results in a mesh with 4 times as many vertices. <u>This mesh cannot be used for MakeClothes.</u> * '''clothes''': clothes will be all meshes MakeClothes is able to create. Hair and body proxies included. * '''posing''': the standard "unposed" base mesh is presented in an A-Pose. Other poses are T-Pose or a pose which is user generated. Typically these poses are created with the standard skeleton. Shapekeys can be used as a special pose too. * '''weighting''': when a character is posed the skin but also the clothes should follow the bones. So weights are added to each vertex. These weights determine how much a bone will be followed. MakeClothes uses a similar construction, since the clothes follow vertices on the helper or base mesh. [[File:Mc2_meshes_to_use.png]] Only base mesh and helper can be used to create clothes. == Limits == Makeclothes has certain limits according to the internal structure of MakeHuman * The mesh for the clothes can either be done with quads or with triangles. No mixture allowed. Advantage for quads is a smoother design with a later usage of subdivision surface algorithm (smoothing). Triangles are normally used for e.g. sculpting or when you work with 3rd party meshes. * only one material for one piece of cloth is allowed in MakeHuman * each vertex of a piece of cloth uses 3 vertices on body or helper to find its position according to the human created in MakeHuman * each vertex of a piece of cloth needs to be in one (and only one) vertex group. A group of the same name must be created on the human * it is possible to create more than one piece of cloth with one human * only one human is allowed when clothes are created. So only one object is "marked as human". However, if you need more than one base mesh, all others can be marked as clothes [[File:Mc2_makeclothes2.png|right]] == How to load a human == MakeHuman uses a mesh called hm08. Makeclothes is prepared to deal with other meshes as well for future versions. When the mesh is changed it must be changed in MakeHuman as well. So this documentation will only consider the hm08 base mesh. To create clothes you can create them directly on the body or on the helper mesh. For underwear the nude body is best choice, but for a coat the helper mesh will be used. A good method for e.g. a skirt or coat is to design the piece of cloth on the nude body and then use the helper mesh for weighting in the end. There are currently a few possibilities to load a human. The simplest way is to load a predefined one or to use MPFB, both have some vertex-groups assigned: * '''Load a predefined human''' Blend-files which are placed in the "humans" sub-directory of the makeclothes plugin can be used directly. When MakeClothes starts, these blend-files are scanned once and names of the objects starting with "mh_" are presented in a menu. The selected mesh is appended by pressing the "Import predefined human" button. [[File:Mc2_loadpredef.png]] In case of a helper mesh, the parts of the mesh are assigned to different vertex-groups to allow an easy selection and use different colors. After the mesh is loaded these buttons disappear, because one human is already loaded. The loaded mesh is automatically marked as a human. To load another human either delete the human or mark your human as clothes. {| style="color:green; background-color:#ffffcc;" |- |The files of the pre-defined humans are not yet included in the repository, this will happen soon, different meshes will be provided, also t-posed ones. If you want to work with that already: |- |create folder humans in Blender directory scripts/addons/makeclothes |- |unzip this file [http://www.makehumancommunity.org/forum/download/file.php?id=8095 Zip-File with male and female meshes] |- |move both blend files into this folder. |- |} * '''Load the human via MPFB''' Makehuman Plugin for Blender also can provide a base mesh. Be aware that the best base is an unmodified male or female mesh, because the clothes will fit most of the characters. Do not use proxies. If you import an human this is already the base mesh. If you need the helpers, change settings according to the illustration and import the mesh. Instead of "don't modify" you can also use "Mask". [[File:Mc2_loadhumanmfb.png]] * '''Load normal base.obj file''' This is the way using the predefined base.obj file which can be downloaded from github. MakeClothes reads the wavefront file. Vertex groups are created according to the .obj file. Disadvantage: this mesh is neither male nor female. An exported wavefront mesh made by MakeHuman can be used as well (no proxy, do not use smoothing and delete the extra eyes). It is possible to export it including the helpers. Unfortunately it has no vertex groups assigned. This must be done in Blender later. * '''Load an mhx2 file''' The body (no proxy, do not use smoothing and delete the extra eyes) used by mhx2 export can also be used as a base mesh. When you load it you have to select Override Exported Data and the mark Helper Geometry before importing it. * '''Delete helpers''' If a mesh is loaded and the helpers are not needed, the helpers can be deleted. In this case a vertex-group "body" is expected, all vertices belonging to other groups are deleted. If body is not available, nothing will be done. == Tell MakeClothes the type of the object == [[File:Mc2_customprops.png|right]] To create clothes, one object must be marked as human and at least one as clothes. If you work with more than one human, all others must be marked as clothes temporarily. When you mark one object as human a previously marked human will automatically be marked as clothes. The custom properties of the object will held this information. == Create simple clothes (extract from helper) == In case a helper mesh is available it is possible to use the helpers as a first try. Especially for beginners (but also for the advanced for a good weighting) this could be helpful. <more text to be written> == Test the human mesh == The human loaded with one of the methods usually should not have problems. Nevertheless there is a small test available to check the human. This test is also automatically done when clothes are created. * the number of human objects must be one * there must be one vertex group on the human * no vertex belongs to an non-existing group [[File:Mc2_checkhuman.png]] == Test the clothes == Clothes need a bit more testing. * clothes should not have stray geometry. These are single vertices or edges. If this problem appears, change into edit mode. The vertices are pre-selected. Simply delete them or change geometry otherwise. * maximum number of vertices per face is 4. If you have more than this, these faces are selected and must be changed. * clothes can be quad or triangle meshes. A mixture is not allowed. The process assumes a mesh type and selects the faces to be changed. * the process tests if at least one vertex group is available * all vertices must belong to one vertex group. Vertices belonging to no group are selected and can be changed in edit mode. * all vertices must belong to only one vertex group. Vertices belonging to more than one group are selected and can be changed in edit mode. * no vertex belongs to an non-existing group * a test is done, how many edges belong to one vertex. Typically quad meshes with a low pole-count will have better geometric qualities. This is only a warning. The vertices with more than 8 neighbor vertices will be selected and can be changed in edit mode. [[File:Mc2_checkclothes.png]] == Common settings == The common settings will provide the '''license''' and the name of the '''author''', which will be used for all the clothes generated with this file. * '''Overwrite existing files''' is switched off. The name of the piece of cloth is used as a filename. If it is necessary to overwrite an existing object, the box must be marked. * '''Modifiers are allowed'''. Typically the mirror modifier may make sense. Be careful with e.g. subdivision surface, because it may produce a huge number of vertices. When the clothes should be designed with subdivision surface but created without, switch off "Allow Modifiers" == Produce clothes == The main features of creating clothes are: * '''name''': this is the name of the piece of cloth, also the filename * '''comment''': a short optional description * '''tags''': a list of predefined and own tags as a search criteria for MakeHuman [[File:Mc2_tagselector.png]] * '''zdepth''': determines the order of clothes. Lower values are used for clothes near the body, higher values for parts far away. This will be used to hide clothes near the body. A rule of thumb is to start with underware at 31, normal clothes (pants, t-shirt, shoes) use a default value of 50 and clothes like a coat usually use high values like 63. The following illustration shows the effect for a character equipped with ballet clothes. It also demonstrates what is happening when all values are equal. [[File:Mc2_zdepth.png]] * '''scaling''': select the part of the body which is important for the scaling. Most likely torso for a t-shirt, head for a hat etc. * '''delete-group''': it is a good method to delete vertices on the body if clothes are not transparent. This avoids bleeding through, that is, that vertices that should be "inside" suddenly appear outside of the clothes. All vertices not to be displayed should be selected on the body (not helper) and assigned to a vertex on the human. The name of this group must be inserted in the box. If more than one piece of cloth is created, they all can have a different delete-group on the same human. * '''use MakeSkin''': without MakeSkin a simple material is saved for the piece of cloth (white base color). Otherwise the material file of the plugin [[Documentation:MaterialsMakeSkin|MakeSkin]] is used. See "Materials" below. * '''subdir''': the directory inside where the clothes will be created. == Materials == Most of the clothes will need a texture. Before the texture can be used the piece of cloth must be unwrapped. Best way is to create seams in Blender, where the real seams are. Unwrap the clothes in any case. The output of this process is a UV-Map, which will be used to determine the coordinates of each vertex on the texture. If the simple standard material should not be used for export, a material can be attached with [[Documentation:MaterialsMakeSkin|MakeSkin]] <will be changed later with some advice how to do good textures etc.> == Creating of own clothes == To create clothes select the piece of cloth and press produce clothes. The tests "check clothes" and "check human" are processed and also an additional test about matching vertex groups is done. If everything is okay, the clothes can be loaded in MakeHuman. <will contain a lot of tips & tricks later> == Special poses, heels etc. == <works with a special target in MakeHuman and a pose changed with shape key in MakeClothes> == Importing existent clothes == It is possible to load an existent mhclo-file from the data folder of MakeHuman. Best is to load the human mesh before, if you want to change geometry. The clothes will also fit to a different body, but in this case they will not look as good as on the body, they were made for. But the advantage is, that e.g. clothes created for males can be used as a base for a female version. When clothes are imported, Most of fields are filled in by the process and the delete-group is marked on the human (in case a humans is available). The material is also loaded, when MakeSkin is available. The illustration shows the result of the import of the "lace_up_blouse". A material called "lace_up_blouse" was created in blender. All available information is imported and displayed. This includes the special parameters only used in MakeHuman (Backface culling, Transparent, LitSphere etc.). So also the material setup could be used for a new piece of cloth. [[File:Mc2_importclothes.png]] c5a2d8f8801a9618bbb0853ea8400a9b517bb914 1834 2020-07-26T08:59:09Z Punkduck 38 Created page with "Caution: this file is still under construction :) = Makeclothes Version 2 = [[File:makeclothestitle.jpg]] MakeClothes2 is used to create clothes for MakeHuman characters...." wikitext text/x-wiki Caution: this file is still under construction :) = Makeclothes Version 2 = [[File:makeclothestitle.jpg]] MakeClothes2 is used to create clothes for MakeHuman characters. It could be installed as a single plugin, but at least MakeSkin should be used, if the creation of material is also part of your work. Furthermore it is able to work with the human base mesh provided by MPFB. The term "clothes" is not really correct, the program creates any kind of mesh which can be used for a character generated by MakeHuman. This also includes hair and different tongue or a new proxy. To use MakeClothes in Blender knowledge of Blender itself is needed. == Notation == To understand the process, a short summary of terms used in MakeHuman: * '''base mesh''': The base mesh is the standard body mesh used in MakeHuman. It has an exact number of vertices and each vertex has a number, starting with number 0 to 13379. * '''helper mesh''': The helper mesh is used to create all parts not directly attached to the body. This includes body parts like teeth, tongue and eyes and (male) genital, but also is used for generation of clothes (tights and skirt) and hair. The helper mesh is also deformed invisible in MakeHuman, when you change the character. The helper mesh comes with the base mesh. * '''proxy''': in a way all meshes projected on the body are proxies. Also the clothes are proxies, but in this case proxies should only be alternative meshes for the skin of the body * '''smoothing''': MakeHuman may use smoothing on a base mesh. This results in a mesh with 4 times as many vertices. <u>This mesh cannot be used for MakeClothes.</u> * '''clothes''': clothes will be all meshes MakeClothes is able to create. Hair and body proxies included. * '''posing''': the standard "unposed" base mesh is presented in an A-Pose. Other poses are T-Pose or a pose which is user generated. Typically these poses are created with the standard skeleton. Shapekeys can be used as a special pose too. * '''weighting''': when a character is posed the skin but also the clothes should follow the bones. So weights are added to each vertex. These weights determine how much a bone will be followed. MakeClothes uses a similar construction, since the clothes follow vertices on the helper or base mesh. [[File:Mc2_meshes_to_use.png]] Only base mesh and helper can be used to create clothes. == Limits == Makeclothes has certain limits according to the internal structure of MakeHuman * The mesh for the clothes can either be done with quads or with triangles. No mixture allowed. Advantage for quads is a smoother design with a later usage of subdivision surface algorithm (smoothing). Triangles are normally used for e.g. sculpting or when you work with 3rd party meshes. * only one material for one piece of cloth is allowed in MakeHuman * each vertex of a piece of cloth uses 3 vertices on body or helper to find its position according to the human created in MakeHuman * each vertex of a piece of cloth needs to be in one (and only one) vertex group. A group of the same name must be created on the human * it is possible to create more than one piece of cloth with one human * only one human is allowed when clothes are created. So only one object is "marked as human". However, if you need more than one base mesh, all others can be marked as clothes [[File:Mc2_makeclothes2.png|right]] == How to load a human == MakeHuman uses a mesh called hm08. Makeclothes is prepared to deal with other meshes as well for future versions. When the mesh is changed it must be changed in MakeHuman as well. So this documentation will only consider the hm08 base mesh. To create clothes you can create them directly on the body or on the helper mesh. For underwear the nude body is best choice, but for a coat the helper mesh will be used. A good method for e.g. a skirt or coat is to design the piece of cloth on the nude body and then use the helper mesh for weighting in the end. There are currently a few possibilities to load a human. The simplest way is to load a predefined one or to use MPFB, both have some vertex-groups assigned: * '''Load a predefined human''' Blend-files which are placed in the "humans" sub-directory of the makeclothes plugin can be used directly. When MakeClothes starts, these blend-files are scanned once and names of the objects starting with "mh_" are presented in a menu. The selected mesh is appended by pressing the "Import predefined human" button. [[File:Mc2_loadpredef.png]] In case of a helper mesh, the parts of the mesh are assigned to different vertex-groups to allow an easy selection and use different colors. After the mesh is loaded these buttons disappear, because one human is already loaded. The loaded mesh is automatically marked as a human. To load another human either delete the human or mark your human as clothes. {| style="color:green; background-color:#ffffcc;" |- |The files of the pre-defined humans are not yet included in the repository, this will happen soon, different meshes will be provided, also t-posed ones. If you want to work with that already: |- |create folder humans in Blender directory scripts/addons/makeclothes |- |unzip this file [http://www.makehumancommunity.org/forum/download/file.php?id=8095 Zip-File with male and female meshes] |- |move both blend files into this folder. |- |} * '''Load the human via MPFB''' Makehuman Plugin for Blender also can provide a base mesh. Be aware that the best base is an unmodified male or female mesh, because the clothes will fit most of the characters. Do not use proxies. If you import an human this is already the base mesh. If you need the helpers, change settings according to the illustration and import the mesh. Instead of "don't modify" you can also use "Mask". [[File:Mc2_loadhumanmfb.png]] * '''Load normal base.obj file''' This is the way using the predefined base.obj file which can be downloaded from github. MakeClothes reads the wavefront file. Vertex groups are created according to the .obj file. Disadvantage: this mesh is neither male nor female. An exported wavefront mesh made by MakeHuman can be used as well (no proxy, do not use smoothing and delete the extra eyes). It is possible to export it including the helpers. Unfortunately it has no vertex groups assigned. This must be done in Blender later. * '''Load an mhx2 file''' The body (no proxy, do not use smoothing and delete the extra eyes) used by mhx2 export can also be used as a base mesh. When you load it you have to select Override Exported Data and the mark Helper Geometry before importing it. * '''Delete helpers''' If a mesh is loaded and the helpers are not needed, the helpers can be deleted. In this case a vertex-group "body" is expected, all vertices belonging to other groups are deleted. If body is not available, nothing will be done. == Tell MakeClothes the type of the object == [[File:Mc2_customprops.png|right]] To create clothes, one object must be marked as human and at least one as clothes. If you work with more than one human, all others must be marked as clothes temporarily. When you mark one object as human a previously marked human will automatically be marked as clothes. The custom properties of the object will held this information. == Create simple clothes (extract from helper) == In case a helper mesh is available it is possible to use the helpers as a first try. Especially for beginners (but also for the advanced for a good weighting) this could be helpful. <more text to be written> == Test the human mesh == The human loaded with one of the methods usually should not have problems. Nevertheless there is a small test available to check the human. This test is also automatically done when clothes are created. * the number of human objects must be one * there must be one vertex group on the human * no vertex belongs to an non-existing group [[File:Mc2_checkhuman.png]] == Test the clothes == Clothes need a bit more testing. * clothes should not have stray geometry. These are single vertices or edges. If this problem appears, change into edit mode. The vertices are pre-selected. Simply delete them or change geometry otherwise. * maximum number of vertices per face is 4. If you have more than this, these faces are selected and must be changed. * clothes can be quad or triangle meshes. A mixture is not allowed. The process assumes a mesh type and selects the faces to be changed. * the process tests if at least one vertex group is available * all vertices must belong to one vertex group. Vertices belonging to no group are selected and can be changed in edit mode. * all vertices must belong to only one vertex group. Vertices belonging to more than one group are selected and can be changed in edit mode. * no vertex belongs to an non-existing group * a test is done, how many edges belong to one vertex. Typically quad meshes with a low pole-count will have better geometric qualities. This is only a warning. The vertices with more than 8 neighbor vertices will be selected and can be changed in edit mode. [[File:Mc2_checkclothes.png]] == Common settings == The common settings will provide the '''license''' and the name of the '''author''', which will be used for all the clothes generated with this file. * '''Overwrite existing files''' is switched off. The name of the piece of cloth is used as a filename. If it is necessary to overwrite an existing object, the box must be marked. * '''Modifiers are allowed'''. Typically the mirror modifier may make sense. Be careful with e.g. subdivision surface, because it may produce a huge number of vertices. When the clothes should be designed with subdivision surface but created without, switch off "Allow Modifiers" == Produce clothes == The main features of creating clothes are: * '''name''': this is the name of the piece of cloth, also the filename * '''comment''': a short optional description * '''tags''': a list of predefined and own tags as a search criteria for MakeHuman [[File:Mc2_tagselector.png]] * '''zdepth''': determines the order of clothes. Lower values are used for clothes near the body, higher values for parts far away. This will be used to hide clothes near the body. A rule of thumb is to start with underware at 31, normal clothes (pants, t-shirt, shoes) use a default value of 50 and clothes like a coat usually use high values like 63. The following illustration shows the effect for a character equipped with ballet clothes. It also demonstrates what is happening when all values are equal. [[File:Mc2_zdepth.png]] * '''scaling''': select the part of the body which is important for the scaling. Most likely torso for a t-shirt, head for a hat etc. * '''delete-group''': it is a good method to delete vertices on the body if clothes are not transparent. This avoids bleeding through, that is, that vertices that should be "inside" suddenly appear outside of the clothes. All vertices not to be displayed should be selected on the body (not helper) and assigned to a vertex on the human. The name of this group must be inserted in the box. If more than one piece of cloth is created, they all can have a different delete-group on the same human. * '''use MakeSkin''': without MakeSkin a simple material is saved for the piece of cloth (white base color). Otherwise the material file of the plugin MakeSkin is used <more specific text will follow> * '''subdir''': the directory inside where the clothes will be created. == Materials == Most of the clothes will need a texture. Before the texture can be used the piece of cloth must be unwrapped. Best way is to create seams in Blender, where the real seams are. Unwrap the clothes in any case. The output of this process is a UV-Map, which will be used to determine the coordinates of each vertex on the texture. <will be changed later with information about makeskin and some advice how to do good textures etc.> == Creating of own clothes == To create clothes select the piece of cloth and press produce clothes. The tests "check clothes" and "check human" are processed and also an additional test about matching vertex groups is done. If everything is okay, the clothes can be loaded in MakeHuman. <will contain a lot of tips & tricks later> == Special poses, heels etc. == <works with a special target in MakeHuman and a pose changed with shape key in MakeClothes> == Importing existent clothes == It is possible to load an existent mhclo-file from the data folder of MakeHuman. Best is to load the human mesh before, if you want to change geometry. The clothes will also fit to a different body, but in this case they will not look as good as on the body, they were made for. But the advantage is, that e.g. clothes created for males can be used as a base for a female version. When clothes are imported, Most of fields are filled in by the process and the delete-group is marked on the human (in case a humans is available). The material is also loaded, when MakeSkin is available. The illustration shows the result of the import of the "lace_up_blouse". A material called "lace_up_blouse" was created in blender. All available information is imported and displayed. This includes the special parameters only used in MakeHuman (Backface culling, Transparent, LitSphere etc.). So also the material setup could be used for a new piece of cloth. [[File:Mc2_importclothes.png]] 7baa4dca610246829136715162acd2244d46a0cf Documentation:Collection of old documents 3000 640 1951 1832 2020-11-29T11:15:09Z Punkduck 38 wikitext text/x-wiki == MakeClothes: old version == * [[Documentation:Clothes|MakeClothes V1]] (documentation replaced '''MHBlenderTools: MakeClothes''', see below) * [[Documentation:Making a simple dress|Making a simple dress]] * [[Documentation:Making diapers for a baby|Making diapers for a baby]] * [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]] * [[Documentation:Modeling a sword|Modeling a sword]] == MakeTarget: old version == * [[Documentation:Targets|MakeTarget V1]] == Old blender plugins == The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. == Documentation from Drupal == [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) 3f6835c3c47e03e37391a04851aa008864fd0968 1832 1831 2020-07-26T08:32:50Z Punkduck 38 wikitext text/x-wiki == MakeClothes: old version == * [[Documentation:Clothes|MakeClothes V1]] (documentation replaced '''MHBlenderTools: MakeClothes''', see below) * [[Documentation:Making a simple dress|Making a simple dress]] * [[Documentation:Making diapers for a baby|Making diapers for a baby]] * [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]] * [[Documentation:Modeling a sword|Modeling a sword]] == Old blender plugins == The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. == Documentation from Drupal == [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) 28364bc83ffd7e417bb6b8ee5fbe1df1cf201099 1831 2020-07-26T08:21:24Z Punkduck 38 Created page with "== MakeClothes: old version == * [[Documentation:Making a simple dress|Making a simple dress]] * [[Documentation:Making diapers for a baby|Making diapers for a baby]] * Do..." wikitext text/x-wiki == MakeClothes: old version == * [[Documentation:Making a simple dress|Making a simple dress]] * [[Documentation:Making diapers for a baby|Making diapers for a baby]] * [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]] * [[Documentation:Modeling a sword|Modeling a sword]] == Old blender plugins == The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. == Documentation from Drupal == [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) 235df369bc4cfbaafb8e467a73b45607da7d33e3 Documentation:Configuration and settings 3000 236 1309 1308 2017-02-11T13:23:31Z Aranuvir 17 /* The Plugins tab */ wikitext text/x-wiki == The General tab == The general settings include important features that can make a huge difference in MakeHuman's performance. [[File:general.png]] === Slider behaviour === * Update realtime. This option recalculates the human shape in real time during the slider movements. This requires more CPU resources. * Update normals real time. By enabling this option, the normals are updated during the slider movements in order to see a correct shading in real time. Computing the surface normals requires an intensive CPU calculation, so this can slow down old PCs. * Fit objects in realtime. By enabling it, all objects (eyes, hair, clothes, teeth, etc..) are fitted in real time during the body transformations. This requires more CPU resources. * Autozoom camera. Enabling it will automatically zoom in the camera to the zone of interest. For example, editing the head, it will zoom in to it, editing the hand, it will automatically zoom in to the hand, etc.. This can be useful in some cases, but it doesn't allow custom point of view, so this option is disabled by default. * Slider images. Enable the images to illustrate the sliders' effect. Disable it for a more compact list of controls. === Units === This setting is to choose the measurement system that will be used : * Metric, to use meters, centimeters, etc * Imperial, to use inch, feet,etc.. === Startup === * Preload macro targets. This option is very important for perfomance and startup loading time. Using the preload increases a lot the performance, but in the case when the targets are not compiled (for example the raw targets cloned from HG) it will considerably increase the loading time during startup. * Restore windows size. This option is just to remember the custom windows size used for MakeHuman. === Theme and languages. === These options areself explanatory. MakeHuman needs to be restarted for a change in the language settings to be effective. == The background tab == The Background tab allows you to add background/foreground images to use as a modelling reference or to create a scene within MakeHuman™ for the Short Pipeline. When you open the Background tab you will see a "None" icon and a list of thumbnails of the files within the backgrounds folder in the home folder (see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]), if they are present. The "None" icon is used to remove the background from the MakeHuman™ scene. [[File:background_0_0.png]] === Different backgrounds for different sides === Prior to selecting an image you should first determine the side of the MakeHuman™ scene where you want the image to appear. You can specify where you would like the background placed relative to your MakeHuman™ character with the Side control choices on the right hand side of the Background tab screen. The first six (6) options set the background in your scene using the standard Camera view positions. If you choose the last radio button option labeled "Other" you can add the background into the scene with the character and camera position however it was last set, as long as it was not in one of the predfined camera views. If you are placing an image to act as a reference image for modelling your character, you should select the side that matches your reference facing. You can insert up to 7 different images into the MakeHuman™ scene by applying a different image to each Side option. As the camera view changes into each side view or other view angle, the image shown will change as match your image side configuration for each of the camera side views shown in the modelling window. The background image, in fact, will only appear while the camera remains in the side view specified. Pressing one of the camera view options is the easiest way to get a background image to reappear if it disappears due to a camera view change. === Background opacity and position. === The Background Setting options allow you to set the background image's opacity using the Opacity slider control, which determines how transparent or opaque the image will appear in the scene, and to set the image as a background or foreground. These controls are particularly useful when you are using reference images to model your character. The standard Opacity setting of 100 is equivalent to a 60% transparency level. Setting the control to 0 will make the image invisible (100% transparency) and setting the opacity control to 250 will make the image fully opaque (0% tranparency). The "Show in Foreground" checkbox option allows you to place the image in front of the character in the scene so that the character will be obscured according to the opacity level setting of the background image. This option should be checked if the image will be used as a reference image for modelling. The background can be moved and resized to properly fit the character, checking the options in the left side and then clicking and dragging with leftbutton or rightbutton. == The Mouse tab == THe "Mouse" tab allows you to configure the behaviour of the mouse in makehuman. [[File:mouse_001.png]] The first wiidget in the left panel contains one slider labelled "3D viewport Speed". This slider controls the how sensitive the viewport is to mouse movement. As you increase this parameter the viewport become increasingly sensitive to mouse movements, thereby moving faster. Tweak this parameter with care. A value of one is the default speed at which makehuman models rotate and move in response to the mouse. Increase this parameter if you feel that the movements are too slow for your liking. The second widget inside the left panel is the "Camera" widget this widget allows you to configure the mouse settings used to control the camera. This also allows you to invert the mouse wheel. Note:With the orbital camera, panning is available only in certain situations. Therefore, the "Move" shortcut has been made available for configuration. If you cannot pan your model it may not a bug. == The Shortcuts tab == THe "Shortcuts" tab helps us to manage shortcuts in makehuman. For your convinience shortcuts have been organised into 3 categories. The first category with the largest number of shrrtcuts available for configuration is the "Camera" category whose panel is located on the left hand side. THe other two categories are "Actions" and "Navigation". The "Action" panel helps us to alter shortcuts for actions such as undo and redo. The "Navigation" panel helps us to set shortcuts to quickly navigate between various frequently used tabs in Makehuman. [[File:shortcuts-mh_002.jpg]] Managing of shortcuts is very easy inside makehuman. Just select the appropriate box with the current shortcut key andf type in thenew shortcut key/key combination. Makehuman will warn you if there are duplicates. == The Plugins tab == Makehuman is designed using a modular approach. All features within makehuman belong to one module or the other. THese modules are called Plugins. With the help of the "Plugins" tab in makehuman we can enable or disable certain plugins thereby altering the feature set available. This feature is useful when: * A particular feature is uneeded and you want to improve performance of makehuman by disabling it. * A particular plugin is giving problems on your machine and you would like to disable it to avoid accidently triggering the fault again. [[File:plugins-mh_002.png]] By default all plugins are enabled. Plugins can be disabled by clicking on the option buttons and removing the "x" next to the related plugin. 97c29be5ea9d5c73fe29fba250d5c5ccf583f794 1308 1101 2017-02-11T13:21:47Z Aranuvir 17 /* The background tab */ wikitext text/x-wiki == The General tab == The general settings include important features that can make a huge difference in MakeHuman's performance. [[File:general.png]] === Slider behaviour === * Update realtime. This option recalculates the human shape in real time during the slider movements. This requires more CPU resources. * Update normals real time. By enabling this option, the normals are updated during the slider movements in order to see a correct shading in real time. Computing the surface normals requires an intensive CPU calculation, so this can slow down old PCs. * Fit objects in realtime. By enabling it, all objects (eyes, hair, clothes, teeth, etc..) are fitted in real time during the body transformations. This requires more CPU resources. * Autozoom camera. Enabling it will automatically zoom in the camera to the zone of interest. For example, editing the head, it will zoom in to it, editing the hand, it will automatically zoom in to the hand, etc.. This can be useful in some cases, but it doesn't allow custom point of view, so this option is disabled by default. * Slider images. Enable the images to illustrate the sliders' effect. Disable it for a more compact list of controls. === Units === This setting is to choose the measurement system that will be used : * Metric, to use meters, centimeters, etc * Imperial, to use inch, feet,etc.. === Startup === * Preload macro targets. This option is very important for perfomance and startup loading time. Using the preload increases a lot the performance, but in the case when the targets are not compiled (for example the raw targets cloned from HG) it will considerably increase the loading time during startup. * Restore windows size. This option is just to remember the custom windows size used for MakeHuman. === Theme and languages. === These options areself explanatory. MakeHuman needs to be restarted for a change in the language settings to be effective. == The background tab == The Background tab allows you to add background/foreground images to use as a modelling reference or to create a scene within MakeHuman™ for the Short Pipeline. When you open the Background tab you will see a "None" icon and a list of thumbnails of the files within the backgrounds folder in the home folder (see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]), if they are present. The "None" icon is used to remove the background from the MakeHuman™ scene. [[File:background_0_0.png]] === Different backgrounds for different sides === Prior to selecting an image you should first determine the side of the MakeHuman™ scene where you want the image to appear. You can specify where you would like the background placed relative to your MakeHuman™ character with the Side control choices on the right hand side of the Background tab screen. The first six (6) options set the background in your scene using the standard Camera view positions. If you choose the last radio button option labeled "Other" you can add the background into the scene with the character and camera position however it was last set, as long as it was not in one of the predfined camera views. If you are placing an image to act as a reference image for modelling your character, you should select the side that matches your reference facing. You can insert up to 7 different images into the MakeHuman™ scene by applying a different image to each Side option. As the camera view changes into each side view or other view angle, the image shown will change as match your image side configuration for each of the camera side views shown in the modelling window. The background image, in fact, will only appear while the camera remains in the side view specified. Pressing one of the camera view options is the easiest way to get a background image to reappear if it disappears due to a camera view change. === Background opacity and position. === The Background Setting options allow you to set the background image's opacity using the Opacity slider control, which determines how transparent or opaque the image will appear in the scene, and to set the image as a background or foreground. These controls are particularly useful when you are using reference images to model your character. The standard Opacity setting of 100 is equivalent to a 60% transparency level. Setting the control to 0 will make the image invisible (100% transparency) and setting the opacity control to 250 will make the image fully opaque (0% tranparency). The "Show in Foreground" checkbox option allows you to place the image in front of the character in the scene so that the character will be obscured according to the opacity level setting of the background image. This option should be checked if the image will be used as a reference image for modelling. The background can be moved and resized to properly fit the character, checking the options in the left side and then clicking and dragging with leftbutton or rightbutton. == The Mouse tab == THe "Mouse" tab allows you to configure the behaviour of the mouse in makehuman. [[File:mouse_001.png]] The first wiidget in the left panel contains one slider labelled "3D viewport Speed". This slider controls the how sensitive the viewport is to mouse movement. As you increase this parameter the viewport become increasingly sensitive to mouse movements, thereby moving faster. Tweak this parameter with care. A value of one is the default speed at which makehuman models rotate and move in response to the mouse. Increase this parameter if you feel that the movements are too slow for your liking. The second widget inside the left panel is the "Camera" widget this widget allows you to configure the mouse settings used to control the camera. This also allows you to invert the mouse wheel. Note:With the orbital camera, panning is available only in certain situations. Therefore, the "Move" shortcut has been made available for configuration. If you cannot pan your model it may not a bug. == The Shortcuts tab == THe "Shortcuts" tab helps us to manage shortcuts in makehuman. For your convinience shortcuts have been organised into 3 categories. The first category with the largest number of shrrtcuts available for configuration is the "Camera" category whose panel is located on the left hand side. THe other two categories are "Actions" and "Navigation". The "Action" panel helps us to alter shortcuts for actions such as undo and redo. The "Navigation" panel helps us to set shortcuts to quickly navigate between various frequently used tabs in Makehuman. [[File:shortcuts-mh_002.jpg]] Managing of shortcuts is very easy inside makehuman. Just select the appropriate box with the current shortcut key andf type in thenew shortcut key/key combination. Makehuman will warn you if there are duplicates. == The Plugins tab == Makehuman is designed using a modular approach. All features within makehuman belong to one module or the other. THese modules are called Plugins. With the help of the "Plugins" tab in makehuman we can enable or disable certain plugins thereby altering the feature set available. This feature is useful when: * A particular feature is uneeded and you want to improve performance of makehuman by disabling it. * A particular plugin is giving problems on your machine and you would like to disable it to avoid accidently triggering the fault again. [[File:plugins-mh_002.png]] By default all plugins are enabled plugins can be disabled by clicking on the option buttons and removing the "x" next to the related plugin. 343d053ee234454fc48869fec54f8a37e7c09115 1101 777 2016-07-05T17:03:31Z Aranuvir 17 wikitext text/x-wiki == The General tab == The general settings include important features that can make a huge difference in MakeHuman's performance. [[File:general.png]] === Slider behaviour === * Update realtime. This option recalculates the human shape in real time during the slider movements. This requires more CPU resources. * Update normals real time. By enabling this option, the normals are updated during the slider movements in order to see a correct shading in real time. Computing the surface normals requires an intensive CPU calculation, so this can slow down old PCs. * Fit objects in realtime. By enabling it, all objects (eyes, hair, clothes, teeth, etc..) are fitted in real time during the body transformations. This requires more CPU resources. * Autozoom camera. Enabling it will automatically zoom in the camera to the zone of interest. For example, editing the head, it will zoom in to it, editing the hand, it will automatically zoom in to the hand, etc.. This can be useful in some cases, but it doesn't allow custom point of view, so this option is disabled by default. * Slider images. Enable the images to illustrate the sliders' effect. Disable it for a more compact list of controls. === Units === This setting is to choose the measurement system that will be used : * Metric, to use meters, centimeters, etc * Imperial, to use inch, feet,etc.. === Startup === * Preload macro targets. This option is very important for perfomance and startup loading time. Using the preload increases a lot the performance, but in the case when the targets are not compiled (for example the raw targets cloned from HG) it will considerably increase the loading time during startup. * Restore windows size. This option is just to remember the custom windows size used for MakeHuman. === Theme and languages. === These options areself explanatory. MakeHuman needs to be restarted for a change in the language settings to be effective. == The background tab == The Background tab allows you to add background/foreground images to use as a modelling reference or to create a scene within MakeHuman™ for the Short Pipeline. When you open the Background tab you will see a "None" icon and a list of thumbnails of the files within the backgrounds folder in the!LINK!http://www.makehuman.org/doc/faq/where_is_my_home.html -- MakeHuman home folder!/LINK!, if they are present. The "None" icon is used to remove the background from the MakeHuman™ scene. [[File:background_0_0.png]] === Different backgrounds for different sides === Prior to selecting an image you should first determine the side of the MakeHuman™ scene where you want the image to appear. You can specify where you would like the background placed relative to your MakeHuman™ character with the Side control choices on the right hand side of the Background tab screen. The first six (6) options set the background in your scene using the standard Camera view positions. If you choose the last radio button option labeled "Other" you can add the background into the scene with the character and camera position however it was last set, as long as it was not in one of the predfined camera views. If you are placing an image to act as a reference image for modelling your character, you should select the side that matches your reference facing. You can insert up to 7 different images into the MakeHuman™ scene by applying a different image to each Side option. As the camera view changes into each side view or other view angle, the image shown will change as match your image side configuration for each of the camera side views shown in the modelling window. The background image, in fact, will only appear while the camera remains in the side view specified. Pressing one of the camera view options is the easiest way to get a background image to reappear if it disappears due to a camera view change. === Background opacity and position. === The Background Setting options allow you to set the background image's opacity using the Opacity slider control, which determines how transparent or opaque the image will appear in the scene, and to set the image as a background or foreground. These controls are particularly useful when you are using reference images to model your character. The standard Opacity setting of 100 is equivalent to a 60% transparency level. Setting the control to 0 will make the image invisible (100% transparency) and setting the opacity control to 250 will make the image fully opaque (0% tranparency). The "Show in Foreground" checkbox option allows you to place the image in front of the character in the scene so that the character will be obscured according to the opacity level setting of the background image. This option should be checked if the image will be used as a reference image for modelling. The background can be moved and resized to properly fit the character, checking the options in the left side and then clicking and dragging with leftbutton or rightbutton. == The Mouse tab == THe "Mouse" tab allows you to configure the behaviour of the mouse in makehuman. [[File:mouse_001.png]] The first wiidget in the left panel contains one slider labelled "3D viewport Speed". This slider controls the how sensitive the viewport is to mouse movement. As you increase this parameter the viewport become increasingly sensitive to mouse movements, thereby moving faster. Tweak this parameter with care. A value of one is the default speed at which makehuman models rotate and move in response to the mouse. Increase this parameter if you feel that the movements are too slow for your liking. The second widget inside the left panel is the "Camera" widget this widget allows you to configure the mouse settings used to control the camera. This also allows you to invert the mouse wheel. Note:With the orbital camera, panning is available only in certain situations. Therefore, the "Move" shortcut has been made available for configuration. If you cannot pan your model it may not a bug. == The Shortcuts tab == THe "Shortcuts" tab helps us to manage shortcuts in makehuman. For your convinience shortcuts have been organised into 3 categories. The first category with the largest number of shrrtcuts available for configuration is the "Camera" category whose panel is located on the left hand side. THe other two categories are "Actions" and "Navigation". The "Action" panel helps us to alter shortcuts for actions such as undo and redo. The "Navigation" panel helps us to set shortcuts to quickly navigate between various frequently used tabs in Makehuman. [[File:shortcuts-mh_002.jpg]] Managing of shortcuts is very easy inside makehuman. Just select the appropriate box with the current shortcut key andf type in thenew shortcut key/key combination. Makehuman will warn you if there are duplicates. == The Plugins tab == Makehuman is designed using a modular approach. All features within makehuman belong to one module or the other. THese modules are called Plugins. With the help of the "Plugins" tab in makehuman we can enable or disable certain plugins thereby altering the feature set available. This feature is useful when: * A particular feature is uneeded and you want to improve performance of makehuman by disabling it. * A particular plugin is giving problems on your machine and you would like to disable it to avoid accidently triggering the fault again. [[File:plugins-mh_002.png]] By default all plugins are enabled plugins can be disabled by clicking on the option buttons and removing the "x" next to the related plugin. 3c8771908e38b4d2f735b5e3dad6f2da5ac4d124 777 776 2016-05-24T12:02:59Z Joepal 14 wikitext text/x-wiki == The General tab == The general settings include important features that can make a huge difference in MakeHuman's performance. !IMAGE!Pictures/general.png!/IMAGE! === Slider behaviour === * Update realtime. This option recalculates the human shape in real time during the slider movements. This requires more CPU resources. * Update normals real time. By enabling this option, the normals are updated during the slider movements in order to see a correct shading in real time. Computing the surface normals requires an intensive CPU calculation, so this can slow down old PCs. * Fit objects in realtime. By enabling it, all objects (eyes, hair, clothes, teeth, etc..) are fitted in real time during the body transformations. This requires more CPU resources. * Autozoom camera. Enabling it will automatically zoom in the camera to the zone of interest. For example, editing the head, it will zoom in to it, editing the hand, it will automatically zoom in to the hand, etc.. This can be useful in some cases, but it doesn't allow custom point of view, so this option is disabled by default. * Slider images. Enable the images to illustrate the sliders' effect. Disable it for a more compact list of controls. === Units === This setting is to choose the measurement system that will be used : * Metric, to use meters, centimeters, etc * Imperial, to use inch, feet,etc.. === Startup === * Preload macro targets. This option is very important for perfomance and startup loading time. Using the preload increases a lot the performance, but in the case when the targets are not compiled (for example the raw targets cloned from HG) it will considerably increase the loading time during startup. * Restore windows size. This option is just to remember the custom windows size used for MakeHuman. === Theme and languages. === These options areself explanatory. MakeHuman needs to be restarted for a change in the language settings to be effective. == The background tab == The Background tab allows you to add background/foreground images to use as a modelling reference or to create a scene within MakeHuman™ for the Short Pipeline. When you open the Background tab you will see a "None" icon and a list of thumbnails of the files within the backgrounds folder in the!LINK!http://www.makehuman.org/doc/faq/where_is_my_home.html -- MakeHuman home folder!/LINK!, if they are present. The "None" icon is used to remove the background from the MakeHuman™ scene. !IMAGE!Pictures/background_0_0.png!/IMAGE! === Different backgrounds for different sides === Prior to selecting an image you should first determine the side of the MakeHuman™ scene where you want the image to appear. You can specify where you would like the background placed relative to your MakeHuman™ character with the Side control choices on the right hand side of the Background tab screen. The first six (6) options set the background in your scene using the standard Camera view positions. If you choose the last radio button option labeled "Other" you can add the background into the scene with the character and camera position however it was last set, as long as it was not in one of the predfined camera views. If you are placing an image to act as a reference image for modelling your character, you should select the side that matches your reference facing. You can insert up to 7 different images into the MakeHuman™ scene by applying a different image to each Side option. As the camera view changes into each side view or other view angle, the image shown will change as match your image side configuration for each of the camera side views shown in the modelling window. The background image, in fact, will only appear while the camera remains in the side view specified. Pressing one of the camera view options is the easiest way to get a background image to reappear if it disappears due to a camera view change. === Background opacity and position. === The Background Setting options allow you to set the background image's opacity using the Opacity slider control, which determines how transparent or opaque the image will appear in the scene, and to set the image as a background or foreground. These controls are particularly useful when you are using reference images to model your character. The standard Opacity setting of 100 is equivalent to a 60% transparency level. Setting the control to 0 will make the image invisible (100% transparency) and setting the opacity control to 250 will make the image fully opaque (0% tranparency). The "Show in Foreground" checkbox option allows you to place the image in front of the character in the scene so that the character will be obscured according to the opacity level setting of the background image. This option should be checked if the image will be used as a reference image for modelling. The background can be moved and resized to properly fit the character, checking the options in the left side and then clicking and dragging with leftbutton or rightbutton. == The Mouse tab == THe "Mouse" tab allows you to configure the behaviour of the mouse in makehuman. !IMAGE!Pictures/mouse_001.png!/IMAGE! The first wiidget in the left panel contains one slider labelled "3D viewport Speed". This slider controls the how sensitive the viewport is to mouse movement. As you increase this parameter the viewport become increasingly sensitive to mouse movements, thereby moving faster. Tweak this parameter with care. A value of one is the default speed at which makehuman models rotate and move in response to the mouse. Increase this parameter if you feel that the movements are too slow for your liking. The second widget inside the left panel is the "Camera" widget this widget allows you to configure the mouse settings used to control the camera. This also allows you to invert the mouse wheel. Note:With the orbital camera, panning is available only in certain situations. Therefore, the "Move" shortcut has been made available for configuration. If you cannot pan your model it may not a bug. == The Shortcuts tab == THe "Shortcuts" tab helps us to manage shortcuts in makehuman. For your convinience shortcuts have been organised into 3 categories. The first category with the largest number of shrrtcuts available for configuration is the "Camera" category whose panel is located on the left hand side. THe other two categories are "Actions" and "Navigation". The "Action" panel helps us to alter shortcuts for actions such as undo and redo. The "Navigation" panel helps us to set shortcuts to quickly navigate between various frequently used tabs in Makehuman. !IMAGE!Pictures/shortcuts-mh_002.jpg!/IMAGE! Managing of shortcuts is very easy inside makehuman. Just select the appropriate box with the current shortcut key andf type in thenew shortcut key/key combination. Makehuman will warn you if there are duplicates. == The Plugins tab == Makehuman is designed using a modular approach. All features within makehuman belong to one module or the other. THese modules are called Plugins. With the help of the "Plugins" tab in makehuman we can enable or disable certain plugins thereby altering the feature set available. This feature is useful when: * A particular feature is uneeded and you want to improve performance of makehuman by disabling it. * A particular plugin is giving problems on your machine and you would like to disable it to avoid accidently triggering the fault again. !IMAGE!Pictures/plugins-mh_002.png!/IMAGE! By default all plugins are enabled plugins can be disabled by clicking on the option buttons and removing the "x" next to the related plugin. e1588fc279254354cb4544b479ff4f844836bfbe 776 775 2016-05-24T12:01:57Z Joepal 14 wikitext text/x-wiki == The General tab == The general settings include important features that can make a huge difference in MakeHuman's performance. !IMAGE!Pictures/general.png!/IMAGE! === Slider behaviour === * Update realtime. This option recalculates the human shape in real time during the slider movements. This requires more CPU resources. * Update normals real time. By enabling this option, the normals are updated during the slider movements in order to see a correct shading in real time. Computing the surface normals requires an intensive CPU calculation, so this can slow down old PCs. * Fit objects in realtime. By enabling it, all objects (eyes, hair, clothes, teeth, etc..) are fitted in real time during the body transformations. This requires more CPU resources. * Autozoom camera. Enabling it will automatically zoom in the camera to the zone of interest. For example, editing the head, it will zoom in to it, editing the hand, it will automatically zoom in to the hand, etc.. This can be useful in some cases, but it doesn't allow custom point of view, so this option is disabled by default. * Slider images. Enable the images to illustrate the sliders' effect. Disable it for a more compact list of controls. === Units === This setting is to choose the measurement system that will be used : * Metric, to use meters, centimeters, etc * Imperial, to use inch, feet,etc.. === Startup === * Preload macro targets. This option is very important for perfomance and startup loading time. Using the preload increases a lot the performance, but in the case when the targets are not compiled (for example the raw targets cloned from HG) it will considerably increase the loading time during startup. * Restore windows size. This option is just to remember the custom windows size used for MakeHuman. === Theme and languages. === These options areself explanatory. MakeHuman needs to be restarted for a change in the language settings to be effective. == The background tab == The Background tab allows you to add background/foreground images to use as a modelling reference or to create a scene within MakeHuman™ for the Short Pipeline. When you open the Background tab you will see a "None" icon and a list of thumbnails of the files within the backgrounds folder in the!LINK!http://www.makehuman.org/doc/faq/where_is_my_home.html -- MakeHuman home folder!/LINK!, if they are present. The "None" icon is used to remove the background from the MakeHuman™ scene. !IMAGE!Pictures/background_0_0.png!/IMAGE! === Different backgrounds for different sides === Prior to selecting an image you should first determine the side of the MakeHuman™ scene where you want the image to appear. You can specify where you would like the background placed relative to your MakeHuman™ character with the Side control choices on the right hand side of the Background tab screen. The first six (6) options set the background in your scene using the standard Camera view positions. If you choose the last radio button option labeled "Other" you can add the background into the scene with the character and camera position however it was last set, as long as it was not in one of the predfined camera views. If you are placing an image to act as a reference image for modelling your character, you should select the side that matches your reference facing. You can insert up to 7 different images into the MakeHuman™ scene by applying a different image to each Side option. As the camera view changes into each side view or other view angle, the image shown will change as match your image side configuration for each of the camera side views shown in the modelling window. The background image, in fact, will only appear while the camera remains in the side view specified. Pressing one of the camera view options is the easiest way to get a background image to reappear if it disappears due to a camera view change. === Background opacity and position. === The Background Setting options allow you to set the background image's opacity using the Opacity slider control, which determines how transparent or opaque the image will appear in the scene, and to set the image as a background or foreground. These controls are particularly useful when you are using reference images to model your character. The standard Opacity setting of 100 is equivalent to a 60% transparency level. Setting the control to 0 will make the image invisible (100% transparency) and setting the opacity control to 250 will make the image fully opaque (0% tranparency). The "Show in Foreground" checkbox option allows you to place the image in front of the character in the scene so that the character will be obscured according to the opacity level setting of the background image. This option should be checked if the image will be used as a reference image for modelling. The background can be moved and resized to properly fit the character, checking the options in the left side and then clicking and dragging with leftbutton or rightbutton. == The Mouse tab == THe "Mouse" tab allows you to configure the behaviour of the mouse in makehuman. !IMAGE!Pictures/mouse_001.png!/IMAGE! The first wiidget in the left panel contains one slider labelled "3D viewport Speed". This slider controls the how sensitive the viewport is to mouse movement. As you increase this parameter the viewport become increasingly sensitive to mouse movements, thereby moving faster. Tweak this parameter with care. A value of one is the default speed at which makehuman models rotate and move in response to the mouse. Increase this parameter if you feel that the movements are too slow for your liking. The second widget inside the left panel is the "Camera" widget this widget allows you to configure the mouse settings used to control the camera. This also allows you to invert the mouse wheel. Note:With the orbital camera, panning is available only in certain situations. Therefore, the "Move" shortcut has been made available for configuration. If you cannot pan your model it may not a bug. == The Shortcuts tab == THe "Shortcuts" tab helps us to manage shortcuts in makehuman. For your convinience shortcuts have been organised into 3 categories. The first category with the largest number of shrrtcuts available for configuration is the "Camera" category whose panel is located on the left hand side. THe other two categories are "Actions" and "Navigation". The "Action" panel helps us to alter shortcuts for actions such as undo and redo. The "Navigation" panel helps us to set shortcuts to quickly navigate between various frequently used tabs in Makehuman. !IMAGE!Pictures/shortcuts-mh_002.jpg!/IMAGE! Managing of shortcuts is very easy inside makehuman. Just select the appropriate box with the current shortcut key andf type in thenew shortcut key/key combination. Makehuman will warn you if there are duplicates. === Plugins === Makehuman is designed using a modular approach. All features within makehuman belong to one module or the other. THese modules are called Plugins. With the help of the "Plugins" tab in makehuman we can enable or disable certain plugins thereby altering the feature set available. This feature is useful when: * A particular feature is uneeded and you want to improve performance of makehuman by disabling it. * A particular plugin is giving problems on your machine and you would like to disable it to avoid accidently triggering the fault again. !IMAGE!Pictures/plugins-mh_002.png!/IMAGE! By default all plugins are enabled plugins can be disabled by clicking on the option buttons and removing the "x" next to the related plugin. d2449cf5a68127a91408a55c75d3a844e4981b0b 775 698 2016-05-24T12:00:20Z Joepal 14 wikitext text/x-wiki == Background == The Background tab allows you to add background/foreground images to use as a modelling reference or to create a scene within MakeHuman™ for the Short Pipeline. When you open the Background tab you will see a "None" icon and a list of thumbnails of the files within the backgrounds folder in the!LINK!http://www.makehuman.org/doc/faq/where_is_my_home.html -- MakeHuman home folder!/LINK!, if they are present. The "None" icon is used to remove the background from the MakeHuman™ scene. !IMAGE!Pictures/background_0_0.png!/IMAGE! === Different backgrounds for different sides === Prior to selecting an image you should first determine the side of the MakeHuman™ scene where you want the image to appear. You can specify where you would like the background placed relative to your MakeHuman™ character with the Side control choices on the right hand side of the Background tab screen. The first six (6) options set the background in your scene using the standard Camera view positions. If you choose the last radio button option labeled "Other" you can add the background into the scene with the character and camera position however it was last set, as long as it was not in one of the predfined camera views. If you are placing an image to act as a reference image for modelling your character, you should select the side that matches your reference facing. You can insert up to 7 different images into the MakeHuman™ scene by applying a different image to each Side option. As the camera view changes into each side view or other view angle, the image shown will change as match your image side configuration for each of the camera side views shown in the modelling window. The background image, in fact, will only appear while the camera remains in the side view specified. Pressing one of the camera view options is the easiest way to get a background image to reappear if it disappears due to a camera view change. === Background opacity and position. === The Background Setting options allow you to set the background image's opacity using the Opacity slider control, which determines how transparent or opaque the image will appear in the scene, and to set the image as a background or foreground. These controls are particularly useful when you are using reference images to model your character. The standard Opacity setting of 100 is equivalent to a 60% transparency level. Setting the control to 0 will make the image invisible (100% transparency) and setting the opacity control to 250 will make the image fully opaque (0% tranparency). The "Show in Foreground" checkbox option allows you to place the image in front of the character in the scene so that the character will be obscured according to the opacity level setting of the background image. This option should be checked if the image will be used as a reference image for modelling. The background can be moved and resized to properly fit the character, checking the options in the left side and then clicking and dragging with leftbutton or rightbutton. == General == === General Settings === The general settings include important features that can make a huge difference in MakeHuman's performance. !IMAGE!Pictures/general.png!/IMAGE! === Slider behaviour === * Update realtime. This option recalculates the human shape in real time during the slider movements. This requires more CPU resources. * Update normals real time. By enabling this option, the normals are updated during the slider movements in order to see a correct shading in real time. Computing the surface normals requires an intensive CPU calculation, so this can slow down old PCs. * Fit objects in realtime. By enabling it, all objects (eyes, hair, clothes, teeth, etc..) are fitted in real time during the body transformations. This requires more CPU resources. * Autozoom camera. Enabling it will automatically zoom in the camera to the zone of interest. For example, editing the head, it will zoom in to it, editing the hand, it will automatically zoom in to the hand, etc.. This can be useful in some cases, but it doesn't allow custom point of view, so this option is disabled by default. * Slider images. Enable the images to illustrate the sliders' effect. Disable it for a more compact list of controls. === Units === This setting is to choose the measurement system that will be used : * Metric, to use meters, centimeters, etc * Imperial, to use inch, feet,etc.. === Startup === * Preload macro targets. This option is very important for perfomance and startup loading time. Using the preload increases a lot the performance, but in the case when the targets are not compiled (for example the raw targets cloned from HG) it will considerably increase the loading time during startup. * Restore windows size. This option is just to remember the custom windows size used for MakeHuman. === Theme and languages. === These options areself explanatory. MakeHuman needs to be restarted for a change in the language settings to be effective. === Mouse === THe "Mouse" tab allows you to configure the behaviour of the mouse in makehuman. !IMAGE!Pictures/mouse_001.png!/IMAGE! The first wiidget in the left panel contains one slider labelled "3D viewport Speed". This slider controls the how sensitive the viewport is to mouse movement. As you increase this parameter the viewport become increasingly sensitive to mouse movements, thereby moving faster. Tweak this parameter with care. A value of one is the default speed at which makehuman models rotate and move in response to the mouse. Increase this parameter if you feel that the movements are too slow for your liking. The second widget inside the left panel is the "Camera" widget this widget allows you to configure the mouse settings used to control the camera. This also allows you to invert the mouse wheel. Note:With the orbital camera, panning is available only in certain situations. Therefore, the "Move" shortcut has been made available for configuration. If you cannot pan your model it may not a bug. === Shortcuts === THe "Shortcuts" tab helps us to manage shortcuts in makehuman. For your convinience shortcuts have been organised into 3 categories. The first category with the largest number of shrrtcuts available for configuration is the "Camera" category whose panel is located on the left hand side. THe other two categories are "Actions" and "Navigation". The "Action" panel helps us to alter shortcuts for actions such as undo and redo. The "Navigation" panel helps us to set shortcuts to quickly navigate between various frequently used tabs in Makehuman. !IMAGE!Pictures/shortcuts-mh_002.jpg!/IMAGE! Managing of shortcuts is very easy inside makehuman. Just select the appropriate box with the current shortcut key andf type in thenew shortcut key/key combination. Makehuman will warn you if there are duplicates. === Plugins === Makehuman is designed using a modular approach. All features within makehuman belong to one module or the other. THese modules are called Plugins. With the help of the "Plugins" tab in makehuman we can enable or disable certain plugins thereby altering the feature set available. This feature is useful when: * A particular feature is uneeded and you want to improve performance of makehuman by disabling it. * A particular plugin is giving problems on your machine and you would like to disable it to avoid accidently triggering the fault again. !IMAGE!Pictures/plugins-mh_002.png!/IMAGE! By default all plugins are enabled plugins can be disabled by clicking on the option buttons and removing the "x" next to the related plugin. d8e2bf38df0c6843b16f2e130c7a7a736b23543e 698 2016-05-20T09:08:17Z Joepal 14 Created page with "=== Background === The Background tab allows you to add background/foreground images to use as a modelling reference or to create a scene within MakeHuman™ for the Short Pip..." wikitext text/x-wiki === Background === The Background tab allows you to add background/foreground images to use as a modelling reference or to create a scene within MakeHuman™ for the Short Pipeline. When you open the Background tab you will see a "None" icon and a list of thumbnails of the files within the backgrounds folder in the!LINK!http://www.makehuman.org/doc/faq/where_is_my_home.html -- MakeHuman home folder!/LINK!, if they are present. The "None" icon is used to remove the background from the MakeHuman™ scene. !IMAGE!Pictures/background_0_0.png!/IMAGE! ==== Different backgrounds for different sides ==== Prior to selecting an image you should first determine the side of the MakeHuman™ scene where you want the image to appear. You can specify where you would like the background placed relative to your MakeHuman™ character with the Side control choices on the right hand side of the Background tab screen. The first six (6) options set the background in your scene using the standard Camera view positions. If you choose the last radio button option labeled "Other" you can add the background into the scene with the character and camera position however it was last set, as long as it was not in one of the predfined camera views. If you are placing an image to act as a reference image for modelling your character, you should select the side that matches your reference facing. You can insert up to 7 different images into the MakeHuman™ scene by applying a different image to each Side option. As the camera view changes into each side view or other view angle, the image shown will change as match your image side configuration for each of the camera side views shown in the modelling window. The background image, in fact, will only appear while the camera remains in the side view specified. Pressing one of the camera view options is the easiest way to get a background image to reappear if it disappears due to a camera view change. ==== Background opacity and position. ==== The Background Setting options allow you to set the background image's opacity using the Opacity slider control, which determines how transparent or opaque the image will appear in the scene, and to set the image as a background or foreground. These controls are particularly useful when you are using reference images to model your character. The standard Opacity setting of 100 is equivalent to a 60% transparency level. Setting the control to 0 will make the image invisible (100% transparency) and setting the opacity control to 250 will make the image fully opaque (0% tranparency). The "Show in Foreground" checkbox option allows you to place the image in front of the character in the scene so that the character will be obscured according to the opacity level setting of the background image. This option should be checked if the image will be used as a reference image for modelling. The background can be moved and resized to properly fit the character, checking the options in the left side and then clicking and dragging with leftbutton or rightbutton. === General === ==== General Settings ==== The general settings include important features that can make a huge difference in MakeHuman's performance. !IMAGE!Pictures/general.png!/IMAGE! === Slider behaviour === * Update realtime. This option recalculates the human shape in real time during the slider movements. This requires more CPU resources. * Update normals real time. By enabling this option, the normals are updated during the slider movements in order to see a correct shading in real time. Computing the surface normals requires an intensive CPU calculation, so this can slow down old PCs. * Fit objects in realtime. By enabling it, all objects (eyes, hair, clothes, teeth, etc..) are fitted in real time during the body transformations. This requires more CPU resources. * Autozoom camera. Enabling it will automatically zoom in the camera to the zone of interest. For example, editing the head, it will zoom in to it, editing the hand, it will automatically zoom in to the hand, etc.. This can be useful in some cases, but it doesn't allow custom point of view, so this option is disabled by default. * Slider images. Enable the images to illustrate the sliders' effect. Disable it for a more compact list of controls. === Units === This setting is to choose the measurement system that will be used : * Metric, to use meters, centimeters, etc * Imperial, to use inch, feet,etc.. === Startup === * Preload macro targets. This option is very important for perfomance and startup loading time. Using the preload increases a lot the performance, but in the case when the targets are not compiled (for example the raw targets cloned from HG) it will considerably increase the loading time during startup. * Restore windows size. This option is just to remember the custom windows size used for MakeHuman. === Theme and languages. === These options areself explanatory. MakeHuman needs to be restarted for a change in the language settings to be effective. === Mouse === ==== Managing mouse configuration: ==== THe "Mouse" tab allows you to configure the behaviour of the mouse in makehuman. !IMAGE!Pictures/mouse_001.png!/IMAGE! The first wiidget in the left panel contains one slider labelled "3D viewport Speed". This slider controls the how sensitive the viewport is to mouse movement. As you increase this parameter the viewport become increasingly sensitive to mouse movements, thereby moving faster. Tweak this parameter with care. A value of one is the default speed at which makehuman models rotate and move in response to the mouse. Increase this parameter if you feel that the movements are too slow for your liking. The second widget inside the left panel is the "Camera" widget this widget allows you to configure the mouse settings used to control the camera. This also allows you to invert the mouse wheel. Note:With the orbital camera, panning is available only in certain situations. Therefore, the "Move" shortcut has been made available for configuration. If you cannot pan your model it may not a bug. === Shortcuts === THe "Shortcuts" tab helps us to manage shortcuts in makehuman. For your convinience shortcuts have been organised into 3 categories. The first category with the largest number of shrrtcuts available for configuration is the "Camera" category whose panel is located on the left hand side. THe other two categories are "Actions" and "Navigation". The "Action" panel helps us to alter shortcuts for actions such as undo and redo. The "Navigation" panel helps us to set shortcuts to quickly navigate between various frequently used tabs in Makehuman. !IMAGE!Pictures/shortcuts-mh_002.jpg!/IMAGE! ==== How to use the Shortcuts Tab ==== Managing of shortcuts is very easy inside makehuman. Just select the appropriate box with the current shortcut key andf type in thenew shortcut key/key combination. Makehuman will warn you if there are duplicates. === Plugins === Makehuman is designed using a modular approach. All features within makehuman belong to one module or the other. THese modules are called Plugins. With the help of the "Plugins" tab in makehuman we can enable or disable certain plugins thereby altering the feature set available. This feature is useful when: 1) A particular feature is uneeded and you want to improve performance of makehuman by disabling it. 2) A particular plugin is giving problems on your machine and you would like to disable it to avoid accidently triggering the fault again. !IMAGE!Pictures/plugins-mh_002.png!/IMAGE! By default all plugins are enabled plugins can be disabled by clicking on the option buttons and removing the "x" next to the related plugin. 087c4f868e0708b4e680c1f995300dbc5b23b166 Documentation:Controlling the result with vertex groups 3000 330 861 2016-05-26T12:54:09Z Joepal 14 Created page with "== Creating a medallion == MakeClothes works best with soft clothes that follow the body shape. However, with some effort it can also be used to create hard objects like a me..." wikitext text/x-wiki == Creating a medallion == MakeClothes works best with soft clothes that follow the body shape. However, with some effort it can also be used to create hard objects like a medallion. This section will also illustrate some restrictions on clothes meshes that can be used in MakeHuman. We will model a medallion that sits on the character's breast. The medallion will be associated with the tights helper, so we need to Load Human With Helpers. However, the hair geometry will be in the way when modelling the medallion, so we want to get rid of that. [[File:mc2b-010-sel-helpers.png]] Since the clothes algorithm depends on correct vertex numbers, it is not possible to delete the hair helpers. However, it is admissible to delete all vertices belonging to a certain helper, provided that all helpers with higher vertex numbers are also deleted. In this case we get rid of both the skirt, hair and ground helpers. To do this, select the vertices belonging to the Skirt, Hair and Ground materials. Materials are ordered according to vertex number, which makes it easy to safely select all vertices from a certain point. [[File:mc2b-020-non-quad.png]] Model the medallion starting from a cylinder primitive, with the top and bottom covered by a triangle fan. When the Make Clothes button was pressed, and error was reported. The medallion mesh contains triangles, but a MakeHuman mesh must consist of quads only. [[File:mc2b-030-poles.png]] The triangles on the front side were joined into quads, and the center vertex of the back side was removed, deleting the back side completely. However, making clothes resulted in another error. A MakeHuman mesh must not have poles with more than eight edges ending at the same vertex, which is not satisfied by the center vertex. [[File:mc2b-040-medallion.png]] After some remodelling, a mesh with only quad faces and no poles was obtained, and no errors were reported. [[File:mc2b-050-mh-med.png]] However, the result in MakeHuman is not so good. To see the mesh more clearly in MakeHuman, we switch to wireframe view in the top panel. The medallion is stretched like it was a piece of clothing covering the chest. This would of course normally be the desired behaviour, since the purpose of MakeClothes is to make clothes. However, a medallion is a hard piece of metal that should not be deformed. With a careful assignment of vertex groups, we can make the medallion rigid. [[File:mc2b-060-vgroups.png]] Remove all vertex groups and assign all medallion vertices to a new group called Medallion. In the human, we also create a Medallion group, and assign a single vertex on the chest to it. The vertex should be located as close as possible to the center of the medallion. With these vertex groups, all medallion vertices will be stored as offsets from the single vertex. [[File:mc2b-070-scale.png]] With the new vertex group assignment, press Make Clothes and confirm that we want to overwrite the mhclo file. Update the medallion in MakeHuman by first deselecting it, and the selecting it again. The medallion's round shape is preserved, although the shape of the star in the middle is slightly deformed. We can control the scaling of the offset between the selected body vertex and the medallion vertices. Select Show Boundary to view the scale control options. By default Scale Offsets is enabled and Uniform Scaling is disabled. We set the Body Part to Torso. This setting is usually not so important, unless some body part is greatly deformed. If the Body Part were set to Head, the medallion would be bigger on the baby, because a baby's head is disproportionally large. [[File:mc2-520-examine.png]] The Examine Boundary button displays the six vertices involved in defining the scales. [[File:mc2b-080-noscale.png]] This picture shows the result when Scale Offsets is disabled. A medallion made for an adult looks too big for the baby. [[File:mc2b-090-uniform.png]] By default offsets are scaled differently along the three coordiate axes. By selectng Uniform Scaling, we can make offsets scaling by the same amount in all directions. The Scale Correction changes the overall scale factor if Uniform Scaling is enabled. == Making teeth == In MakeHuman, body parts such as eyes, hair, genitalia and teeth are separate objects, which are adapted to the character with the same technology as clothes. Such body parts are thus made with MakeClothes. Making teeth is a special challenge which illustrates well how vertex groups can control how clothes look. [[File:mc2b-610-teeth.png]] First the teeth mesh is modelled an placed correctly inside the character's mouth. [[File:mc2b-620-outdir.png]] Teeth are made with the same techniques as clothes, but they are loaded from a different tab inside MakeHuman. User-made clothes are located in the ~/makehuman/data/teeth folder, rather than ~/makehuman/data/clothes folder where clothes should be placed. To make MakeClothes save the output files at the correct location, select Show Settings and change the Output Directory. Alternatively, you can save in the clothes folder and move the files to the correct directory afterwards. [[File:mc2b-630-teeth-mh.png]] Name the teeth object MyTeeth and press Make Clothes. In MakeHuman, select myteeth in the Geometries &gt; Teeth tab. The button is high-lighted and our teeth are loaded. However, since the characters keeps his mouth shut nothing is visible in the viewport. [[File:mc2b-641-auto.png]] To examine how well the teeth mesh works, we need to export it from MakeHuman, .e.g as an mhx file, and import it into Blender. The teeth are located on layer 1. Hide all other objects on this layer, as well as all other layers. We can now clearly see the teeth. The mesh looks roughly as it should, but it deformed in a quite ugly way. [[File:mc2b-650-mouth-open.png]] There are other problems as well. If we open the mouth, the teeth remain fixed relative to the head. [[File:mc2b-660-vgroups.png]] To understand why the lower gum does not move, we look at the vertex groups. Four vertex groups are assigned to the teeth, but the jaw group DEF-jaw is not among them. Hence the teeth are not affected when the jaw bone is moved. [[File:mc2b-670-vgroups.png]] The reason for this behaviour becomes clear when we consider how the automatic vertex group assignment works. Three groups Mid, Left and Right are created. All clothes vertices are assigned to one of these groups, but for the human only the tights and skirt helpers are assigned. The teeth are therefore only affected by the same bones as the tights helpers, which does not include the jaw bone. [[File:mc2b-680-gums.png]] Clearly, the teeth should not be associated with the tights helpers, but rather with the teeth helpers inside the human mesh. To this end, remove all vertex groups and create a new one called Gums, and assign all vertices in the teeth and teeth helpers to it. This must be done both for the teeth and for the human. Then press Make Clothes. Since the teeth object is still call MyTeeth, the files in the myteeth folder are replaced. [[File:mc2b-690-teeth1.png]] In MakeHuman, select some other teeth, or no teeth. Then reselect myteeth to load the updated teeth, and export the character as mhx. In Blender, the result is still not very good. [[File:mc2b-700-asymm.png]] One problem is that the symmetry line x = 0 is not preserved. [[File:mc2b-710-mouth-open.png]] Another problem becomes obvious when we open the mouth. [[File:mc2b-720-head-jaw.png]] The result for this behaviour is that part of the lower teeth have been assigned to the head bone, rather than to the jaw bone as they should. [[File:mc2b-730-6groups.png]] We can remedy both problems by removing the Gum vertex group, and adding six new vertex groups as follows: * Up_M: Upper gum middle. * Lo_M: Lower gum middle. * Up_L: Upper gum left. * Lo_L: Lower gum left. * Up_R: Upper gum right. * Lo_R: Lower gum right. The middle vertices are included in the left and right groups for the human, but not for the teeth where each vertex must be assigned to one and only one group. The names of the middle groups is important. Any vertex group that starts with Mid or ends with _M is treated in a special way by MakeClothes. Normally, a clothes vertex is associated to a human triangle, i.e. to a triplet of human vertices. However, a vertex in a middle group is only assigned to a human edge, i.e. to a pair of human vertices. If the clothes vertex lies on the symmetry plane x = 0, it will remain on this plane when it is adapted to a new character. [[File:mc2b-740-6groups-result.png]] The new teeth do still look quite ugly after they have been exported from MakeHuman and imported back into Blender, but in some ways they are better than before. The symmetry plan x = 0 is preserved, apart from a section at the top of the mouth which probably did not lie in the plane to begin with. Also the mouth can be opened and all vertices know to which bone they belong. [[File:mc2b-750-midline.png]] Teeth are rigid objects, so we suspect that their rigidity is not sufficiently preserved. As we learned in the medallion section, we can make a clothes mesh more rigid by assigning fewer human vertices to the vertex groups. The teeth can not be made completely rigid, because the teeth can not fit both a narrow jaw and a square jaw without some deformation, but it can be made more ridig by removing the upper and lower rows of vertices from vertex groups. [[File:mc2b-750-midline-results.png]] After a trip to MakeHuman and back into Blender, the teeth now look better, but there are still some problems with jagged teeth. [[File:mc2b-760-bottom-line.png]] As a rule, problems increase with distance between clothes and human vertices. Since the top of the upper cheek and the bottom of the lower are hidden by the face, we are mainly concerned about the area where the gums meet.&nbsp; Therefore, reassined the vertices in the upper cheek to the bottom helper row, and the vertices in the lower cheek to the top helper row. [[File:mc2b-770-bottom-line-results.png]] The teeth are no longer jagged. The situation at the top of the upper gum has actually deteriorated, but this is not so important because that area is never visible. &nbsp; [[File:mc2b-780-shapes.png]] Several different teeth shapes can be selected in MakeHuman. However, all teeth meshes have the same topology. In this situation, we don't have to repeat the task of assigning vertex groups, because there is a button that copies vertex groups between meshes with the same topology. [[File:mc2b-790-copy-vgroups.png]] Load all teeth objects into the same .blend file, and name them appropriately. Place them on visible layers, and select all of them in the outliner. Finally select the original teeth object MyTeeth to make it active, and press the button Copy Vertex Groups Active =&gt; Selected. [[File:mc2b-800-vgroups-copied.png]] Vertex groups have been created for all teeth meshes, and we can immediately go on to create mhclo files. 5a8e8e5a209d2744bb87e0f402f965d213629633 Documentation:Corrective shape keys 3000 560 1475 1474 2018-05-05T10:19:06Z Joepal 14 wikitext text/x-wiki These are instructions for how to set up shape keys on a rigged makehuman model in blender. == Step by step to make it work. == On the character body armature modifier, activate the function "Display modifier in Edit Mode" [[File:Part_1_01.jpg]] Create a basis shape key and then a deformation shape key, give it a suitable name. Pin the shape key to always show. [[File:Part_1_02.jpg]] Select the bone you want shall control the shape key and pose it to the position where you want full shape key deformation. Remember the bone name and wich axis you rotate it, in this example bone "lowerarm01.L" local X rotation - press key R then XX. [[File:Part_1_03.jpg]] Select the body and edit the mesh until desired shape for that pose. Proportional edit is very useful. [[File:Part_1_04.jpg]] Reset the bone to default position - press key ALT and R Prepare the shape key to be driven by the bone. [[File:Part_1_05.jpg]] The Value field color is now purple. Unpin the shape key and you will see the mesh transforms back to the default shape. [[File:Part_1_06.jpg]] Open "Graph Editor" - "Edit Drivers" [[File:Part_1_07.jpg]] Select the shape key to the left and the tab "Drivers", in the field "Object" select the skeleton and "Bone" in this example "lowerarm01.L" As this example want the bone local X rotation to control this shape key select "X Rotation" and "Local Space". Finish by setting "Type:" to "Averaged Value". [[File:Part_1_08.jpg]] If the shape key shall deform on the negative rotation axis, add the driver modifier "Generator" and value -1.000 as shown here. [[File:Part_1_09.jpg]] Rotate the bone on local X axis (key R then XX) and the shape will deform the mesh. Adjust the shape key until satisfied. The shape will always deform in a strait line. [[File:Part_1_10.jpg]] == Mirror shape keys == Select the shape key you want to mirror and activate pin. [[File:Part_2_01.jpg]] Make a copy of the shape key. [[File:Part_2_02.jpg]] Give the new shape key a suitable name. [[File:Part_2_03.jpg]] Mirror the new shape key. Choose either "Mirror Shape Key (Topology)" or "Mirror Shape Key" [[File:Part_2_04.jpg]] If succed you have a new working shape key on the opposit side, and just need to assign it to be driven by, in this example, the bone "lowerarm01.R". [[File:Part_2_05.jpg]] If both alternative generate an error message, the mirror process has failed, that occur when the mesh is non symetric and differs to much. Dont accept any error at all. [[File:Part_2_06.jpg]] Instead read part 3 below ("Transfer shape keys to another character"). Import a symetrical MakeHuman character. Transfer the shape key to it, do the mirror, and transfer the shape key back to the original character, and give the shape key a suitable name. It is uncertain if the shape will look exactly the same but it wont generate any error message. == Transfer shape keys to another character == Most important to know, the characters must have exactly the same topology. In some cases character specific adjustments has to be done afterwards. At this moment I only knows it possible to transfer shape key's one at a time. Select the source character and the shape key to transfer. [[File:Part_3_01.jpg]] Shift select the receiving character's body and transfer the shape key. [[File:Part_3_02.jpg]] If not exist also a "Basis" shape key will automatically be created. [[File:Part_3_03.jpg]] 833eea0f573a46927f4c39b11734d8ff8d5155f3 1474 1473 2018-05-05T10:17:59Z Joepal 14 wikitext text/x-wiki These are instructions for how to set up shape keys on a rigged makehuman model in blender. == Step by step to make it work. == On the character body armature modifier, activate the function "Display modifier in Edit Mode" [[File:Part_1_01.jpg]] Create a basis shape key and then a deformation shape key, give it a suitable name. Pin the shape key to always show. [[File:Part_1_02.jpg]] Select the bone you want shall control the shape key and pose it to the position where you want full shape key deformation. Remember the bone name and wich axis you rotate it, in this example bone "lowerarm01.L" local X rotation - press key R then XX. [[File:Part_1_03.jpg]] Select the body and edit the mesh until desired shape for that pose. Proportional edit is very useful. [[File:Part_1_04.jpg]] Reset the bone to default position - press key ALT and R Prepare the shape key to be driven by the bone. [[File:Part_1_05.jpg]] The Value field color is now purple. Unpin the shape key and you will see the mesh transforms back to the default shape. [[File:Part_1_06.jpg]] Open "Graph Editor" - "Edit Drivers" [[File:Part_1_07.jpg]] Select the shape key to the left and the tab "Drivers", in the field "Object" select the skeleton and "Bone" in this example "lowerarm01.L" As this example want the bone local X rotation to control this shape key select "X Rotation" and "Local Space". Finish by setting "Type:" to "Averaged Value". [[File:Part_1_08.jpg]] If the shape key shall deform on the negative rotation axis, add the driver modifier "Generator" and value -1.000 as shown here. [[File:Part_1_09.jpg]] Rotate the bone on local X axis (key R then XX) and the shape will deform the mesh. Adjust the shape key until satisfied. The shape will always deform in a strait line. [[File:Part_1_10.jpg]] == Mirror shape keys == Select the shape key you want to mirror and activate pin. [[File:Part_2_01.jpg]] Make a copy of the shape key. [[File:Part_2_02.jpg]] Give the new shape key a suitable name. [[File:Part_2_03.jpg]] Mirror the new shape key. Choose either "Mirror Shape Key (Topology)" or "Mirror Shape Key" [[File:Part_2_04.jpg]] If succed you have a new working shape key on the opposit side, and just need to assign it to be driven by, in this example, the bone "lowerarm01.R". [[File:Part_2_05.jpg]] If both alternative generate an error message, the mirror process has failed, that occur when the mesh is non symetric and differs to much. Dont accept any error at all. [[File:Part_2_06.jpg]] Instead read part 3 below ("Transfer shape keys to another character"). Import a symetrical MakeHuman character. Transfer the shape key to it, do the mirror, and transfer the shape key back to the original character, and give the shape key a suitable name. It is uncertain if the shape will look exactly the same but it wont generate any error message. d62d5937be5663c71bef1687282d0a0b449f8e99 1473 2018-05-05T10:15:26Z Joepal 14 Created page with "These are instructions for how to set up shape keys on a rigged makehuman model in blender. == Step by step to make it work. == On the character body armature modifier, act..." wikitext text/x-wiki These are instructions for how to set up shape keys on a rigged makehuman model in blender. == Step by step to make it work. == On the character body armature modifier, activate the function "Display modifier in Edit Mode" [[File:Part_1_01.jpg]] Create a basis shape key and then a deformation shape key, give it a suitable name. Pin the shape key to always show. [[File:Part_1_02.jpg]] Select the bone you want shall control the shape key and pose it to the position where you want full shape key deformation. Remember the bone name and wich axis you rotate it, in this example bone "lowerarm01.L" local X rotation - press key R then XX. [[File:Part_1_03.jpg]] Select the body and edit the mesh until desired shape for that pose. Proportional edit is very useful. [[File:Part_1_04.jpg]] Reset the bone to default position - press key ALT and R Prepare the shape key to be driven by the bone. [[File:Part_1_05.jpg]] The Value field color is now purple. Unpin the shape key and you will see the mesh transforms back to the default shape. [[File:Part_1_06.jpg]] Open "Graph Editor" - "Edit Drivers" [[File:Part_1_07.jpg]] Select the shape key to the left and the tab "Drivers", in the field "Object" select the skeleton and "Bone" in this example "lowerarm01.L" As this example want the bone local X rotation to control this shape key select "X Rotation" and "Local Space". Finish by setting "Type:" to "Averaged Value". [[File:Part_1_08.jpg]] If the shape key shall deform on the negative rotation axis, add the driver modifier "Generator" and value -1.000 as shown here. [[File:Part_1_09.jpg]] Rotate the bone on local X axis (key R then XX) and the shape will deform the mesh. Adjust the shape key until satisfied. The shape will always deform in a strait line. [[File:Part_1_10.jpg]] 5acc7f1790ec72033cbc432446628353dd62b1ed Documentation:CreateHeels 3000 664 1884 2020-09-26T14:58:28Z Punkduck 38 Created page with " === Methods to create heels === To create heels or especially heel sandals is something what MakeHuman was not really made for. But there are some methods to create rather..." wikitext text/x-wiki === Methods to create heels === To create heels or especially heel sandals is something what MakeHuman was not really made for. But there are some methods to create rather good results, these are: * for shoes where you can't see the feet (like boots) it is possible to delete the feet and create boots directly. This method is recommended for closed shoes, because it is easier to handle. * it is also possible to duplicate feet, then change the shape so that they fit inside the heels and use a delete group for the vertices on the body. The problem would be that the skin texture must be part of the shoes and there is a visible small gap when subdivision surface algorithm is used between the feet with the shoes and the rest of the body. * it is possible to model the shoes slanted and later rotate the feet-bones. These shoes will look a bit clumsy because the toebox has to fit to the normal feet. In reality a narrow toebox is used for heels. * the method described in this documentation uses a special body with a shape key and needs at least one appropriate target in MakeHuman. It needs no own feet and can be used on heel sandals. So load '''female-heels_shapekey''' from the predefined meshes and set value of shape key so that it fits to the angle you need for the shoes. [[File:Mc2_heels1.png]] === Model the shoes === Now model your shoes. I took the peep toe slingbacks1 from Elvaerwyn as a demonstration. Usually one side is created and then mirrored. [[File:Mc2_heels2.png]] === Usage of vertex groups === Shoes (especially heels) have parts which are not flexible. Not to have deformed parts, one should use rigid groups (groups with only 3 vertices) on the body as a base for the clothes. There are two predefined groups for each side supplied. One can be used directly on sole of foot, the other is placed near the ankle. One should decide for one group (and test what looks better in the end). ''Hint: The group near the ankle is not deformed by the shape key and should be used when one create e.g. a combination of a roman sandal and high heels. For the lower part (foot + ankle) this rigid group would be used, for the upper part a "flexible" group containing the vertices of the lower leg without foot would be a solution.'' So for these shoes the leftAnkleRigid was used for left shoe and rightAnkleRigid for right shoe. That means that corresponding vertex groups with the same names must be created for the shoes and must be assigned. [[File:Mc2_heels3.png]] === Inside MakeHuman === After loading the shoes into MakeHuman the shoes don't look correct. In case of the ankle vertex group the character will hover above the shoes and in case of the other one at the sole of feet shoes will be slanted. There are some custom targets in the assets of MakeHuman to change this. Minimum ist the '''heels angle target'''. All other targets used in the illustration can be used if the shoes do not fit the character a 100%. ''Hint: For the sake of clarity I created a folder called "shoes" inside the custom target folder and moved all targets into this folder. That is the reason that "heels toebox" now is displayed as "Shoes heels toebox".'' [[File:Mc2_heels4.png]] 63fe59ccfeee3b893661f4ac882e1a916df13fe5 Documentation:Development infrastructure 3000 247 1118 721 2016-07-05T17:35:17Z Aranuvir 17 wikitext text/x-wiki The development of MakeHuman is based on two fundamental tools: * Mercurial (HG), a stable and robust platform for distributed revision control, with the main repo hosted on!LINK!https://bitbucket.org/MakeHuman/makehuman -- Bitbucket!/LINK! * A collaborative software!LINK!http://bugtracker.makehuman.org -- development platform!/LINK!, based on!LINK!http://www.redmine.org/ -- Redmine!/LINK!. ==== Get the code from BitBucket. ==== Obtain the code from BitBucket repository is very simple, but you need to have Mercurial installed on your system. It's natively present on Linux systems, while for Microsoft Windows, a good software is TortoiseHG (!LINK!http://tortoisehg.bitbucket.org/ -- http://tortoisehg.bitbucket.org/!/LINK!). To clone the repository to your PC, just use this command: hg clone!LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK! With tortoiseHG, you can do it visually, with: right-click --> TortoiseHG --> clone ==== Using Redmine in MakeHuman development ==== Redmine is a very powerful tool. [To expand with technical information about the roadmap organizations, the subprojects, and how to use it to accept experimental features] [[File:mh-hg-infographic01.png]] ==== Branches ==== The Unstable branch is where the development happens. This is our working branch, and so we can refer to it as default branch too. The Stable branch is used for official release only. It's just for mainteinance of the current official version. It's rarely used, except in the case of very noticeable bugs that will cause a service release. Any bugfix in the Stable must be merged in Unstable. When the Unstable is ready for the release, it's merged in the Stable and a tag (a sort of bookmark) is created on this exact revision. [[File:mh-hg-infographic02.png]] Working on experimental clone for new features in early development is a great comfort for the developer. He doesn't have to keep his code on the local drive since he can commit it immediately. It doesn't matter if the code does not work yet or breaks the app, it is the private playground of the developer. [[File:mh-hg-infographic03.png]] To start up a new feature yet unproven or that is unsure how to implement it exactly, or for a big refactor that might make a lot of problems until solved, we will create experimental repos, cloning the main one. One repo for (large) feature. [[File:mh-hg-infographic04.png]] Once the developer has something to show, he can communicate with other team members so they can: * clone the experimental repo to a new folder on their local disk * test it * give feedback * perhaps even commit fixes Once a feature is proven to work well enough and accepted by the rest of the team, it can be merged in official unstable branch, where it can be integrated in nighly build version and further finalized (it can now be tested by a broader audience and we will receive bugs reports from them) [[File:mh-hg-infographic05.png]] It is also possible that an external programmer, without commit rights on the official repo, make changes on his own personal clone (that he can make public on his own account if he desires). This is a good way to test new team members, where we can accept changes after verifying them. When we trust a new developer, we can give him direct access to official repo. f04222e5a4a19bb74f918d768288467905923282 721 719 2016-05-20T11:31:01Z Joepal 14 wikitext text/x-wiki The development of MakeHuman is based on two fundamental tools: * Mercurial (HG), a stable and robust platform for distributed revision control, with the main repo hosted on!LINK!https://bitbucket.org/MakeHuman/makehuman -- Bitbucket!/LINK! * A collaborative software!LINK!http://bugtracker.makehuman.org -- development platform!/LINK!, based on!LINK!http://www.redmine.org/ -- Redmine!/LINK!. ==== Get the code from BitBucket. ==== Obtain the code from BitBucket repository is very simple, but you need to have Mercurial installed on your system. It's natively present on Linux systems, while for Microsoft Windows, a good software is TortoiseHG (!LINK!http://tortoisehg.bitbucket.org/ -- http://tortoisehg.bitbucket.org/!/LINK!). To clone the repository to your PC, just use this command: hg clone!LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK! With tortoiseHG, you can do it visually, with: right-click --> TortoiseHG --> clone ==== Using Redmine in MakeHuman development ==== Redmine is a very powerful tool. [To expand with technical information about the roadmap organizations, the subprojects, and how to use it to accept experimental features] !IMAGE!Pictures/mh-hg-infographic01.png!/IMAGE! ==== Branches ==== The Unstable branch is where the development happens. This is our working branch, and so we can refer to it as default branch too. The Stable branch is used for official release only. It's just for mainteinance of the current official version. It's rarely used, except in the case of very noticeable bugs that will cause a service release. Any bugfix in the Stable must be merged in Unstable. When the Unstable is ready for the release, it's merged in the Stable and a tag (a sort of bookmark) is created on this exact revision. !IMAGE!Pictures/mh-hg-infographic02.png!/IMAGE! Working on experimental clone for new features in early development is a great comfort for the developer. He doesn't have to keep his code on the local drive since he can commit it immediately. It doesn't matter if the code does not work yet or breaks the app, it is the private playground of the developer. !IMAGE!Pictures/mh-hg-infographic03.png!/IMAGE! To start up a new feature yet unproven or that is unsure how to implement it exactly, or for a big refactor that might make a lot of problems until solved, we will create experimental repos, cloning the main one. One repo for (large) feature. !IMAGE!Pictures/mh-hg-infographic04.png!/IMAGE! Once the developer has something to show, he can communicate with other team members so they can: * clone the experimental repo to a new folder on their local disk * test it * give feedback * perhaps even commit fixes Once a feature is proven to work well enough and accepted by the rest of the team, it can be merged in official unstable branch, where it can be integrated in nighly build version and further finalized (it can now be tested by a broader audience and we will receive bugs reports from them) !IMAGE!Pictures/mh-hg-infographic05.png!/IMAGE! It is also possible that an external programmer, without commit rights on the official repo, make changes on his own personal clone (that he can make public on his own account if he desires). This is a good way to test new team members, where we can accept changes after verifying them. When we trust a new developer, we can give him direct access to official repo. 30f935d419041e48d81be9ddd19d1c3934d2349b 719 718 2016-05-20T11:29:35Z Joepal 14 Blanked the page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 718 2016-05-20T11:28:47Z Joepal 14 Created page with " !IMAGE!Pictures/mh-hg-infographic01.png!/IMAGE! The Unstable branch is where the development happens. This is our working branch, and so we can refer to it as default branch..." wikitext text/x-wiki !IMAGE!Pictures/mh-hg-infographic01.png!/IMAGE! The Unstable branch is where the development happens. This is our working branch, and so we can refer to it as default branch too. The Stable branch is used for official release only. It's just for mainteinance of the current official version. It's rarely used, except in the case of very noticeable bugs that will cause a service release. Any bugfix in the Stable must be merged in Unstable. When the Unstable is ready for the release, it's merged in the Stable and a tag (a sort of bookmark) is created on this exact revision. !IMAGE!Pictures/mh-hg-infographic02.png!/IMAGE! Working on experimental clone for new features in early development is a great comfort for the developer. He doesn't have to keep his code on the local drive since he can commit it immediately. It doesn't matter if the code does not work yet or breaks the app, it is the private playground of the developer. !IMAGE!Pictures/mh-hg-infographic03.png!/IMAGE! To start up a new feature yet unproven or that is unsure how to implement it exactly, or for a big refactor that might make a lot of problems until solved, we will create experimental repos, cloning the main one. One repo for (large) feature. !IMAGE!Pictures/mh-hg-infographic04.png!/IMAGE! Once the developer has something to show, he can communicate with other team members so they can: * clone the experimental repo to a new folder on their local disk * test it * give feedback * perhaps even commit fixes Once a feature is proven to work well enough and accepted by the rest of the team, it can be merged in official unstable branch, where it can be integrated in nighly build version and further finalized (it can now be tested by a broader audience and we will receive bugs reports from them) !IMAGE!Pictures/mh-hg-infographic05.png!/IMAGE! It is also possible that an external programmer, without commit rights on the official repo, make changes on his own personal clone (that he can make public on his own account if he desires). This is a good way to test new team members, where we can accept changes after verifying them. When we trust a new developer, we can give him direct access to official repo. 14b6a5dd7e0fda3d83eea62794ed2d19b39c3ce3 Documentation:Directory structure and core modules 3000 245 1827 713 2020-07-25T14:06:34Z Punkduck 38 wikitext text/x-wiki == Directory Structure of MakeHuman == [[File:MHDirectories.png]] The illustration shows the directory structure of MakeHuman. There are two different places for the directory, one side is the "internal" one, which is normally located in a range where it cannot be overwritten from a normal user, so let's call it system directories. The other side is the user space which can be changed by the user. The GIT repository is used to create the system folders shown above. The folders '''licenses''' and '''docs''' are associated with the general housekeeping and installation aspects of MakeHuman. Details of the housekeeping folders will be summarized, where relevant, elsewhere in the documentation. The remaining folder are discussed below. ---- During the pyinstaller build process, only files in the '''makehuman/data''' directory are included as data files, which means that any other data files will be skipped, causing file not found errors. Thus, the developer should place all data files under the '''data''' folder. The idea is to be able to cleanly identify what is data to be loaded at run time and what is code that can be compiled at build time. One exception here is target (data) files that can optionally be precompiled to binary files at build time even though their binaries will reside in the '''data''' directory. The rational for this is that target files are static data core assets and should therefore naturally reside in '''makehuman/data''', but by compiling target files at build time, the size of the build distribution can be reduced and program startup times can be minimized. ---- Files in '''makehuman/plugins''' form a second exception to data is "loaded at runtime" and code is "compiled at build time". Files in the '''makehuman/plugins''' folder are kept as a "side effect" of the fact that the '''makehuman/plugins''' path is included as data. This allows loading plugins at runtime by inspecting the folder. Plugins are compiled as well, though. Additional data which are not code may not be stored in the '''plugins''' folder. It would threaten logical organization of code and data, and it is not guaranteed that this will keep working in the future. Plugins should never be used as imported modules in other plugins or, even worse, in a core module. Currently, the core plugins of MakeHuman all start with a digit (e.g., import 9_export_mhx). This is done intentionally to prevent their improper import into other modules in the program because imports of a module starting with a digit will produce a syntax error. Core plugins that require data, for example those related to an export, should make use of a subfolder in the '''makehuman/data''' path. Third-party plugins might have slightly greater lattitude about including data than core assets, but the clean separation of code and data is strongly encouraged. Therefore, third-party plugin developers should place data in '''makehuman/plugins/pluginName/data''' to make it easily identifiable. ---- Most operating systems set aside separate storage space for code and data, and programs can generally not write data to their own directory structure. In addition, most OS support the notion of multiuser login, and support separate writable data areas for each user to customize. MakeHuman includes some "fixed data assets" that are intrinsic to the program. These data assets are saved in the programs data folder within the program itself. However, MakeHuman also makes provision for third-party and user developed assets like additional clothes, additional hairstyles, etc. These latter assets are not saved in the program area but rather are saved in users login folder. For example, on Windows 7 systems this would be "Documents/makehuman". In populating asset lists, the library holdings are generated based on the fact that they scan system and user path always. ---- '''makehuman/data''' folder does not contain any code per se. As its name implies this folder contains the basic data resources that ship with MakeHuman. Often, during the development and building of MakeHuman, a given resource may exist in multiple formats. Many if not most resources initially exist as “text-based” files which are stored in the data directory with an appropriate extension (see section of file extensions). When MakeHuman is built for distribution on supported platforms, these text-based data resources are compressed into .npz format to produce a smaller and more rapidly loading distribution package. Typically, the original text-based data files do not ship with standard, downloadable installation builds but instead, the corresponding compressed versions are distributed. The data folder contains many subfolders which correspond to unique data assets. The details of these assets will not be discussed here, but the reader can get a general idea of asset types just by reviewing the folder names (see illustration). Some of the data subfolders (e.g. eyes, hair, and clothes) are directed at important geometry assets of the MakeHuman model. MakeHuman supplies a special tool that lets developers or even end-users design additional assets using the 3D modeling program Blender, tools like MakeClothes, MakeSkin, MPFB etc. use these directories. ==== /makehuman/apps/ ==== * catmull_clark_subdivision.py- an implementation of the!LINK!http://en.wikipedia.org/wiki/Catmull%E2%80%93Clark_subdivision_surface -- catmull clark subdivision algorithm.!/LINK! * devtests.py- testing and development use only, and can safely be ignored. * human.py- contains the Human class, which is the core data structure for MakeHuman model. * humanmodifier.py- contains the functions and classes that link the GUI sliders to their respective effects on the MakeHuman mesh. * metadataengine.py- implements algorithms to handle MakeHuman metadata tags within large files. It makes it possible to quickly and easily associate descriptive adjectives (tags) such as "eye" or "brown" with the complete file path to an object that has these characteristics. * mh2proxy.py- (unknown) * posemode.py- contains classes and functions relevant to entering and exiting posemode, and altering a figure's pose. Changing the pose of a figure will deform the mesh and require the vertex warps to be reset. * warpmodifier.py- contains classes and functions to handle the source and target of a warp. * which.py- checks to see whether or not a program exists (needed for the GUI controls). ==== /makehuman/core/ ==== * algos3d.py- contains algorithms used to perform high-level 3D transformations on the 3D mesh that is used to represent the human figure in the MakeHuman application. * aljabr.py- contains the most common 3D algebraic operations used in MakeHuman including vector, matrix, quaternion, and various other operations. * animation3d.py- contains functions and classes to animate a wide range of objects. Includes support for rotation, scaling, translation, camera movement, and variety of interpolation methods. * compat.py- (Unknown) * download.py- contains classes and functions to download media from the web and import it into MakeHuman. * events3d.py- contains classes to allow an object to handle events resulting from keyboard or mouse input, window resizing, and changes to the human model with MakeHuman. * export.py- (Not fully implemented) contains classes to export the MakeHuman model. * files3d.py- contains functions to convert other 3D file formats to and from the internal format used by MakeHuman. * geometry3d.py- contains classes for commonly used 2D and 3d objects such as rectangles, cubes, and flat meshes. * gui3d.py- contains classes defined to implement widgets that provide utility functions to the graphical user interface. * mhmain.py- contains the operations and event handlers that provide the core functionality of MakeHuman. * module3d.py- contains classes and functions to handle the appearance and behavior of 3D objects such as shading, texturing, visibility, transparency, and creating groups of faces. * selection3d.py- contains classes and functions that allow users to select elements within a 3D scene by clicking on them with the mouse using a technique called "!LINK!http://www.opengl.org/archives/resources/faq/technical/selection.htm -- Selection Using Unique Color ID's!/LINK!" * textures3d.py- contains functions to perform standard proccesses on bitmaps and translate UV coordinates to a pixel index in a bitmap. * transformations.py- A library for calculating 4x4 matrices for translating, rotating, reflecting, scaling, shearing, projecting, orthogonalizing, and superimposing arrays of 3D homogeneous coordinates as well as for converting between rotation matrices, Euler angles, and quaternions. Also includes an Arcball control object and functions to decompose transformation matrices. * warp.py- contains classes and functions to warp vertex locations from a source character to a target character. This makes it possible to correctly combine several morphs that affect overlapping regions of the body. ==== /makehuman/lib/ ==== * camera.py -handles camera events such as changing focus, camera mode, and field of view. * core.py -sets default global variables * debugdump.py -handles creating a debug text file in the user's home directory and writing relevant debug information to that file. * filechooser.py- a Qt based filechooser widget that allows the user to preview and select files as well as sort them by name, creation date, modification date, and size. * getpath.py- Utility module for finding the user's home path. * glmodule.py- contains classes and functions to render 3D objects with openGL in both draw mode and pick mode. * gui.py -alias from gui.py to qtgui.py * image.py- handles flipping and resizing images as well as converting between RGB, ARGB, and greyscale. * imageqt.py- handles loading and saving RGB and ARGB images. * inifile.py- contains functions for formatting and parsing .ini files. * language.py- handles language file loading and translation. * log.py- extends the functionality of Python's logging module. The logging module can be used to create log files of events for debugging, or to display information or warnings within MakeHuman. It is used instead of print statements. * matrix.py- uses the NumPy package to define standard matrix operations. * mh.py- Python compatibility layer that replaces the old C functions of MakeHuman. * object3d.py- defines the object3d class * profiler.py- defines functions to handle profiling (how long various parts of the program executed). 2ca5d1af81c003a35191babd285d9192dc3b0043 713 2016-05-20T11:24:23Z Joepal 14 Created page with "Overview There are 10 main source folders with the main MakeHuman folder in the SVN repository: * apps * core * data * docs * icons * lib * licences * plugin * shared Of these..." wikitext text/x-wiki Overview There are 10 main source folders with the main MakeHuman folder in the SVN repository: * apps * core * data * docs * icons * lib * licences * plugin * shared Of these, two folders: (licenses and docs) are associated with the general housekeeping and installation aspects of MakeHuman. Details of the housekeeping folders will be summarized, where relevant, elsewhere in the documentation. The remaining folder are discussed below. Directory Structure and the Build System During the pyinstaller build process, only files in the makehuman/data/ directory are included as data files, which means that any other data files will be skipped, causing file not found errors. Thus, the developer should place all data files under the data/ folder. The idea is to be able to cleanly identify what is data to be loaded at run time.and what is code that can be compiled at build time. One exception here is target (data) files that can optionally be precompiled to binary files at build time even though their binaries will reside in the data/ directory. The rational for this is that target files are static data core assets and should therefore naturally reside in makehuman/data/, but by compiling target files at build time, the size of the build distribution can be reduced and program startup times can be minimized The files in makehuman/plugins/ form a second exception to data is "loaded at runtime" and code is "comiled at build time". Files in the makehuman/plugins/ folder are kept as a "side effect" of the fact that the makehuman/plugins/ path is included as data. It is included as data to make it possible to load plugins at runtime by inspecting the folder. Plugins are compiled as well, though. This does not mean that data may be stored in makehuman/plugins/ as this practice threatens logical organization of code and data, and it is not guaranteed that this will keep working in the future. Plugins should never be used as imported modules in other plugins or, even worse, in a core module. Currently, the core plugins of MakeHuman all start with a digit (e.g., import 9_export_mhx). This is done intentionally to prevent their improper import into other modules in the program because imports of a module starting with a digit will produce a syntax error. Core plugins that require data, for example those related to .mhx export, should make use of a subfolder in the makehuman/data/ path (makehuman/data/mhx/). Third-party plugins might have slightly greater lattitude about including data than core assets, but the clean separation of code and data is strongly encouraged. Therefore, third-party plugin developers should place data in makehuman/plugins/pluginName/data to make it easily identifiable. makehuman/data/ folder Most operating systems set aside separate storage space for code and data, and programs can generally not write data to their own directory structure. In addition, most OS support the notion of multiuser login, and support separate writable data areas for each user to customize. MakeHuman includes some "fixed data assets" that are intrinsic to the program. These data assets are save in the programs data folder within the program itself. However, MakeHuman also makes provision for third-party and user developed assets like additional clothes, additional hairstyles, etc. These latter assets are not saved in the program area but rather are save in user writable areas under the path userhome/makehuman/. For example, on Windows 7 systems this would be "Docuements/makehuman". In populating asset lists, the library holdings are generated based on the fact that syspath/data/itemtype and userhome/data/itemtype can coexist. Themakehuman/data/ folderdoes not contain any codeper se. As its name implies this folder contains the basic data resources that ship with MakeHuman. Often, during the development and building of MakeHuman, a given resource may exist in multiple formats. Many if not most resources initially exist as “text-based” files which are stored in the data directory with an appropriate extension (see section of file extensions). When MakeHuman is built for distribution on supported platforms, these text-based data resources are compressed into .npy format to produce a smaller and more rapidly loading distribution package. Typically, the original text-based data files do not ship with standard, downloadable installation builds but instead, the corresponding compressed versions are distributed. The data folder contains many subfolders which correspond to unique data assets. The details of these assets will not be discussed here, but the reader can get a general idea of asset types just by reviewing the folder names. 3dobjs, animations, bvhs, expressions, eyebrows, eyes, genitals, hair, icons, languages, litspheres, materials, mhx, poses, povray, proxymeshes, rigs, scenes, shaders, skins, targets, textures, themes, uvs, vertesgroups, visemes. Many of these data subfolders have subfolders themselves, but generally, this organization is easily discovered just by looking. Four of the data subfolders (eyes, hair, and clothes) are directed at important geometry assets of the MakeHuman model. MakeHuman supplies a special tool that lets developers or even end-users design additional assets using the 3D modeling program Blender. The name for this tool isMakeClotheseven though it supports the development of the other geometries as well. ==== /makehuman/apps/ ==== * catmull_clark_subdivision.py- an implementation of the!LINK!http://en.wikipedia.org/wiki/Catmull%E2%80%93Clark_subdivision_surface -- catmull clark subdivision algorithm.!/LINK! * devtests.py- testing and development use only, and can safely be ignored. * human.py- contains the Human class, which is the core data structure for MakeHuman model. * humanmodifier.py- contains the functions and classes that link the GUI sliders to their respective effects on the MakeHuman mesh. * metadataengine.py- implements algorithms to handle MakeHuman metadata tags within large files. It makes it possible to quickly and easily associate descriptive adjectives (tags) such as "eye" or "brown" with the complete file path to an object that has these characteristics. * mh2proxy.py- (unknown) * posemode.py- contains classes and functions relevant to entering and exiting posemode, and altering a figure's pose. Changing the pose of a figure will deform the mesh and require the vertex warps to be reset. * warpmodifier.py- contains classes and functions to handle the source and target of a warp. * which.py- checks to see whether or not a program exists (needed for the GUI controls). ==== /makehuman/core/ ==== * algos3d.py- contains algorithms used to perform high-level 3D transformations on the 3D mesh that is used to represent the human figure in the MakeHuman application. * aljabr.py- contains the most common 3D algebraic operations used in MakeHuman including vector, matrix, quaternion, and various other operations. * animation3d.py- contains functions and classes to animate a wide range of objects. Includes support for rotation, scaling, translation, camera movement, and variety of interpolation methods. * compat.py- (Unknown) * download.py- contains classes and functions to download media from the web and import it into MakeHuman. * events3d.py- contains classes to allow an object to handle events resulting from keyboard or mouse input, window resizing, and changes to the human model with MakeHuman. * export.py- (Not fully implemented) contains classes to export the MakeHuman model. * files3d.py- contains functions to convert other 3D file formats to and from the internal format used by MakeHuman. * geometry3d.py- contains classes for commonly used 2D and 3d objects such as rectangles, cubes, and flat meshes. * gui3d.py- contains classes defined to implement widgets that provide utility functions to the graphical user interface. * mhmain.py- contains the operations and event handlers that provide the core functionality of MakeHuman. * module3d.py- contains classes and functions to handle the appearance and behavior of 3D objects such as shading, texturing, visibility, transparency, and creating groups of faces. * selection3d.py- contains classes and functions that allow users to select elements within a 3D scene by clicking on them with the mouse using a technique called "!LINK!http://www.opengl.org/archives/resources/faq/technical/selection.htm -- Selection Using Unique Color ID's!/LINK!" * textures3d.py- contains functions to perform standard proccesses on bitmaps and translate UV coordinates to a pixel index in a bitmap. * transformations.py- A library for calculating 4x4 matrices for translating, rotating, reflecting, scaling, shearing, projecting, orthogonalizing, and superimposing arrays of 3D homogeneous coordinates as well as for converting between rotation matrices, Euler angles, and quaternions. Also includes an Arcball control object and functions to decompose transformation matrices. * warp.py- contains classes and functions to warp vertex locations from a source character to a target character. This makes it possible to correctly combine several morphs that affect overlapping regions of the body. ==== /makehuman/lib/ ==== * camera.py -handles camera events such as changing focus, camera mode, and field of view. * core.py -sets default global variables * debugdump.py -handles creating a debug text file in the user's home directory and writing relevant debug information to that file. * filechooser.py- a Qt based filechooser widget that allows the user to preview and select files as well as sort them by name, creation date, modification date, and size. * getpath.py- Utility module for finding the user's home path. * glmodule.py- contains classes and functions to render 3D objects with openGL in both draw mode and pick mode. * gui.py -alias from gui.py to qtgui.py * image.py- handles flipping and resizing images as well as converting between RGB, ARGB, and greyscale. * imageqt.py- handles loading and saving RGB and ARGB images. * inifile.py- contains functions for formatting and parsing .ini files. * language.py- handles language file loading and translation. * log.py- extends the functionality of Python's logging module. The logging module can be used to create log files of events for debugging, or to display information or warnings within MakeHuman. It is used instead of print statements. * matrix.py- uses the NumPy package to define standard matrix operations. * mh.py- Python compatibility layer that replaces the old C functions of MakeHuman. * object3d.py- defines the object3d class * profiler.py- defines functions to handle profiling (how long various parts of the program executed). 16560600353504a4917b63a75c9333d76e051b47 Documentation:Exports and file formats 3000 252 1615 1113 2019-09-27T08:28:58Z Joepal 14 wikitext text/x-wiki Note that this page is a general overview of the export formats. If you want to export for a specific application, you might want to read one of the specific pages instead. These can be found from the [[Documentation:Index|root of the documentation]]. Further note that if you want to export to Blender, there is a better approach than using file exports, see [[FAQ: What is MPFB (MakeHuman Plugin For Blender)?]] [[File:export_labelled.png]] The above illustration explains the typical user interface components of the Export tab. On the right you get to choose what to export be in the mesh, the rig or the maps. In the center you have the 3D preview to preview your model. On the right you have options which keep changing based on what format you have selected in the left panel. On the top below the tabs panel is the “Ellipsis” button which opens a file dialog, a text box to enter the file name of the file and an “Export” button to do the actual export and save the file in the desired format. Below we outline the three main options in more detail i.e. Mesh formats, rig formats and Maps. == The special case MHX2 == (to be written) == Mesh Formats (.dae, .fbx, .obj, Ogre3D, .stl) == Files are Exported using either the Quick Export icon or by directly choosing the File tab and the Export sub tab. The Export window allows you to export your current MakeHuman project to one of a variety of export formats. Supported formats including Collada (DAE), Filmbox (FBX), Wavefront (OBJ), Sterolithography (stl) and Ogre3d. By default, exported files (regardless of export format) are saved to the user directory %HOMEPATH%/makehuman/v1/exports/. As is true for the load and save tabs, the ellipsis can be used to export to a non-standard directory/folder. After selecting a format and export options, type the name of your project in the input box at the center of the Export window and then click the "Export" button at the right hand side of the input box. MakeHuman, itself, can not read any of the exported formats, so exporting is a one way transfer of information. If you expect to do further refinement of your model, make sure you also save it in .mhm format. The various export formats differ in the richness of the assets exported: === Collada (.dae) === COLLADA™ is owned by the not-for-profit, open standards [http://www.khronos.org/ Khronos group]. It defines an [https://www.khronos.org/collada/ XML-based schema] standard for exporting 3D assets. MakeHuman™ is meant to adhere to version 1.4 of the standard. The resulting ASCII format files can become quite large which occasionally limits the use of this format with other programs. By default, MakeHuman™ exports DAE files with y-up, face-z and the decimeter scale chosen. When importing MakeHuman dae files into Blender, be sure to check "import units" at the bottom of the Blender left tool panel if you have not changed the units to meters. === Wavefront (.obj) === OBJ is a very simple format to export the mesh, with vertices, faces and UV coordinates. Originally invented by Alias/Wavefront, all major 3D packages have OBJ importers, so this format allows you to export to the greatest range of applications. However, the character is not rigged but rather a static prop. Wavefront OBJ is a good choice when you need a simple mesh for an external renderer. It comes with an mtl file defining the material. === Filmbox (.fbx) === The default dialect currently used by the MakeHuman™ FBX exporter is FBX 2013 ASCII. Other FBX dialects exist, and if you need one of those dialects, you can use the [http://www.autodesk.com/products/fbx/overview AutoDesk FBX converter]For example, the Blender importer requires binary FBX files that can be generated in this fashion. === Stereolitography (.stl) === (to be written) === Ogre3d === (to be written) == Rig formats (.bvh) == MakeHuman currently only supports one rig format: BVH. If BVH is selected, it is anticipated that built in animations will be saved to the export directory. As of the MakeHuman 1.1.0, there is no offical support for model animation from within MakeHuman. Thus, selecting this export type is of limited value. If you are interested in using BVH files created by other programs with the MakeHuman model, you may wish to read the documentation on the MAKEWALK -- LINK NEEDED Addon. == Maps == You can also export light maps and UV maps === Lightmap === If Lightmap is checked, a grayscale image of the unwrapped model is saved in the export directory as a 2048 x 2048 .png image. === UV map === If UV map is checked, a black and white UV unwrapped image of the model mesh on a black background is saved in the export directory as a 2048 x 2048 .png image. == The options box == TheOptionsbox contains several export options for each of the formats.The export options available for each format can be selected or deselected by ticking (displayed in orange) and un-ticking off the box in front of them. You can either use the default options for a format or select and deselect options according to your goals and needs. Once an option is changed, it will remain in the changed state until you restart MakeHuman or change it again. They are unaffected by the reset button on the Toolbar. A common option that is present for all formats isFeet on ground: the origin of the MakeHuman™ mesh is located in the hip area, but if this option is enabled, exported origin is moved to between the feet instead. Another common option present in almost all formats is the Scale unit: decimeter, meter, inch, centimeter. The internal MakeHuman™ unit is decimeters (the base mesh is 16.8 dm tall), but this is a rather unique choice not shared by other applications. Setting the unit is not essential if the file is exported to a 3D suit like Maya, 3DSMax or Blender, because the character can be rescaled after import. However, Collada files can also be read by other types of applications, where choosing the right scale may be important. In particular, select meters for export to SecondLife. b2f49e246374155cdef0abcd7773236837e33fef 1113 762 2016-07-05T17:25:08Z Aranuvir 17 wikitext text/x-wiki Note that this page is a general overview of the export formats. If you want to export for a specific application, you might want to read one of the specific pages instead. These can be found from the [[Documentation:Index|root of the documentation]]. [[File:export_labelled.png]] The above illustration explains the typical user interface components of the Export tab. On the right you get to choose what to export be in the mesh, the rig or the maps. In the center you have the 3D preview to preview your model. On the right you have options which keep changing based on what format you have selected in the left panel. On the top below the tabs panel is the “Ellipsis” button which opens a file dialog, a text box to enter the file name of the file and an “Export” button to do the actual export and save the file in the desired format. Below we outline the three main options in more detail i.e. Mesh formats, rig formats and Maps. == The special case MHX2 == (to be written) == Mesh Formats (.dae, .fbx, .obj, Ogre3D, .stl) == Files are Exported using either the Quick Export icon or by directly choosing the File tab and the Export sub tab. The Export window allows you to export your current MakeHuman project to one of a variety of export formats. Supported formats including Collada (DAE), Filmbox (FBX), Wavefront (OBJ), Sterolithography (stl) and Ogre3d. By default, exported files (regardless of export format) are saved to the user directory %HOMEPATH%/makehuman/v1/exports/. As is true for the load and save tabs, the ellipsis can be used to export to a non-standard directory/folder. After selecting a format and export options, type the name of your project in the input box at the center of the Export window and then click the "Export" button at the right hand side of the input box. MakeHuman, itself, can not read any of the exported formats, so exporting is a one way transfer of information. If you expect to do further refinement of your model, make sure you also save it in .mhm format. The various export formats differ in the richness of the assets exported: === Collada (.dae) === COLLADA™ is owned by the not-for-profit, open standards [http://www.khronos.org/ Khronos group]. It defines an [https://www.khronos.org/collada/ XML-based schema] standard for exporting 3D assets. MakeHuman™ is meant to adhere to version 1.4 of the standard. The resulting ASCII format files can become quite large which occasionally limits the use of this format with other programs. By default, MakeHuman™ exports DAE files with y-up, face-z and the decimeter scale chosen. When importing MakeHuman dae files into Blender, be sure to check "import units" at the bottom of the Blender left tool panel if you have not changed the units to meters. === Wavefront (.obj) === OBJ is a very simple format to export the mesh, with vertices, faces and UV coordinates. Originally invented by Alias/Wavefront, all major 3D packages have OBJ importers, so this format allows you to export to the greatest range of applications. However, the character is not rigged but rather a static prop. Wavefront OBJ is a good choice when you need a simple mesh for an external renderer. It comes with an mtl file defining the material. === Filmbox (.fbx) === The default dialect currently used by the MakeHuman™ FBX exporter is FBX 2013 ASCII. Other FBX dialects exist, and if you need one of those dialects, you can use the [http://www.autodesk.com/products/fbx/overview AutoDesk FBX converter]For example, the Blender importer requires binary FBX files that can be generated in this fashion. === Stereolitography (.stl) === (to be written) === Ogre3d === (to be written) == Rig formats (.bvh) == MakeHuman currently only supports one rig format: BVH. If BVH is selected, it is anticipated that built in animations will be saved to the export directory. As of the MakeHuman 1.1.0, there is no offical support for model animation from within MakeHuman. Thus, selecting this export type is of limited value. If you are interested in using BVH files created by other programs with the MakeHuman model, you may wish to read the documentation on the MAKEWALK -- LINK NEEDED Addon. == Maps == You can also export light maps and UV maps === Lightmap === If Lightmap is checked, a grayscale image of the unwrapped model is saved in the export directory as a 2048 x 2048 .png image. === UV map === If UV map is checked, a black and white UV unwrapped image of the model mesh on a black background is saved in the export directory as a 2048 x 2048 .png image. == The options box == TheOptionsbox contains several export options for each of the formats.The export options available for each format can be selected or deselected by ticking (displayed in orange) and un-ticking off the box in front of them. You can either use the default options for a format or select and deselect options according to your goals and needs. Once an option is changed, it will remain in the changed state until you restart MakeHuman or change it again. They are unaffected by the reset button on the Toolbar. A common option that is present for all formats isFeet on ground: the origin of the MakeHuman™ mesh is located in the hip area, but if this option is enabled, exported origin is moved to between the feet instead. Another common option present in almost all formats is the Scale unit: decimeter, meter, inch, centimeter. The internal MakeHuman™ unit is decimeters (the base mesh is 16.8 dm tall), but this is a rather unique choice not shared by other applications. Setting the unit is not essential if the file is exported to a 3D suit like Maya, 3DSMax or Blender, because the character can be rescaled after import. However, Collada files can also be read by other types of applications, where choosing the right scale may be important. In particular, select meters for export to SecondLife. 93ae60e3f62d10238f4304dac2aab5e34417f98e 762 761 2016-05-24T11:24:35Z Joepal 14 wikitext text/x-wiki Note that this page is a general overview of the export formats. If you want to export for a specific application, you might want to read one of the specific pages instead. These can be found from the [[Documentation:Index|root of the documentation]]. !IMAGE!Pictures/export_labelled.png!/IMAGE! The above illustration explains the typical user interface components of the Export tab. On the right you get to choose what to export be in the mesh, the rig or the maps. In the center you have the 3D preview to preview your model. On the right you have options which keep changing based on what format you have selected in the left panel. On the top below the tabs panel is the “Ellipsis” button which opens a file dialog, a text box to enter the file name of the file and an “Export” button to do the actual export and save the file in the desired format. Below we outline the three main options in more detail i.e. Mesh formats, rig formats and Maps. == The special case MHX2 == (to be written) == Mesh Formats (.dae, .fbx, .obj, Ogre3D, .stl) == Files are Exported using either the Quick Export icon or by directly choosing the File tab and the Export sub tab. The Export window allows you to export your current MakeHuman project to one of a variety of export formats. Supported formats including Collada (DAE), Filmbox (FBX), Wavefront (OBJ), Sterolithography (stl) and Ogre3d. By default, exported files (regardless of export format) are saved to the user directory %HOMEPATH%/makehuman/v1/exports/. As is true for the load and save tabs, the ellipsis can be used to export to a non-standard directory/folder. After selecting a format and export options, type the name of your project in the input box at the center of the Export window and then click the "Export" button at the right hand side of the input box. MakeHuman, itself, can not read any of the exported formats, so exporting is a one way transfer of information. If you expect to do further refinement of your model, make sure you also save it in .mhm format. The various export formats differ in the richness of the assets exported: === Collada (.dae) === COLLADA™ is owned by the not-for-profit, open standards [http://www.khronos.org/ Khronos group]. It defines an [https://www.khronos.org/collada/ XML-based schema] standard for exporting 3D assets. MakeHuman™ is meant to adhere to version 1.4 of the standard. The resulting ASCII format files can become quite large which occasionally limits the use of this format with other programs. By default, MakeHuman™ exports DAE files with y-up, face-z and the decimeter scale chosen. When importing MakeHuman dae files into Blender, be sure to check "import units" at the bottom of the Blender left tool panel if you have not changed the units to meters. === Wavefront (.obj) === OBJ is a very simple format to export the mesh, with vertices, faces and UV coordinates. Originally invented by Alias/Wavefront, all major 3D packages have OBJ importers, so this format allows you to export to the greatest range of applications. However, the character is not rigged but rather a static prop. Wavefront OBJ is a good choice when you need a simple mesh for an external renderer. It comes with an mtl file defining the material. === Filmbox (.fbx) === The default dialect currently used by the MakeHuman™ FBX exporter is FBX 2013 ASCII. Other FBX dialects exist, and if you need one of those dialects, you can use the [http://www.autodesk.com/products/fbx/overview AutoDesk FBX converter]For example, the Blender importer requires binary FBX files that can be generated in this fashion. === Stereolitography (.stl) === (to be written) === Ogre3d === (to be written) == Rig formats (.bvh) == MakeHuman currently only supports one rig format: BVH. If BVH is selected, it is anticipated that built in animations will be saved to the export directory. As of the MakeHuman 1.1.0, there is no offical support for model animation from within MakeHuman. Thus, selecting this export type is of limited value. If you are interested in using BVH files created by other programs with the MakeHuman model, you may wish to read the documentation on the MAKEWALK -- LINK NEEDED Addon. == Maps == You can also export light maps and UV maps === Lightmap === If Lightmap is checked, a grayscale image of the unwrapped model is saved in the export directory as a 2048 x 2048 .png image. === UV map === If UV map is checked, a black and white UV unwrapped image of the model mesh on a black background is saved in the export directory as a 2048 x 2048 .png image. == The options box == TheOptionsbox contains several export options for each of the formats.The export options available for each format can be selected or deselected by ticking (displayed in orange) and un-ticking off the box in front of them. You can either use the default options for a format or select and deselect options according to your goals and needs. Once an option is changed, it will remain in the changed state until you restart MakeHuman or change it again. They are unaffected by the reset button on the Toolbar. A common option that is present for all formats isFeet on ground: the origin of the MakeHuman™ mesh is located in the hip area, but if this option is enabled, exported origin is moved to between the feet instead. Another common option present in almost all formats is the Scale unit: decimeter, meter, inch, centimeter. The internal MakeHuman™ unit is decimeters (the base mesh is 16.8 dm tall), but this is a rather unique choice not shared by other applications. Setting the unit is not essential if the file is exported to a 3D suit like Maya, 3DSMax or Blender, because the character can be rescaled after import. However, Collada files can also be read by other types of applications, where choosing the right scale may be important. In particular, select meters for export to SecondLife. c6bfe38070a08affad7f83d683f8c1761e348aa3 761 760 2016-05-24T11:24:03Z Joepal 14 wikitext text/x-wiki Note that this page is a general overview of the export formats. If you want to export for a specific application, you might want to read one of the specific pages instead. These can be found from the [[Documentation:Index root of the documentation]]. !IMAGE!Pictures/export_labelled.png!/IMAGE! The above illustration explains the typical user interface components of the Export tab. On the right you get to choose what to export be in the mesh, the rig or the maps. In the center you have the 3D preview to preview your model. On the right you have options which keep changing based on what format you have selected in the left panel. On the top below the tabs panel is the “Ellipsis” button which opens a file dialog, a text box to enter the file name of the file and an “Export” button to do the actual export and save the file in the desired format. Below we outline the three main options in more detail i.e. Mesh formats, rig formats and Maps. == The special case MHX2 == (to be written) == Mesh Formats (.dae, .fbx, .obj, Ogre3D, .stl) == Files are Exported using either the Quick Export icon or by directly choosing the File tab and the Export sub tab. The Export window allows you to export your current MakeHuman project to one of a variety of export formats. Supported formats including Collada (DAE), Filmbox (FBX), Wavefront (OBJ), Sterolithography (stl) and Ogre3d. By default, exported files (regardless of export format) are saved to the user directory %HOMEPATH%/makehuman/v1/exports/. As is true for the load and save tabs, the ellipsis can be used to export to a non-standard directory/folder. After selecting a format and export options, type the name of your project in the input box at the center of the Export window and then click the "Export" button at the right hand side of the input box. MakeHuman, itself, can not read any of the exported formats, so exporting is a one way transfer of information. If you expect to do further refinement of your model, make sure you also save it in .mhm format. The various export formats differ in the richness of the assets exported: === Collada (.dae) === COLLADA™ is owned by the not-for-profit, open standards [http://www.khronos.org/ Khronos group]. It defines an [https://www.khronos.org/collada/ XML-based schema] standard for exporting 3D assets. MakeHuman™ is meant to adhere to version 1.4 of the standard. The resulting ASCII format files can become quite large which occasionally limits the use of this format with other programs. By default, MakeHuman™ exports DAE files with y-up, face-z and the decimeter scale chosen. When importing MakeHuman dae files into Blender, be sure to check "import units" at the bottom of the Blender left tool panel if you have not changed the units to meters. === Wavefront (.obj) === OBJ is a very simple format to export the mesh, with vertices, faces and UV coordinates. Originally invented by Alias/Wavefront, all major 3D packages have OBJ importers, so this format allows you to export to the greatest range of applications. However, the character is not rigged but rather a static prop. Wavefront OBJ is a good choice when you need a simple mesh for an external renderer. It comes with an mtl file defining the material. === Filmbox (.fbx) === The default dialect currently used by the MakeHuman™ FBX exporter is FBX 2013 ASCII. Other FBX dialects exist, and if you need one of those dialects, you can use the [http://www.autodesk.com/products/fbx/overview AutoDesk FBX converter]For example, the Blender importer requires binary FBX files that can be generated in this fashion. === Stereolitography (.stl) === (to be written) === Ogre3d === (to be written) == Rig formats (.bvh) == MakeHuman currently only supports one rig format: BVH. If BVH is selected, it is anticipated that built in animations will be saved to the export directory. As of the MakeHuman 1.1.0, there is no offical support for model animation from within MakeHuman. Thus, selecting this export type is of limited value. If you are interested in using BVH files created by other programs with the MakeHuman model, you may wish to read the documentation on the MAKEWALK -- LINK NEEDED Addon. == Maps == You can also export light maps and UV maps === Lightmap === If Lightmap is checked, a grayscale image of the unwrapped model is saved in the export directory as a 2048 x 2048 .png image. === UV map === If UV map is checked, a black and white UV unwrapped image of the model mesh on a black background is saved in the export directory as a 2048 x 2048 .png image. == The options box == TheOptionsbox contains several export options for each of the formats.The export options available for each format can be selected or deselected by ticking (displayed in orange) and un-ticking off the box in front of them. You can either use the default options for a format or select and deselect options according to your goals and needs. Once an option is changed, it will remain in the changed state until you restart MakeHuman or change it again. They are unaffected by the reset button on the Toolbar. A common option that is present for all formats isFeet on ground: the origin of the MakeHuman™ mesh is located in the hip area, but if this option is enabled, exported origin is moved to between the feet instead. Another common option present in almost all formats is the Scale unit: decimeter, meter, inch, centimeter. The internal MakeHuman™ unit is decimeters (the base mesh is 16.8 dm tall), but this is a rather unique choice not shared by other applications. Setting the unit is not essential if the file is exported to a 3D suit like Maya, 3DSMax or Blender, because the character can be rescaled after import. However, Collada files can also be read by other types of applications, where choosing the right scale may be important. In particular, select meters for export to SecondLife. 58e4b196ee81b10d970aebb92c210e1ca14ca178 760 759 2016-05-24T11:22:31Z Joepal 14 /* Maps ( ligtmaps and UV maps) */ wikitext text/x-wiki !IMAGE!Pictures/export_labelled.png!/IMAGE! The above illustration explains the typical user interface components of the Export tab. On the right you get to choose what to export be in the mesh, the rig or the maps. In the center you have the 3D preview to preview your model. On the right you have options which keep changing based on what format you have selected in the left panel. On the top below the tabs panel is the “Ellipsis” button which opens a file dialog, a text box to enter the file name of the file and an “Export” button to do the actual export and save the file in the desired format. Below we outline the three main options in more detail i.e. Mesh formats, rig formats and Maps. == The special case MHX2 == (to be written) == Mesh Formats (.dae, .fbx, .obj, Ogre3D, .stl) == Files are Exported using either the Quick Export icon or by directly choosing the File tab and the Export sub tab. The Export window allows you to export your current MakeHuman project to one of a variety of export formats. Supported formats including Collada (DAE), Filmbox (FBX), Wavefront (OBJ), Sterolithography (stl) and Ogre3d. By default, exported files (regardless of export format) are saved to the user directory %HOMEPATH%/makehuman/v1/exports/. As is true for the load and save tabs, the ellipsis can be used to export to a non-standard directory/folder. After selecting a format and export options, type the name of your project in the input box at the center of the Export window and then click the "Export" button at the right hand side of the input box. MakeHuman, itself, can not read any of the exported formats, so exporting is a one way transfer of information. If you expect to do further refinement of your model, make sure you also save it in .mhm format. The various export formats differ in the richness of the assets exported: === Collada (.dae) === COLLADA™ is owned by the not-for-profit, open standards [http://www.khronos.org/ Khronos group]. It defines an [https://www.khronos.org/collada/ XML-based schema] standard for exporting 3D assets. MakeHuman™ is meant to adhere to version 1.4 of the standard. The resulting ASCII format files can become quite large which occasionally limits the use of this format with other programs. By default, MakeHuman™ exports DAE files with y-up, face-z and the decimeter scale chosen. When importing MakeHuman dae files into Blender, be sure to check "import units" at the bottom of the Blender left tool panel if you have not changed the units to meters. === Wavefront (.obj) === OBJ is a very simple format to export the mesh, with vertices, faces and UV coordinates. Originally invented by Alias/Wavefront, all major 3D packages have OBJ importers, so this format allows you to export to the greatest range of applications. However, the character is not rigged but rather a static prop. Wavefront OBJ is a good choice when you need a simple mesh for an external renderer. It comes with an mtl file defining the material. === Filmbox (.fbx) === The default dialect currently used by the MakeHuman™ FBX exporter is FBX 2013 ASCII. Other FBX dialects exist, and if you need one of those dialects, you can use the [http://www.autodesk.com/products/fbx/overview AutoDesk FBX converter]For example, the Blender importer requires binary FBX files that can be generated in this fashion. === Stereolitography (.stl) === (to be written) === Ogre3d === (to be written) == Rig formats (.bvh) == MakeHuman currently only supports one rig format: BVH. If BVH is selected, it is anticipated that built in animations will be saved to the export directory. As of the MakeHuman 1.1.0, there is no offical support for model animation from within MakeHuman. Thus, selecting this export type is of limited value. If you are interested in using BVH files created by other programs with the MakeHuman model, you may wish to read the documentation on the MAKEWALK -- LINK NEEDED Addon. == Maps == You can also export light maps and UV maps === Lightmap === If Lightmap is checked, a grayscale image of the unwrapped model is saved in the export directory as a 2048 x 2048 .png image. === UV map === If UV map is checked, a black and white UV unwrapped image of the model mesh on a black background is saved in the export directory as a 2048 x 2048 .png image. == The options box == TheOptionsbox contains several export options for each of the formats.The export options available for each format can be selected or deselected by ticking (displayed in orange) and un-ticking off the box in front of them. You can either use the default options for a format or select and deselect options according to your goals and needs. Once an option is changed, it will remain in the changed state until you restart MakeHuman or change it again. They are unaffected by the reset button on the Toolbar. A common option that is present for all formats isFeet on ground: the origin of the MakeHuman™ mesh is located in the hip area, but if this option is enabled, exported origin is moved to between the feet instead. Another common option present in almost all formats is the Scale unit: decimeter, meter, inch, centimeter. The internal MakeHuman™ unit is decimeters (the base mesh is 16.8 dm tall), but this is a rather unique choice not shared by other applications. Setting the unit is not essential if the file is exported to a 3D suit like Maya, 3DSMax or Blender, because the character can be rescaled after import. However, Collada files can also be read by other types of applications, where choosing the right scale may be important. In particular, select meters for export to SecondLife. 76ba3b2fc2e77ff4a6e94924b66890874d2dea34 759 758 2016-05-24T11:21:12Z Joepal 14 /* Rig formats (.bvh) */ wikitext text/x-wiki !IMAGE!Pictures/export_labelled.png!/IMAGE! The above illustration explains the typical user interface components of the Export tab. On the right you get to choose what to export be in the mesh, the rig or the maps. In the center you have the 3D preview to preview your model. On the right you have options which keep changing based on what format you have selected in the left panel. On the top below the tabs panel is the “Ellipsis” button which opens a file dialog, a text box to enter the file name of the file and an “Export” button to do the actual export and save the file in the desired format. Below we outline the three main options in more detail i.e. Mesh formats, rig formats and Maps. == The special case MHX2 == (to be written) == Mesh Formats (.dae, .fbx, .obj, Ogre3D, .stl) == Files are Exported using either the Quick Export icon or by directly choosing the File tab and the Export sub tab. The Export window allows you to export your current MakeHuman project to one of a variety of export formats. Supported formats including Collada (DAE), Filmbox (FBX), Wavefront (OBJ), Sterolithography (stl) and Ogre3d. By default, exported files (regardless of export format) are saved to the user directory %HOMEPATH%/makehuman/v1/exports/. As is true for the load and save tabs, the ellipsis can be used to export to a non-standard directory/folder. After selecting a format and export options, type the name of your project in the input box at the center of the Export window and then click the "Export" button at the right hand side of the input box. MakeHuman, itself, can not read any of the exported formats, so exporting is a one way transfer of information. If you expect to do further refinement of your model, make sure you also save it in .mhm format. The various export formats differ in the richness of the assets exported: === Collada (.dae) === COLLADA™ is owned by the not-for-profit, open standards [http://www.khronos.org/ Khronos group]. It defines an [https://www.khronos.org/collada/ XML-based schema] standard for exporting 3D assets. MakeHuman™ is meant to adhere to version 1.4 of the standard. The resulting ASCII format files can become quite large which occasionally limits the use of this format with other programs. By default, MakeHuman™ exports DAE files with y-up, face-z and the decimeter scale chosen. When importing MakeHuman dae files into Blender, be sure to check "import units" at the bottom of the Blender left tool panel if you have not changed the units to meters. === Wavefront (.obj) === OBJ is a very simple format to export the mesh, with vertices, faces and UV coordinates. Originally invented by Alias/Wavefront, all major 3D packages have OBJ importers, so this format allows you to export to the greatest range of applications. However, the character is not rigged but rather a static prop. Wavefront OBJ is a good choice when you need a simple mesh for an external renderer. It comes with an mtl file defining the material. === Filmbox (.fbx) === The default dialect currently used by the MakeHuman™ FBX exporter is FBX 2013 ASCII. Other FBX dialects exist, and if you need one of those dialects, you can use the [http://www.autodesk.com/products/fbx/overview AutoDesk FBX converter]For example, the Blender importer requires binary FBX files that can be generated in this fashion. === Stereolitography (.stl) === (to be written) === Ogre3d === (to be written) == Rig formats (.bvh) == MakeHuman currently only supports one rig format: BVH. If BVH is selected, it is anticipated that built in animations will be saved to the export directory. As of the MakeHuman 1.1.0, there is no offical support for model animation from within MakeHuman. Thus, selecting this export type is of limited value. If you are interested in using BVH files created by other programs with the MakeHuman model, you may wish to read the documentation on the MAKEWALK -- LINK NEEDED Addon. == Maps ( ligtmaps and UV maps) == * Lightmap:IfLightmapis checked, a grayscale image of the unwrapped A8 model is saved in the export directory as a 2048 x 2048 .png image. * UV Map:IfUV mapis checked, a black and white UV unwrapped image of the model mesh on a black background is saved in the export directory as a 2048 x 2048 .png image. == The options box == TheOptionsbox contains several export options for each of the formats.The export options available for each format can be selected or deselected by ticking (displayed in orange) and un-ticking off the box in front of them. You can either use the default options for a format or select and deselect options according to your goals and needs. Once an option is changed, it will remain in the changed state until you restart MakeHuman or change it again. They are unaffected by the reset button on the Toolbar. A common option that is present for all formats isFeet on ground: the origin of the MakeHuman™ mesh is located in the hip area, but if this option is enabled, exported origin is moved to between the feet instead. Another common option present in almost all formats is the Scale unit: decimeter, meter, inch, centimeter. The internal MakeHuman™ unit is decimeters (the base mesh is 16.8 dm tall), but this is a rather unique choice not shared by other applications. Setting the unit is not essential if the file is exported to a 3D suit like Maya, 3DSMax or Blender, because the character can be rescaled after import. However, Collada files can also be read by other types of applications, where choosing the right scale may be important. In particular, select meters for export to SecondLife. 2c391b95efdbf396f8ed0381e633b2281e2ef762 758 2016-05-24T11:19:23Z Joepal 14 Created page with " !IMAGE!Pictures/export_labelled.png!/IMAGE! The above illustration explains the typical user interface components of the Export tab. On the right you get to choose what to..." wikitext text/x-wiki !IMAGE!Pictures/export_labelled.png!/IMAGE! The above illustration explains the typical user interface components of the Export tab. On the right you get to choose what to export be in the mesh, the rig or the maps. In the center you have the 3D preview to preview your model. On the right you have options which keep changing based on what format you have selected in the left panel. On the top below the tabs panel is the “Ellipsis” button which opens a file dialog, a text box to enter the file name of the file and an “Export” button to do the actual export and save the file in the desired format. Below we outline the three main options in more detail i.e. Mesh formats, rig formats and Maps. == The special case MHX2 == (to be written) == Mesh Formats (.dae, .fbx, .obj, Ogre3D, .stl) == Files are Exported using either the Quick Export icon or by directly choosing the File tab and the Export sub tab. The Export window allows you to export your current MakeHuman project to one of a variety of export formats. Supported formats including Collada (DAE), Filmbox (FBX), Wavefront (OBJ), Sterolithography (stl) and Ogre3d. By default, exported files (regardless of export format) are saved to the user directory %HOMEPATH%/makehuman/v1/exports/. As is true for the load and save tabs, the ellipsis can be used to export to a non-standard directory/folder. After selecting a format and export options, type the name of your project in the input box at the center of the Export window and then click the "Export" button at the right hand side of the input box. MakeHuman, itself, can not read any of the exported formats, so exporting is a one way transfer of information. If you expect to do further refinement of your model, make sure you also save it in .mhm format. The various export formats differ in the richness of the assets exported: === Collada (.dae) === COLLADA™ is owned by the not-for-profit, open standards [http://www.khronos.org/ Khronos group]. It defines an [https://www.khronos.org/collada/ XML-based schema] standard for exporting 3D assets. MakeHuman™ is meant to adhere to version 1.4 of the standard. The resulting ASCII format files can become quite large which occasionally limits the use of this format with other programs. By default, MakeHuman™ exports DAE files with y-up, face-z and the decimeter scale chosen. When importing MakeHuman dae files into Blender, be sure to check "import units" at the bottom of the Blender left tool panel if you have not changed the units to meters. === Wavefront (.obj) === OBJ is a very simple format to export the mesh, with vertices, faces and UV coordinates. Originally invented by Alias/Wavefront, all major 3D packages have OBJ importers, so this format allows you to export to the greatest range of applications. However, the character is not rigged but rather a static prop. Wavefront OBJ is a good choice when you need a simple mesh for an external renderer. It comes with an mtl file defining the material. === Filmbox (.fbx) === The default dialect currently used by the MakeHuman™ FBX exporter is FBX 2013 ASCII. Other FBX dialects exist, and if you need one of those dialects, you can use the [http://www.autodesk.com/products/fbx/overview AutoDesk FBX converter]For example, the Blender importer requires binary FBX files that can be generated in this fashion. === Stereolitography (.stl) === (to be written) === Ogre3d === (to be written) == Rig formats (.bvh) == MakeHuman currently only supports one rig format: BVH. If BVH is selected, it is anticipated that built in animations will be saved to the export directory. As of the MakeHuman™ 1.0.2, there is no offical support for model animation from within MakeHuman™. Thus, selecting this export type is of limited value. If you are interested in using BVH files created by other programs with the MakeHuman model, you may wish to read the documentation on the!LINK!http://www.makehuman.org/sectionview/975 -- MHBlenderTools MakeWalk!/LINK! Addon. A good place to start is the!LINK!http://www.makehuman.org/doc/node/blendertools_makewalk_basic_workflow.html -- MakeWalk Basic Workflow!/LINK!chapter. == Maps ( ligtmaps and UV maps) == * Lightmap:IfLightmapis checked, a grayscale image of the unwrapped A8 model is saved in the export directory as a 2048 x 2048 .png image. * UV Map:IfUV mapis checked, a black and white UV unwrapped image of the model mesh on a black background is saved in the export directory as a 2048 x 2048 .png image. == The options box == TheOptionsbox contains several export options for each of the formats.The export options available for each format can be selected or deselected by ticking (displayed in orange) and un-ticking off the box in front of them. You can either use the default options for a format or select and deselect options according to your goals and needs. Once an option is changed, it will remain in the changed state until you restart MakeHuman or change it again. They are unaffected by the reset button on the Toolbar. A common option that is present for all formats isFeet on ground: the origin of the MakeHuman™ mesh is located in the hip area, but if this option is enabled, exported origin is moved to between the feet instead. Another common option present in almost all formats is the Scale unit: decimeter, meter, inch, centimeter. The internal MakeHuman™ unit is decimeters (the base mesh is 16.8 dm tall), but this is a rather unique choice not shared by other applications. Setting the unit is not essential if the file is exported to a 3D suit like Maya, 3DSMax or Blender, because the character can be rescaled after import. However, Collada files can also be read by other types of applications, where choosing the right scale may be important. In particular, select meters for export to SecondLife. 18fcfc546279d0ee8e10206f711f7af380871546 Documentation:Features of new Blender plugin 3000 625 1835 1829 2020-07-26T09:08:39Z Punkduck 38 Replaced content with "deleted, was not smart enough to find the move button XD ---- where is the delete button ;)" wikitext text/x-wiki deleted, was not smart enough to find the move button XD ---- where is the delete button ;) ee8f4601fad7f734d2ba71dba50fc0f105bd4775 1829 1825 2020-07-25T17:14:19Z Punkduck 38 wikitext text/x-wiki Caution: this file is under construction :) = Makeclothes Version 2 = [[File:makeclothestitle.jpg]] MakeClothes2 is used to create clothes for MakeHuman characters. It could be installed as a single plugin, but at least MakeSkin should be used, if the creation of material is also part of your work. Furthermore it is able to work with the human base mesh provided by MPFB. The term "clothes" is not really correct, the program creates any kind of mesh which can be used for a character generated by MakeHuman. This also includes hair and different tongue or a new proxy. To use MakeClothes in Blender knowledge of Blender itself is needed. == Notation == To understand the process, a short summary of terms used in MakeHuman: * '''base mesh''': The base mesh is the standard body mesh used in MakeHuman. It has an exact number of vertices and each vertex has a number, starting with number 0 to 13379. * '''helper mesh''': The helper mesh is used to create all parts not directly attached to the body. This includes body parts like teeth, tongue and eyes and (male) genital, but also is used for generation of clothes (tights and skirt) and hair. The helper mesh is also deformed invisible in MakeHuman, when you change the character. The helper mesh comes with the base mesh. * '''proxy''': in a way all meshes projected on the body are proxies. Also the clothes are proxies, but in this case proxies should only be alternative meshes for the skin of the body * '''smoothing''': MakeHuman may use smoothing on a base mesh. This results in a mesh with 4 times as many vertices. <u>This mesh cannot be used for MakeClothes.</u> * '''clothes''': clothes will be all meshes MakeClothes is able to create. Hair and body proxies included. * '''posing''': the standard "unposed" base mesh is presented in an A-Pose. Other poses are T-Pose or a pose which is user generated. Typically these poses are created with the standard skeleton. Shapekeys can be used as a special pose too. * '''weighting''': when a character is posed the skin but also the clothes should follow the bones. So weights are added to each vertex. These weights determine how much a bone will be followed. MakeClothes uses a similar construction, since the clothes follow vertices on the helper or base mesh. [[File:Mc2_meshes_to_use.png]] Only base mesh and helper can be used to create clothes. == Limits == Makeclothes has certain limits according to the internal structure of MakeHuman * The mesh for the clothes can either be done with quads or with triangles. No mixture allowed. Advantage for quads is a smoother design with a later usage of subdivision surface algorithm (smoothing). Triangles are normally used for e.g. sculpting or when you work with 3rd party meshes. * only one material for one piece of cloth is allowed in MakeHuman * each vertex of a piece of cloth uses 3 vertices on body or helper to find its position according to the human created in MakeHuman * each vertex of a piece of cloth needs to be in one (and only one) vertex group. A group of the same name must be created on the human * it is possible to create more than one piece of cloth with one human * only one human is allowed when clothes are created. So only one object is "marked as human". However, if you need more than one base mesh, all others can be marked as clothes [[File:Mc2_makeclothes2.png|right]] == How to load a human == MakeHuman uses a mesh called hm08. Makeclothes is prepared to deal with other meshes as well for future versions. When the mesh is changed it must be changed in MakeHuman as well. So this documentation will only consider the hm08 base mesh. To create clothes you can create them directly on the body or on the helper mesh. For underwear the nude body is best choice, but for a coat the helper mesh will be used. A good method for e.g. a skirt or coat is to design the piece of cloth on the nude body and then use the helper mesh for weighting in the end. There are currently a few possibilities to load a human: * '''Load a predefined human''' Blend-files which are placed in the "humans" sub-directory of the makeclothes plugin can be used directly. When MakeClothes starts, these blend-files are scanned once and names of the objects starting with "mh_" are presented in a menu. The selected mesh is appended by pressing the "Import predefined human" button. [[File:Mc2_loadpredef.png]] In case of a helper mesh, the parts of the mesh are assigned to different vertex-groups to allow an easy selection and use different colors. After the mesh is loaded these buttons disappear, because one human is already loaded. The loaded mesh is automatically marked as a human. To load another human either delete the human or mark your human as clothes. {| style="color:green; background-color:#ffffcc;" |- |The files of the pre-defined humans are not yet included in the repository, this will happen soon, different meshes will be provided, also t-posed ones. If you want to work with that already: |- |create folder humans in Blender directory scripts/addons/makeclothes |- |unzip this file [http://www.makehumancommunity.org/forum/download/file.php?id=8095 Zip-File with male and female meshes] |- |move both blend files into this folder. |- |} * '''Load the human via MPFB''' Makehuman Plugin for Blender also can provide a base mesh. Be aware that the best base is an unmodified male or female mesh, because the clothes will fit most of the characters. Do not use proxies. If you import an human this is already the base mesh. If you need the helpers, change settings according to the illustration and import the mesh. Instead of "don't modify" you can also use "Mask". [[File:Mc2_loadhumanmfb.png]] * '''Load normal base.obj file''' This is the way using the predefined base.obj file which can be downloaded from github. MakeClothes reads the wavefront file. Vertex groups are created according to the .obj file. Disadvantage: this mesh is neither male nor female. An exported wavefront mesh made by MakeHuman can be used as well (no proxy, do not use smoothing and delete the extra eyes). It is possible to export it including the helpers. Unfortunately it has no vertex groups assigned. This must be done in Blender later. * '''Load an mhx2 file''' The body (no proxy, do not use smoothing and delete the extra eyes) used by mhx2 export can also be used as a base mesh. In this case no helpers are available. * '''Delete helpers''' If a mesh is loaded and the helpers are not needed, the helpers can be deleted. In this case a vertex-group "body" is expected, all vertices belonging to other groups are deleted. If body is not available, nothing will be done. == Tell MakeClothes the type of the object == [[File:Mc2_customprops.png|right]] To create clothes, one object must be marked as human and at least one as clothes. If you work with more than one human, all others must be marked as clothes temporarily. When you mark one object as human a previously marked human will automatically be marked as clothes. The custom properties of the object will held this information. == Create simple clothes (extract from helper) == In case a helper mesh is available it is possible to use the helpers as a first try. Especially for beginners (but also for the advanced for a good weighting) this could be helpful. <more text to be written> == Test the human mesh == The human loaded with one of the methods usually should not have problems. Nevertheless there is a small test available to check the human. This test is also automatically done when clothes are created. * the number of human objects must be one * there must be one vertex group on the human * no vertex belongs to an non-existing group [[File:Mc2_checkhuman.png]] == Test the clothes == Clothes need a bit more testing. * clothes should not have stray geometry. These are single vertices or edges. If this problem appears, change into edit mode. The vertices are pre-selected. Simply delete them or change geometry otherwise. * maximum number of vertices per face is 4. If you have more than this, these faces are selected and must be changed. * clothes can be quad or triangle meshes. A mixture is not allowed. The process assumes a mesh type and selects the faces to be changed. * the process tests if at least one vertex group is available * all vertices must belong to one vertex group. Vertices belonging to no group are selected and can be changed in edit mode. * all vertices must belong to only one vertex group. Vertices belonging to more than one group are selected and can be changed in edit mode. * no vertex belongs to an non-existing group * a test is done, how many edges belong to one vertex. Typically quad meshes with a low pole-count will have better geometric qualities. This is only a warning. The vertices with more than 8 neighbor vertices will be selected and can be changed in edit mode. [[File:Mc2_checkclothes.png]] == Common settings == The common settings will provide the '''license''' and the name of the '''author''', which will be used for all the clothes generated with this file. * '''Overwrite existing files''' is switched off. The name of the piece of cloth is used as a filename. If it is necessary to overwrite an existing object, the box must be marked. * '''Modifiers are allowed'''. Typically the mirror modifier may make sense. Be careful with e.g. subdivision surface, because it may produce a huge number of vertices. When the clothes should be designed with subdivision surface but created without, switch off "Allow Modifiers" == Produce clothes == The main features of creating clothes are: * '''name''': this is the name of the piece of cloth, also the filename * '''comment''': a short optional description * '''tags''': a list of predefined and own tags as a search criteria for MakeHuman [[File:Mc2_tagselector.png]] * '''zdepth''': determines the order of clothes. Lower values are used for clothes near the body, higher values for parts far away. This will be used to hide clothes near the body. A rule of thumb is to start with underware at 31, normal clothes (pants, t-shirt, shoes) use a default value of 50 and clothes like a coat usually use high values like 63. The following illustration shows the effect for a character equipped with ballet clothes. It also demonstrates what is happening when all values are equal. [[File:Mc2_zdepth.png]] * '''scaling''': select the part of the body which is important for the scaling. Most likely torso for a t-shirt, head for a hat etc. * '''delete-group''': it is a good method to delete vertices on the body if clothes are not transparent. This avoids bleeding through, that is, that vertices that should be "inside" suddenly appear outside of the clothes. All vertices not to be displayed should be selected on the body (not helper) and assigned to a vertex on the human. The name of this group must be inserted in the box. If more than one piece of cloth is created, they all can have a different delete-group on the same human. * '''use MakeSkin''': without MakeSkin a simple material is saved for the piece of cloth (white base color). Otherwise the material file of the plugin MakeSkin is used <more specific text will follow> * '''subdir''': the directory inside where the clothes will be created. == Materials == Most of the clothes will need a texture. Before the texture can be used the piece of cloth must be unwrapped. Best way is to create seams in Blender, where the real seams are. Unwrap the clothes in any case. The output of this process is a UV-Map, which will be used to determine the coordinates of each vertex on the texture. <will be changed later with information about makeskin and some advice how to do good textures etc.> == Creating of own clothes == To create clothes select the piece of cloth and press produce clothes. The tests "check clothes" and "check human" are processed and also an additional test about matching vertex groups is done. If everything is okay, the clothes can be loaded in MakeHuman. <will contain a lot of tips & tricks later> == Special poses, heels etc. == <works with a special target in MakeHuman and a pose changed with shape key in MakeClothes> == Importing existent clothes == It is possible to load an existent mhclo-file from the data folder of MakeHuman. Best is to load the human mesh before, if you want to change geometry. The clothes will also fit to a different body, but in this case they will not look as good as on the body, they were made for. But the advantage is, that e.g. clothes created for males can be used as a base for a female version. When clothes are imported, Most of fields are filled in by the process and the delete-group is marked on the human (in case a humans is available). The material is also loaded, when MakeSkin is available. The illustration shows the result of the import of the "lace_up_blouse". A material called "lace_up_blouse" was created in blender. All available information is imported and displayed. This includes the special parameters only used in MakeHuman (Backface culling, Transparent, LitSphere etc.). So also the material setup could be used for a new piece of cloth. [[File:Mc2_importclothes.png]] ~ e678016925519334982de8b141ed34445a3f4322 1825 1817 2020-07-24T19:46:31Z Punkduck 38 wikitext text/x-wiki Caution: this file is under construction :) = Makeclothes Version 2 = [[File:makeclothestitle.jpg]] MakeClothes2 is used to create clothes for MakeHuman characters. The term "clothes" is not really correct, the program creates any kind of mesh which can be used for a character generated by MakeHuman. This also includes hair and different tongue or a new proxy. To use MakeClothes in Blender knowledge of Blender itself is needed. == Notation == To understand the process, a short summary of terms used in MakeHuman: * '''base mesh''': The base mesh is the standard body mesh used in MakeHuman. It has an exact number of vertices and each vertex has a number, starting with number 0 to 13379. * '''helper mesh''': The helper mesh is used to create all parts not directly attached to the body. This includes body parts like teeth, tongue and eyes and (male) genital, but also is used for generation of clothes (tights and skirt) and hair. The helper mesh is also deformed invisible in MakeHuman, when you change the character. The helper mesh comes with the base mesh. * '''proxy''': in a way all meshes projected on the body are proxies. Also the clothes are proxies, but in this case proxies should only be alternative meshes for the skin of the body * '''smoothing''': MakeHuman may use smoothing on a base mesh. This results in a mesh with 4 times as many vertices. <u>This mesh cannot be used for MakeClothes.</u> * '''clothes''': clothes will be all meshes MakeClothes is able to create. Hair and body proxies included. * '''posing''': the standard "unposed" base mesh is presented in an A-Pose. Other poses are T-Pose or a pose which is user generated. Typically these poses are created with the standard skeleton. Shapekeys can be used as a special pose too. * '''weighting''': when a character is posed the skin but also the clothes should follow the bones. So weights are added to each vertex. These weights determine how much a bone will be followed. MakeClothes uses a similar construction, since the clothes follow vertices on the helper or base mesh. [[File:Mc2_meshes_to_use.png]] Only base mesh and helper can be used to create clothes. == Limits == Makeclothes has certain limits according to the internal structure of MakeHuman * The mesh for the clothes can either be done with quad or with triangles. No mixture allowed. Advantage for quads is a smoother design with a later usage of subdivision surface algorithm (smoothing). Triangles are normally used for e.g. sculpting or when you work with 3rd party meshes. * only one material for one piece of cloth is allowed in MakeHuman * each vertex of a piece of cloth uses 3 vertices on body or helper to find its position according to the human created in MakeHuman * each vertex of a piece of cloth needs to be in one (and only one) vertex group. A group of the same name must be created on the human * it is possible to create more than one piece of cloth with one human * only one human is allowed when clothes are created. So only one object is "marked as human". So if you need more than one base mesh, all others can be marked as clothes [[File:Mc2_makeclothes2.png|right]] == How to load a human == MakeHuman uses a mesh called hm08. Makeclothes is prepared to deal with other meshes as well for future versions. When the mesh is changed it must be changed in MakeHuman as well. So this documentation will only consider the hm08 base mesh. To create clothes you can create them directly on the body or on the helper mesh. For underwear the nude body is best choice, but for a coat the helper mesh will be used. A good method for e.g. a skirt or coat is to design the piece of cloth on the nude body and then use the helper mesh for weighting in the end. There are currently a few possibilities to load a human: * '''Load a predefined human''' Blend-files which are placed in the "humans" sub-directory of the makeclothes plugin can be used directly. When MakeClothes starts, these blend-files are scanned once and names of the objects starting with "mh_" are presented in a menu. The selected mesh is appended by pressing the "Import predefined human" button. [[File:Mc2_loadpredef.png]] In case of a helper mesh, the parts of the mesh are assigned to different vertex-groups to allow an easy selection and use different colors. After the mesh is loaded these buttons disappear, because one human is already loaded. The loaded mesh is automatically marked as a human. To load another human either delete the human or mark your human as clothes. (These files are not yet included in the repository, this will happen soon, different meshes will be provided, also t-posed ones). * '''Load the human via MPFB''' Makehuman Plugin for Blender also can provide a base mesh. Be aware that the best base is an unmodified male or female mesh, because the clothes will fit most of the characters. Do not use proxies. A you import a human this is already the base mesh. If you need the helpers, change settings according to the illustration and import the mesh. Instead of "don't modify" you can also use "Mask". [[File:Mc2_loadhumanmfb.png]] * '''Load normal base.obj file''' This is the way using the predefined base.obj file which can be downloaded from github. MakeClothes reads the wavefront file. Vertex groups are created according to the .obj file. Disadvantage: this mesh is neither male nor female. An exported wavefront mesh made by MakeHuman can be used as well (no proxy, do not use smoothing and delete the extra eyes). It is possible to export it including the helpers. Unfortunately it has no vertex groups assigned. This must be done in Blender later. * '''Load an mhx2 file''' The body (no proxy, do not use smoothing and delete the extra eyes) used by mhx2 export can also be used as a base mesh. In this case no helpers are available. * '''Delete helpers''' If a mesh is loaded and the helpers are not needed, the helpers can be deleted. In this case a vertex-group "body" is expected, all vertices belonging to other groups are deleted. If body is not available, nothing will be done. == Tell MakeClothes the type of the object == [[File:Mc2_customprops.png|right]] To create clothes, one object must be marked as human and at least one as clothes. If you work with more than one human, all others must be marked as clothes temporarily. When you mark one object as human a previously marked human will automatically be marked as clothes. The custom properties of the object will held this information. == Create simple clothes (extract from helper) == In case a helper mesh is available it is possible to use the helpers as a first try. Especially for beginners (but also for the advanced for a good weighting) this could be helpful. <more text to be written> == Test the human mesh == The human loaded with one of the methods usually should not have problems. Nevertheless there is a small test available to check the human. This test is also automatically done when clothes are created. * the number of human objects must be one * there must be one vertex group on the human * no vertex belongs to an non-existing group [[File:Mc2_checkhuman.png]] == Test the clothes == Clothes need a bit more testing. * clothes should not have stray geometry. These are single vertices or edges. If this problem appears, change into edit mode. The vertices are pre-selected. Simply delete them or change geometry otherwise. * maximum number of vertices per face is 4. If you have more than this, these faces are selected and must be changed. * clothes can be quad or triangle meshes. A mixture is not allowed. The process assumes a mesh type and selects the faces to be changed. * the process tests if at least one vertex group is available * all vertices must belong to one vertex group. Vertices belonging to no group are selected and can be changed in edit mode. * all vertices must belong to only one vertex group. Vertices belonging to more than one group are selected and can be changed in edit mode. * no vertex belongs to an non-existing group * a test is done, how many edges belong to one vertex. Typically quad meshes with a low pole-count will have better geometric qualities. This is only a warning. The vertices with more than 8 neighbor vertices will be selected and can be changed in edit mode. [[File:Mc2_checkclothes.png]] == Common settings == The common settings will provide the '''license''' and the name of the '''author''', which will be used for all the clothes generated with this file. * '''Overwrite existing files''' is switched off. The name of the piece of cloth is used as a filename. If it is necessary to overwrite an existing object, the box must be marked. * '''Modifiers are allowed'''. Typically the mirror modifier may make sense. Be careful with e.g. subdivision surface, because it may produce a huge number of vertices. When the clothes should be designed with subdivision surface but created without, switch off "Allow Modifiers" == Produce clothes == The main features of creating clothes are: * '''name''': this is the name of the piece of cloth, also the filename * '''comment''': a short optional description * '''tags''': a list of predefined and own tags as a search criteria for MakeHuman [[File:Mc2_tagselector.png]] * '''zdepth''': determines the order of clothes. Lower values are used for clothes near the body, higher values for parts far away. This will be used to hide clothes near the body. A rule of thumb is to start with underware at 31, normal clothes (pants, t-shirt, shoes) use a default value of 50 and clothes like a coat usually use high values like 63. The following illustration shows the effect for a character equipped with ballet clothes. It also demonstrates what is happening when all values are equal. [[File:Mc2_zdepth.png]] * '''scaling''': select the part of the body which is important for the scaling. Most likely torso for a t-shirt, head for a hat etc. * '''delete-group''': it is a good method to delete vertices on the body if clothes are not transparent. This avoids bleeding through, that is, that vertices that should be "inside" suddenly appear outside of the clothes. All vertices not to be displayed should be selected on the body (not helper) and assigned to a vertex on the human. The name of this group must be inserted in the box. If more than one piece of cloth is created, they all can have a different delete-group on the same human. * '''use MakeSkin''': without MakeSkin a simple material is saved for the piece of cloth (white base color). Otherwise the material file of the plugin MakeSkin is used <more specific text will follow> * '''subdir''': the directory inside where the clothes will be created. == Materials == Most of the clothes will need a texture. Before the texture can be used the piece of cloth must be unwrapped. Best way is to create seams in Blender, where the real seams are. Unwrap the clothes in any case. The output of this process is a UV-Map, which will be used to determine the coordinates of each vertex on the texture. <will be changed later with information about makeskin and some advice how to do good textures etc.> == Creating of own clothes == To create clothes select the piece of cloth and press produce clothes. The tests "check clothes" and "check human" are processed and also an additional test about matching vertex groups is done. If everything is okay, the clothes can be loaded in MakeHuman. <will contain a lot of tips & tricks later> == Special poses, heels etc. == <works with a special target in MakeHuman and a pose changed with shape key in MakeClothes> == Importing existent clothes == It is possible to load an existent mhclo-file from the data folder of MakeHuman. Best is to load the human mesh before. When clothes are imported, Most of fields are filled in by the process and the delete-group is marked on the human (in case it is loaded). ~ 400b9d2120553f15b6cc25f1c5f9d969188ae91c 1817 1811 2020-07-06T13:11:34Z Punkduck 38 /* Produce clothes */ wikitext text/x-wiki Caution: this file is under construction :) = Makeclothes Version 2 = [[File:makeclothestitle.jpg]] MakeClothes2 is used to create clothes for MakeHuman characters. The term "clothes" is not really correct, the program creates any kind of mesh which can be used for a character generated by MakeHuman. This also includes hair and different tongue or a new proxy. To use MakeClothes in Blender knowledge of Blender itself is needed. == Notation == To understand the process, a short summary of terms used in MakeHuman: * '''base mesh''': The base mesh is the standard body mesh used in MakeHuman. It has an exact number of vertices and each vertex has a number, starting with number 0 to 13379. * '''helper mesh''': The helper mesh is used to create all parts not directly attached to the body. This includes body parts like teeth, tongue and eyes and (male) genital, but also is used for generation of clothes (tights and skirt) and hair. The helper mesh is also deformed invisible in MakeHuman, when you change the character. The helper mesh comes with the base mesh. * '''proxy''': in a way all meshes projected on the body are proxies. Also the clothes are proxies, but in this case proxies should only be alternative meshes for the skin of the body * '''smoothing''': MakeHuman may use smoothing on a base mesh. This results in a mesh with 4 times as many vertices. <u>This mesh cannot be used for MakeClothes.</u> * '''clothes''': clothes will be all meshes MakeClothes is able to create. Hair and body proxies included. * '''posing''': the standard "unposed" base mesh is presented in an A-Pose. Other poses are T-Pose or a pose which is user generated. Typically these poses are created with the standard skeleton. Shapekeys can be used as a special pose too. * '''weighting''': when a character is posed the skin but also the clothes should follow the bones. So weights are added to each vertex. These weights determine how much a bone will be followed. MakeClothes uses a similar construction, since the clothes follow vertices on the helper or base mesh. [[File:Mc2_meshes_to_use.png]] Only base mesh and helper can be used to create clothes. == Limits == Makeclothes has certain limits according to the internal structure of MakeHuman * The mesh for the clothes can either be done with quad or with triangles. No mixture allowed. Advantage for quads is a smoother design with a later usage of subdivision surface algorithm (smoothing). Triangles are normally used for e.g. sculpting or when you work with 3rd party meshes. * only one material for one piece of cloth is allowed in MakeHuman * each vertex of a piece of cloth uses 3 vertices on body or helper to find its position according to the human created in MakeHuman * each vertex of a piece of cloth needs to be in one (and only one) vertex group. A group of the same name must be created on the human * it is possible to create more than one piece of cloth with one human * only one human is allowed when clothes are created. So only one object is "marked as human". So if you need more than one base mesh, all others can be marked as clothes [[File:Mc2_makeclothes2.png|right]] == How to load a human == MakeHuman uses a mesh called hm08. Makeclothes is prepared to deal with other meshes as well for future versions. When the mesh is changed it must be changed in MakeHuman as well. So this documentation will only consider the hm08 base mesh. To create clothes you can create them directly on the body or on the helper mesh. For underwear the nude body is best choice, but for a coat the helper mesh will be used. A good method for e.g. a skirt or coat is to design the piece of cloth on the nude body and then use the helper mesh for weighting in the end. There are currently a few possibilities to load a human: {|style="background-color:#ffffcc;" |not yet in master * '''Load a predefined human''' Blend-files which are in the directory <name> can be used directly. When MakeClothes starts these blend-files are scanned once and names are presented in a menu. The selected mesh is appended by pressing the "Import predefined human" button. [[File:Mc2_loadpredef.png]] In case of a helper mesh, the parts of the mesh are assigned to different vertex-groups to allow an easy selection and use different colors. After the mesh is loaded these buttons disappear, because one human is already loaded. The loaded mesh is automatically marked as a human. To load another human either delete the human or mark your human as clothes. |} * '''Load the human via MPFB''' <to be written> * '''Load normal base.obj file''' This is the way using the predefined base.obj file which can be downloaded from github. MakeClothes reads the wavefront file. Vertex groups are created according to the .obj file. Disadvantage: this mesh is neither male nor female. An exported wavefront mesh made by MakeHuman can be used as well (no proxy, do not use smoothing and delete the extra eyes). It is possible to export it including the helpers. Unfortunately it has no vertex groups assigned. This must be done in Blender later. * '''Load an mhx2 file''' The body (no proxy, do not use smoothing and delete the extra eyes) used by mhx2 export can also be used as a base mesh. In this case no helpers are available. * '''Delete helpers''' If a mesh is loaded and the helpers are not needed, the helpers can be deleted. In this case a vertex-group "body" is expected, all vertices belonging to other groups are deleted. If body is not available, nothing will be done. == Tell MakeClothes the type of the object == [[File:Mc2_customprops.png|right]] To create clothes, one object must be marked as human and at least one as clothes. If you work with more than one human, all others must be marked as clothes temporarily. When you mark one object as human a previously marked human will automatically be marked as clothes. The custom properties of the object will held this information. == Create simple clothes (extract from helper) == In case a helper mesh is available it is possible to use the helpers as a first try. Especially for beginners (but also for the advanced for a good weighting) this could be helpful. <more text to be written> == Test the human mesh == The human loaded with one of the methods usually should not have problems. Nevertheless there is a small test available to check the human. This test is also automatically done when clothes are created. * the number of human objects must be one * there must be one vertex group on the human * no vertex belongs to an non-existing group [[File:Mc2_checkhuman.png]] == Test the clothes == Clothes need a bit more testing. * clothes should not have stray geometry. These are single vertices or edges. If this problem appears, change into edit mode. The vertices are pre-selected. Simply delete them or change geometry otherwise. * maximum number of vertices per face is 4. If you have more than this, these faces are selected and must be changed. * clothes can be quad or triangle meshes. A mixture is not allowed. The process assumes a mesh type and selects the faces to be changed. * the process tests if at least one vertex group is available * all vertices must belong to one vertex group. Vertices belonging to no group are selected and can be changed in edit mode. * all vertices must belong to only one vertex group. Vertices belonging to more than one group are selected and can be changed in edit mode. * no vertex belongs to an non-existing group * a test is done, how many edges belong to one vertex. Typically quad meshes with a low pole-count will have better geometric qualities. This is only a warning. The vertices with more than 8 neighbor vertices will be selected and can be changed in edit mode. [[File:Mc2_checkclothes.png]] == Common settings == The common settings will provide the '''license''' and the name of the '''author''', which will be used for all the clothes generated with this file. * '''Overwrite existing files''' is switched off. The name of the piece of cloth is used as a filename. If it is necessary to overwrite an existing object, the box must be marked. * '''Modifiers are allowed'''. Typically the mirror modifier may make sense. Be careful with e.g. subdivision surface, because it may produce a huge number of vertices. When the clothes should be designed with subdivision surface but created without, switch off "Allow Modifiers" == Produce clothes == The main features of creating clothes are: * '''name''': this is the name of the piece of cloth, also the filename * '''comment''': a short optional description * '''tags''': a list of predefined and own tags as a search criteria for MakeHuman [[File:Mc2_tagselector.png]] * '''zdepth''': determines the order of clothes. Lower values are used for clothes near the body, higher values for parts far away. This will be used to hide clothes near the body. A rule of thumb is to start with underware at 31, normal clothes (pants, t-shirt, shoes) use a default value of 50 and clothes like a coat usually use high values like 63. The following illustration shows the effect for a character equipped with ballet clothes. It also demonstrates what is happening when all values are equal. [[File:Mc2_zdepth.png]] * '''scaling''': select the part of the body which is important for the scaling. Most likely torso for a t-shirt, head for a hat etc. * '''delete-group''': it is a good method to delete vertices on the body if clothes are not transparent. This avoids bleeding through, that is, that vertices that should be "inside" suddenly appear outside of the clothes. All vertices not to be displayed should be selected on the body (not helper) and assigned to a vertex on the human. The name of this group must be inserted in the box. If more than one piece of cloth is created, they all can have a different delete-group on the same human. * '''use MakeSkin''': without MakeSkin a simple material is saved for the piece of cloth (white base color). Otherwise the material file of the plugin MakeSkin is used <more specific text will follow> * '''subdir''': the directory inside where the clothes will be created. == Materials == Most of the clothes will need a texture. Before the texture can be used the piece of cloth must be unwrapped. Best way is to create seams in Blender, where the real seams are. Unwrap the clothes in any case. The output of this process is a UV-Map, which will be used to determine the coordinates of each vertex on the texture. <will be changed later with information about makeskin and some advice how to do good textures etc.> == Creating of own clothes == To create clothes select the piece of cloth and press produce clothes. The tests "check clothes" and "check human" are processed and also an additional test about matching vertex groups is done. If everything is okay, the clothes can be loaded in MakeHuman. <will contain a lot of tips & tricks later> == Special poses, heels etc. == <works with a special target in MakeHuman and a pose changed with shape key in MakeClothes> == Importing existent clothes == It is possible to load an existent mhclo-file from the data folder of MakeHuman. Best is to load the human mesh before. When clothes are imported, Most of fields are filled in by the process and the delete-group is marked on the human (in case it is loaded). ~ 79d1fe9798c5458bbb062b4804a921ffd453ea4d 1811 1802 2020-06-21T14:56:48Z Punkduck 38 wikitext text/x-wiki Caution: this file is under construction :) = Makeclothes Version 2 = [[File:makeclothestitle.jpg]] MakeClothes2 is used to create clothes for MakeHuman characters. The term "clothes" is not really correct, the program creates any kind of mesh which can be used for a character generated by MakeHuman. This also includes hair and different tongue or a new proxy. To use MakeClothes in Blender knowledge of Blender itself is needed. == Notation == To understand the process, a short summary of terms used in MakeHuman: * '''base mesh''': The base mesh is the standard body mesh used in MakeHuman. It has an exact number of vertices and each vertex has a number, starting with number 0 to 13379. * '''helper mesh''': The helper mesh is used to create all parts not directly attached to the body. This includes body parts like teeth, tongue and eyes and (male) genital, but also is used for generation of clothes (tights and skirt) and hair. The helper mesh is also deformed invisible in MakeHuman, when you change the character. The helper mesh comes with the base mesh. * '''proxy''': in a way all meshes projected on the body are proxies. Also the clothes are proxies, but in this case proxies should only be alternative meshes for the skin of the body * '''smoothing''': MakeHuman may use smoothing on a base mesh. This results in a mesh with 4 times as many vertices. <u>This mesh cannot be used for MakeClothes.</u> * '''clothes''': clothes will be all meshes MakeClothes is able to create. Hair and body proxies included. * '''posing''': the standard "unposed" base mesh is presented in an A-Pose. Other poses are T-Pose or a pose which is user generated. Typically these poses are created with the standard skeleton. Shapekeys can be used as a special pose too. * '''weighting''': when a character is posed the skin but also the clothes should follow the bones. So weights are added to each vertex. These weights determine how much a bone will be followed. MakeClothes uses a similar construction, since the clothes follow vertices on the helper or base mesh. [[File:Mc2_meshes_to_use.png]] Only base mesh and helper can be used to create clothes. == Limits == Makeclothes has certain limits according to the internal structure of MakeHuman * The mesh for the clothes can either be done with quad or with triangles. No mixture allowed. Advantage for quads is a smoother design with a later usage of subdivision surface algorithm (smoothing). Triangles are normally used for e.g. sculpting or when you work with 3rd party meshes. * only one material for one piece of cloth is allowed in MakeHuman * each vertex of a piece of cloth uses 3 vertices on body or helper to find its position according to the human created in MakeHuman * each vertex of a piece of cloth needs to be in one (and only one) vertex group. A group of the same name must be created on the human * it is possible to create more than one piece of cloth with one human * only one human is allowed when clothes are created. So only one object is "marked as human". So if you need more than one base mesh, all others can be marked as clothes [[File:Mc2_makeclothes2.png|right]] == How to load a human == MakeHuman uses a mesh called hm08. Makeclothes is prepared to deal with other meshes as well for future versions. When the mesh is changed it must be changed in MakeHuman as well. So this documentation will only consider the hm08 base mesh. To create clothes you can create them directly on the body or on the helper mesh. For underwear the nude body is best choice, but for a coat the helper mesh will be used. A good method for e.g. a skirt or coat is to design the piece of cloth on the nude body and then use the helper mesh for weighting in the end. There are currently a few possibilities to load a human: {|style="background-color:#ffffcc;" |not yet in master * '''Load a predefined human''' Blend-files which are in the directory <name> can be used directly. When MakeClothes starts these blend-files are scanned once and names are presented in a menu. The selected mesh is appended by pressing the "Import predefined human" button. [[File:Mc2_loadpredef.png]] In case of a helper mesh, the parts of the mesh are assigned to different vertex-groups to allow an easy selection and use different colors. After the mesh is loaded these buttons disappear, because one human is already loaded. The loaded mesh is automatically marked as a human. To load another human either delete the human or mark your human as clothes. |} * '''Load the human via MPFB''' <to be written> * '''Load normal base.obj file''' This is the way using the predefined base.obj file which can be downloaded from github. MakeClothes reads the wavefront file. Vertex groups are created according to the .obj file. Disadvantage: this mesh is neither male nor female. An exported wavefront mesh made by MakeHuman can be used as well (no proxy, do not use smoothing and delete the extra eyes). It is possible to export it including the helpers. Unfortunately it has no vertex groups assigned. This must be done in Blender later. * '''Load an mhx2 file''' The body (no proxy, do not use smoothing and delete the extra eyes) used by mhx2 export can also be used as a base mesh. In this case no helpers are available. * '''Delete helpers''' If a mesh is loaded and the helpers are not needed, the helpers can be deleted. In this case a vertex-group "body" is expected, all vertices belonging to other groups are deleted. If body is not available, nothing will be done. == Tell MakeClothes the type of the object == [[File:Mc2_customprops.png|right]] To create clothes, one object must be marked as human and at least one as clothes. If you work with more than one human, all others must be marked as clothes temporarily. When you mark one object as human a previously marked human will automatically be marked as clothes. The custom properties of the object will held this information. == Create simple clothes (extract from helper) == In case a helper mesh is available it is possible to use the helpers as a first try. Especially for beginners (but also for the advanced for a good weighting) this could be helpful. <more text to be written> == Test the human mesh == The human loaded with one of the methods usually should not have problems. Nevertheless there is a small test available to check the human. This test is also automatically done when clothes are created. * the number of human objects must be one * there must be one vertex group on the human * no vertex belongs to an non-existing group [[File:Mc2_checkhuman.png]] == Test the clothes == Clothes need a bit more testing. * clothes should not have stray geometry. These are single vertices or edges. If this problem appears, change into edit mode. The vertices are pre-selected. Simply delete them or change geometry otherwise. * maximum number of vertices per face is 4. If you have more than this, these faces are selected and must be changed. * clothes can be quad or triangle meshes. A mixture is not allowed. The process assumes a mesh type and selects the faces to be changed. * the process tests if at least one vertex group is available * all vertices must belong to one vertex group. Vertices belonging to no group are selected and can be changed in edit mode. * all vertices must belong to only one vertex group. Vertices belonging to more than one group are selected and can be changed in edit mode. * no vertex belongs to an non-existing group * a test is done, how many edges belong to one vertex. Typically quad meshes with a low pole-count will have better geometric qualities. This is only a warning. The vertices with more than 8 neighbor vertices will be selected and can be changed in edit mode. [[File:Mc2_checkclothes.png]] == Common settings == The common settings will provide the '''license''' and the name of the '''author''', which will be used for all the clothes generated with this file. * '''Overwrite existing files''' is switched off. The name of the piece of cloth is used as a filename. If it is necessary to overwrite an existing object, the box must be marked. * '''Modifiers are allowed'''. Typically the mirror modifier may make sense. Be careful with e.g. subdivision surface, because it may produce a huge number of vertices. When the clothes should be designed with subdivision surface but created without, switch off "Allow Modifiers" == Produce clothes == The main features of creating clothes are: * '''name''': this is the name of the piece of cloth, also the filename * '''comment''': a short optional description * '''tags''': a list of predefined and own tags as a search criteria for MakeHuman [[File:Mc2_tagselector.png]] * '''zdepth''': determines the order of clothes. Lower values are used for clothes near the body, higher values for parts far away. This will be used to hide clothes near the body. <values have to be explained later> * '''scaling''': select the part of the body which are important for the scaling. Most likely torso for a t-shirt, head for a hat etc. * '''delete-grou'''p: it is a good method to delete vertices on the body if clothes are not transparent. This avoids bleeding through, that is, that vertices that should be "inside" suddenly appear outside of the clothes. All vertices not to be displayed should be selected on the body (not helper) and assigned to a vertex on the human. The name of this group must be inserted in the box. If more than one piece of cloth is created, they all can have a different delete-group on the same human. * '''use MakeSkin''': without MakeSkin a simple material is saved for the piece of cloth (white base color). Otherwise the material file of the plugin MakeSkin is used <more specific text will follow> * '''subdir''': the directory inside where the clothes will be created. == Materials == Most of the clothes will need a texture. Before the texture can be used the piece of cloth must be unwrapped. Best way is to create seams in Blender, where the real seams are. Unwrap the clothes in any case. The output of this process is a UV-Map, which will be used to determine the coordinates of each vertex on the texture. <will be changed later with information about makeskin and some advice how to do good textures etc.> == Creating of own clothes == To create clothes select the piece of cloth and press produce clothes. The tests "check clothes" and "check human" are processed and also an additional test about matching vertex groups is done. If everything is okay, the clothes can be loaded in MakeHuman. <will contain a lot of tips & tricks later> == Special poses, heels etc. == <works with a special target in MakeHuman and a pose changed with shape key in MakeClothes> == Importing existent clothes == It is possible to load an existent mhclo-file from the data folder of MakeHuman. Best is to load the human mesh before. When clothes are imported, Most of fields are filled in by the process and the delete-group is marked on the human (in case it is loaded). ~ 9f67d3454e48ab767b7a2ac27be89fc29c498687 1802 2020-06-21T14:17:58Z Punkduck 38 functions of the new Blender plugin MakeClothes V2 wikitext text/x-wiki Caution: this file is under construction :) = Makeclothes Version 2 = <makeclothestitle.jpg> MakeClothes2 is used to create clothes for MakeHuman characters. The term "clothes" is not really correct, the program creates any kind of mesh which can be used for a character generated by MakeHuman. This also includes hair and different tongue or a new proxy. To use MakeClothes in Blender knowledge of Blender itself is needed. == Notation == To understand the process, a short summary of terms used in MakeHuman: * '''base mesh''': The base mesh is the standard body mesh used in MakeHuman. It has an exact number of vertices and each vertex has a number, starting with number 0 to 13379. * '''helper mesh''': The helper mesh is used to create all parts not directly attached to the body. This includes body parts like teeth, tongue and eyes and (male) genital, but also is used for generation of clothes (tights and skirt) and hair. The helper mesh is also deformed invisible in MakeHuman, when you change the character. The helper mesh comes with the base mesh. * '''proxy''': in a way all meshes projected on the body are proxies. Also the clothes are proxies, but in this case proxies should only be alternative meshes for the skin of the body * '''smoothing''': MakeHuman may use smoothing on a base mesh. This results in a mesh with 4 times as many vertices. <u>This mesh cannot be used for MakeClothes.</u> * '''clothes''': clothes will be all meshes MakeClothes is able to create. Hair and body proxies included. * '''posing''': the standard "unposed" base mesh is presented in an A-Pose. Other poses are T-Pose or a pose which is user generated. Typically these poses are created with the standard skeleton. Shapekeys can be used as a special pose too. * '''weighting''': when a character is posed the skin but also the clothes should follow the bones. So weights are added to each vertex. These weights determine how much a bone will be followed. MakeClothes uses a similar construction, since the clothes follow vertices on the helper or base mesh. <meshes_to_use.png> Only base mesh and helper can be used to create clothes. == Limits == Makeclothes has certain limits according to the internal structure of MakeHuman * The mesh for the clothes can either be done with quad or with triangles. No mixture allowed. Advantage for quads is a smoother design with a later usage of subdivision surface algorithm (smoothing). Triangles are normally used for e.g. sculpting or when you work with 3rd party meshes. * only one material for one piece of cloth is allowed in MakeHuman * each vertex of a piece of cloth uses 3 vertices on body or helper to find its position according to the human created in MakeHuman * each vertex of a piece of cloth needs to be in one (and only one) vertex group. A group of the same name must be created on the human * it is possible to create more than one piece of cloth with one human * only one human is allowed when clothes are created. So only one object is "marked as human". So if you need more than one base mesh, all others can be marked as clothes <makeclothes2.png> == How to load a human == MakeHuman uses a mesh called hm08. Makeclothes is prepared to deal with other meshes as well for future versions. When the mesh is changed it must be changed in MakeHuman as well. So this documentation will only consider the hm08 base mesh. To create clothes you can create them directly on the body or on the helper mesh. For underwear the nude body is best choice, but for a coat the helper mesh will be used. A good method for e.g. a skirt or coat is to design the piece of cloth on the nude body and then use the helper mesh for weighting. There are currently a few possibilities to load a human: {|style="background-color:#ffffcc;" |not yet in master <loadpredef.png> * Load a predefined human. Blend-files which are in the directory <name> can be used directly. When MakeClothes starts these blend-files are scanned once and names are presented in a menu. The selected mesh is appended by pressing the "Import predefined human" button. In case of a helper mesh, the parts of the mesh are assigned to different vertex-groups to allow an easy selection and use different colors. After the mesh is loaded these buttons disappear, because one human is already loaded. The loaded mesh is automatically marked as a human. To load another human either delete the human or mark your human as clothes. |} * Load the human via MPFB <to be written> * Load normal base.obj file This is the way using the predefined base.obj file which can be downloaded from github. MakeClothes reads the wavefront file. Vertex groups are created according to the .obj file. Disadvantage: this mesh is neither male nor female. An exported wavefront mesh made by MakeHuman can be used as well (no proxy, do not use smoothing and delete the extra eyes). It is possible to export it including the helpers. Unfortunately it has no vertex groups assigned. This must be done in Blender later. * Load an mhx2 file The body (no proxy, do not use smoothing and delete the extra eyes) used by mhx2 export can also be used as a base mesh. In this case no helpers are available. * Delete helpers: If a mesh is loaded and the helpers are not needed, the helpers can be deleted. In this case a vertex-group "body" is expected, all vertices belonging to other groups are deleted. If body is not available, nothing will be done. == Tell MakeClothes the type of the object == To create clothes, one object must be marked as human and at least one as clothes. If you work with more than one human, all other must be marked as clothes temporarily. When you mark one object as human a previous marked human will automatically marked as clothes. <customprops.png> == Create simple clothes (extract from helper) == In case a helper mesh is available it is possible to use the helpers as a first try. Especially for beginners (but also for the advanced for a good weighting) this could be helpful. <more text to be written> == Test the human mesh == The human loaded with one of the methods usually should not have problems. Nevertheless there is a small test available to check the human. This test is also automatically done when clothes are created. * the number of human objects must be one * there must be one vertex group on the human * no vertex belongs to an non-existing group <checkhuman.png> == Test the clothes == Clothes need a bit more testing. * clothes should not have stray geometry. These are single vertices or edges. If this problem appears, change into edit mode. The vertices are pre-selected. Simply delete them or change geometry otherwise. * maximum number of vertices per face is 4. If you have more than this, these faces are selected and must be changed. * clothes can be quad or triangle meshes. A mixture is not allowed. The process assumes a mesh type and selects the faces to be changed. * the process tests if at least one vertex group is available * all vertices must belong to one vertex group. Vertices belonging to no group are selected and can be changed in edit mode. * all vertices must belong to only one vertex group. Vertices belonging to more than one group are selected and can be changed in edit mode. * no vertex belongs to an non-existing group * a test is done, how many edges belong to one vertex. Typically quad meshes with a low pole-count will have better geometric qualities. This is only a warning. The vertices with more than 8 neighbor vertices will be selected and can be changed in edit mode. <checkclothes.png> == Common settings == The common settings will provide the license and the name of the author, which will be used for all the clothes generated with this file. * Overwrite existing files is switched off. The name of the piece of cloth is used as a filename. If it is necessary to overwrite an existing object, the box must be marked. * Modifiers are allowed. Typically the mirror modifier may make sense. Be careful with e.g. subdivision surface, because it may produce a huge number of vertices. When the clothes should be designed with subdivision surface but created without, switch off "Allow Modifiers" == Produce clothes == The main features of creating clothes are: * name: this is the name of the piece of cloth, also the filename * comment: a short optional description * tags: a list of predefined and own tags as a search criteria for MakeHuman <tagselector.png> * zdepth: determines the order of clothes. Lower values are used for clothes near the body, higher values for parts far away. This will be used to hide clothes near the body. <values have to be explained later> * scaling: select the part of the body which are important for the scaling. Most likely torso for a t-shirt, head for a hat etc. * delete-group: it is a good method to delete vertices on the body if clothes are not transparent. This avoids bleeding through, that is, that vertices that should be "inside" suddenly appear outside of the clothes. All vertices not to be displayed should be selected on the body (not helper) and assigned to a vertex on the human. The name of this group must be inserted in the box. If more than one piece of cloth is created, they all can have a different delete-group on the same human. * use MakeSkin: without MakeSkin a simple material is saved for the piece of cloth (white base color). Otherwise the material file of the plugin MakeSkin is used <better explanation will follow> * subdir: the directory inside where the clothes will be created. == Materials == Most of the clothes will need a texture. Before the texture can be used the piece of cloth must be unwrapped. Best way is to create seams in Blender, where the real seams are. Unwrap the clothes in any case. The output of this process is a UV-Map, which will be used to determine the coordinates of each vertex on the texture. <will be changed later with info about makeskin and some advice how to do good textures> == Creating of own clothes == To create clothes select the piece of cloth and press produce clothes. The test from "check clothes" and "check human" are repeated and also an additional test about matching vertex groups is done. If everything is okay, the clothes can be loaded in MakeHuman. <will contain a lot of tips & tricks later> == Special poses, heels etc. == == Importing existent clothes == It is possible to load an existent mhclo file from the data folder of MakeHuman. Best is to load the human mesh before. When clothes are imported, Most of fields are filled in by the process and the delete-group is marked on the human (in case it is loaded). ~ d043c4d4f2768292c65ce8ae1fa83202c858f81b Documentation:File formats and extensions 3000 208 1375 1374 2017-03-17T20:40:18Z Grinsegold 39 /* Material files */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] The targets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found in algos3d.py module (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. The compile_models.py module (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, the compile_targets.py module (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau in MakeHuman.spec file, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file called cleanpz.bat (for Windows) and a corresponding shell script file called cleanpz.sh (for Linux) whose function is to delete NPZ files between repository (Bitbucket or GIT) builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of repository versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. The mhclo-file structure: A MH clothing consists of two files, the mhclo file which determines the vertex locations and a standard obj file which defines the rest of the mesh: faces, uv coordinates, uv faces. MH automatically compiles these files the first time it uses them, so these are the binary mhpxy and npz files. The header in a mhclo file looks like this: # Exported from MakeClothes (TM) # author Unknown # license AGPL3 (see also http://www.makehuman.org/doc/node/external_tools_license.html) # homepage http://www.makehuman.org/ uuid 59985471-ab08-479f-a32d-2d88411714ef basemesh hm08 name Helmet version 110 obj_file helmet.obj x_scale 5399 11998 1.3980 z_scale 962 5320 1.8441 y_scale 791 881 2.2028 z_depth 50 max_pole 4 verts 0 # starts a comment. The uuid is a unique identifier for this file. The basemesh is the version of the MH mesh. Today always hm08, but earlier versions of MC supported hm07 and alpha6. Name of clothing. Version of MC The obj file contains all information about the mesh in obj format: original vertex locations, faces, UVs. x_scale v1 v2 dist: Used for scaling of offsets (see below) in the x direction. dist is the distance between verts v1 and v2 in the character the clothes were made for. y_scale, z_scale analogous z_depth determines the render order in MH, I think. It was originally used in a different way by the MHX importer. max_pole is the maximal pole number of any vertex in this mesh. Affects how large arrays must be allocated in MH. verts 0. It was some kind of vertex number offset, but the author doesn't quite remember how it worked. Then comes a bunch of lines which determine the vertex locations. 16563 16602 16605 -2.77529 -3.02614 6.80143 -0.56369 0.10852 -0.06174 The three first are human vertex numbers which define a triangle. The three in the middle are barycentric coordinates, which define a point in the triangle. The three last is an offset from this point. However, the offset is scaled with factors determined by the x,y,z_scale lines in the header. If the n:th line reads v1 v2 v3 w1 w2 w3 d1 d2 d3 then the location of clothing vertex n is w1*r1 + w2*r2 + w3 *r3 + (s1*d1, s2*d2, s3*d3) where r1,r2,r3 are locations of human vertices v1,v2,v3, and s1,s2,s3 are scale factors ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. Here's a list of naming convention for the content of the mhmat-file (floats are between 0.0 and 1.0): "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "shaderConfig" "bump": bool "shaderConfig" "normal": bool "shaderConfig" "displacement": bool "shaderConfig" "spec": bool "shaderConfig" "vertexColors": bool "shaderConfig" "transparency": bool "shaderConfig" "ambientOcclusion": bool ambientColor, diffuseColor specularColor, emissiveColor are the standard colors as used in the rendering equation or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. opacity determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) translucency is something that came from Blender but is unused shininess or specular hardness is a number between 0 and 1 determining the shininess constant of the phong shading model. Texture maps Various standard texture maps can be defined on the material, like diffuseTexture, bumpmapTexture, normalmapTexture, displacementmapTexture, specularmapTexture, transparencymapTexture, aomapTexture. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). Render states When wireframe is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set shadeless to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set transparent to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow alpha blending. alphaToCoverage Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set backfaceCull to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set depthless to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. castShadows determines whether the object casts shadows on other objects. receiveShadows determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. autoBlendSkin If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. shaderParam Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 shaderDefine shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). uvMap Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ SSS properties These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are sssEnabled, sssRScale, sssGScale and sssBScale. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == You can store more than one material for an asset. To do so, create a folder named "material" inside of the folder which also contains the mhclo- and mhmat file of that asset. Put your alternative textures and mhmat-files in there. == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO 99505cd79a2a48fe8cbda8a21339b869a65ab2b6 1374 1373 2017-03-17T20:34:32Z Grinsegold 39 /* .mhmat file format Internals */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] The targets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found in algos3d.py module (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. The compile_models.py module (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, the compile_targets.py module (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau in MakeHuman.spec file, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file called cleanpz.bat (for Windows) and a corresponding shell script file called cleanpz.sh (for Linux) whose function is to delete NPZ files between repository (Bitbucket or GIT) builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of repository versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. The mhclo-file structure: A MH clothing consists of two files, the mhclo file which determines the vertex locations and a standard obj file which defines the rest of the mesh: faces, uv coordinates, uv faces. MH automatically compiles these files the first time it uses them, so these are the binary mhpxy and npz files. The header in a mhclo file looks like this: # Exported from MakeClothes (TM) # author Unknown # license AGPL3 (see also http://www.makehuman.org/doc/node/external_tools_license.html) # homepage http://www.makehuman.org/ uuid 59985471-ab08-479f-a32d-2d88411714ef basemesh hm08 name Helmet version 110 obj_file helmet.obj x_scale 5399 11998 1.3980 z_scale 962 5320 1.8441 y_scale 791 881 2.2028 z_depth 50 max_pole 4 verts 0 # starts a comment. The uuid is a unique identifier for this file. The basemesh is the version of the MH mesh. Today always hm08, but earlier versions of MC supported hm07 and alpha6. Name of clothing. Version of MC The obj file contains all information about the mesh in obj format: original vertex locations, faces, UVs. x_scale v1 v2 dist: Used for scaling of offsets (see below) in the x direction. dist is the distance between verts v1 and v2 in the character the clothes were made for. y_scale, z_scale analogous z_depth determines the render order in MH, I think. It was originally used in a different way by the MHX importer. max_pole is the maximal pole number of any vertex in this mesh. Affects how large arrays must be allocated in MH. verts 0. It was some kind of vertex number offset, but the author doesn't quite remember how it worked. Then comes a bunch of lines which determine the vertex locations. 16563 16602 16605 -2.77529 -3.02614 6.80143 -0.56369 0.10852 -0.06174 The three first are human vertex numbers which define a triangle. The three in the middle are barycentric coordinates, which define a point in the triangle. The three last is an offset from this point. However, the offset is scaled with factors determined by the x,y,z_scale lines in the header. If the n:th line reads v1 v2 v3 w1 w2 w3 d1 d2 d3 then the location of clothing vertex n is w1*r1 + w2*r2 + w3 *r3 + (s1*d1, s2*d2, s3*d3) where r1,r2,r3 are locations of human vertices v1,v2,v3, and s1,s2,s3 are scale factors ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. Here's a list of naming convention for the content of the mhmat-file (floats are between 0.0 and 1.0): "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "shaderConfig" "bump": bool "shaderConfig" "normal": bool "shaderConfig" "displacement": bool "shaderConfig" "spec": bool "shaderConfig" "vertexColors": bool "shaderConfig" "transparency": bool "shaderConfig" "ambientOcclusion": bool ambientColor, diffuseColor specularColor, emissiveColor are the standard colors as used in the rendering equation or in standard OpenGL. Their corresponding intensities are simple scalars with a value between 0 and 1 and are multiplied with the colors to dim them. Default these intensities are set to 1. Colors are described as three floating point numbers, representing R G B, or red-green-blue values. 1 is the maximum, 0 the minimum. For example 1.0 0 0 means fully red, 1 1 1 means full white, 0 0 0 is full black. 0.5 0.5 0.5 will give you a grey middle color. opacity determines the opaqueness of the object (alpha channel), with 1 being fully opaque, and 0 being fully transparent (invisible) translucency is something that came from Blender but is unused shininess or specular hardness is a number between 0 and 1 determining the shininess constant of the phong shading model. Texture maps Various standard texture maps can be defined on the material, like diffuseTexture, bumpmapTexture, normalmapTexture, displacementmapTexture, specularmapTexture, transparencymapTexture, aomapTexture. Each of these also has an associated intensity value, which is a scalar from 0 to 1 multiplied with the pixel value of that texture (unless a specific shader implements it differently). These textures only have an effect if their corresponding shaderConfig feature has been defined (see the table in Shaders section). Render states When wireframe is set to True, the model is drawn in wireframe mode. In this mode, most material properties have no effect, but you can enable the vertexColors shaderConfig to be able to change the color of the mesh using vertex colors (this requires access to the mesh programatically, obj meshes do not support vertex colors). This feature is used in some parts of MakeHuman, for example viewing bone weights in the skeleton debug plugin. Set shadeless to True to disable shading, eg. the object is not affected by lights. Configured shader will have no effect Set transparent to True to enable transparency rendering (usually needed when opacity is < 1) In itself this does not change the visual appearance of the model, but this setting should be enabled if your texture contains (semi-) transparent parts. This setting instructs the renderer to disable depth buffer writes (glDepthMask(false)) and enables alpha testing and blending so that transparent surfaces can overlap and to allow alpha blending. alphaToCoverage Applies when transparent is set to True (otherwise does nothing). It requires that your GPU supports alpha to coverage (A2C) rendering. It enables the A2C feature which provides face order-independent alpha rendering. This works very well for complex transparent meshes, like hair. At the cost of a slightly dithered look, it solves all the problems with face sorting that are usually involved in rendering semi transparency. (This feature disables anti-aliasing for this object because the multisample buffer is used for alpha blending instead) Set backfaceCull to False to disable backface culling (render the back side of polygons) By default, and in most cases, this should be set to True, but can be useful in some cases (for example, we disable back-face culling for the eyebrow materials). Set depthless to True for depthless rendering (object is not occluded and does not occlude other objects). This disables OpenGL depth writes and tests. In practice, this makes object faces that should be occluded shine through others. castShadows determines whether the object casts shadows on other objects. receiveShadows determines whether the object receives shadows from other objects. For some features, like eyes, you probably want to disable shadow receiving. Since MakeHuman does not (yet) implement shadow casting, the shadow settings have no effect in MakeHuman, but they do export to other engines. Play around with these settings in the Material Editor plugin to see their effect, that's the best advise I can give you. The best way to find out which settings work for an asset, is simply to try them out. autoBlendSkin If True MakeHuman will set the diffuse color based on the ethnix mix set for the character. Any diffuseColor set in the material file will be overridden by this. Also the shaderParam litsphereTexture will be automatically set to a dynamically blended litsphere texture, which is a mix of three litsphere materials (afro, asian, caucasian) depending on the ethnic mix of the character. This latter is specifically intended to be used with the litsphere shader, and it is what you see as default material when you start MakeHuman This overrides whatever shaderParam litsphereTexture was set in the material file. This setting is intended only for skin materials. shaderParam Define a custom shader parameter (uniform), which might be required for some non-standard shaders. For example, the litsphere shader takes an extra type of texture map as input, a so-called litsphere texture. This generic system of mapping shader uniforms allows you to create specialised shaders that take new and different kind of inputs, and allow configuring the shader from the material file. shaderParam can be a list of floating point numbers, in which case it will be interpreted as a vector, or it can be a file path, in which case it is assumed to be an image path. Internally in MakeHuman, shaderParams can also be assigned a texture object, which allows for dynamically passing a texture that is in memory, but perhaps not stored on disk. Another example of a custom shaderParam is the X-ray shader that defines an edgefalloff and intensity uniform parameter. These could be changed from the material file with shaderParam edgefalloff 0.8 shaderParam intensity 0.77 shaderDefine shaderDefines allow enabling or disabling custom shading techniques in shaders. These allow to define new shading techniques, apart from the pre-defined ones such as normal mapping, specularity mapping, ... It's a generic system that allows new shaders to be added and configured from the material file, or from the material editor (which nicely auto-detects these features in the shader and shows a set of checkboxes for them). uvMap Load custom UV coordinates on the mesh to use this material. This makes the material completely dependent on the mesh it is used with. Takes a path to a .mhuv file, which is actually just an .obj file, where the vertex positions can be deleted (they can remain in there, but they are ignored). Requirement for it to work is that the vertex order is the same as that of the mesh obj. An example uv map for the basemesh can be found in data/uvs/a7.mhuv, which is a set of UV coordinates compatible with the old Alpha 7 mesh, allowing you to load A7 textures on the new basemesh used in MakeHuman v1+ SSS properties These are the so-called sub-surface scattering shading properties, currently only used by the built-in offline renderer. They were decided on while trying to figure out the most generic way to define SSS shading properties, so that they could easily be translated into SSS properties for a different renderer (as no single renderer that I know of has a standard for these). It's uncertain whether the format we have landed on currently is the best, or whether this will remain permanently or is still likely to change. This setting should currently be considered experimental. The properties are sssEnabled, sssRScale, sssGScale and sssBScale. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == Here's a list of naming convention for the content of the mhmat-file (floats are between 0.0 and 1.0): "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "shaderConfig" "bump": bool "shaderConfig" "normal": bool "shaderConfig" "displacement": bool "shaderConfig" "spec": bool "shaderConfig" "vertexColors": bool "shaderConfig" "transparency": bool "shaderConfig" "ambientOcclusion": bool == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO f3fa112eda67c617674b85ded01b7e7c7ecb9409 1373 1372 2017-03-17T20:30:46Z Grinsegold 39 /* .mhmat file format Internals */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] The targets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found in algos3d.py module (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. The compile_models.py module (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, the compile_targets.py module (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau in MakeHuman.spec file, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file called cleanpz.bat (for Windows) and a corresponding shell script file called cleanpz.sh (for Linux) whose function is to delete NPZ files between repository (Bitbucket or GIT) builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of repository versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. The mhclo-file structure: A MH clothing consists of two files, the mhclo file which determines the vertex locations and a standard obj file which defines the rest of the mesh: faces, uv coordinates, uv faces. MH automatically compiles these files the first time it uses them, so these are the binary mhpxy and npz files. The header in a mhclo file looks like this: # Exported from MakeClothes (TM) # author Unknown # license AGPL3 (see also http://www.makehuman.org/doc/node/external_tools_license.html) # homepage http://www.makehuman.org/ uuid 59985471-ab08-479f-a32d-2d88411714ef basemesh hm08 name Helmet version 110 obj_file helmet.obj x_scale 5399 11998 1.3980 z_scale 962 5320 1.8441 y_scale 791 881 2.2028 z_depth 50 max_pole 4 verts 0 # starts a comment. The uuid is a unique identifier for this file. The basemesh is the version of the MH mesh. Today always hm08, but earlier versions of MC supported hm07 and alpha6. Name of clothing. Version of MC The obj file contains all information about the mesh in obj format: original vertex locations, faces, UVs. x_scale v1 v2 dist: Used for scaling of offsets (see below) in the x direction. dist is the distance between verts v1 and v2 in the character the clothes were made for. y_scale, z_scale analogous z_depth determines the render order in MH, I think. It was originally used in a different way by the MHX importer. max_pole is the maximal pole number of any vertex in this mesh. Affects how large arrays must be allocated in MH. verts 0. It was some kind of vertex number offset, but the author doesn't quite remember how it worked. Then comes a bunch of lines which determine the vertex locations. 16563 16602 16605 -2.77529 -3.02614 6.80143 -0.56369 0.10852 -0.06174 The three first are human vertex numbers which define a triangle. The three in the middle are barycentric coordinates, which define a point in the triangle. The three last is an offset from this point. However, the offset is scaled with factors determined by the x,y,z_scale lines in the header. If the n:th line reads v1 v2 v3 w1 w2 w3 d1 d2 d3 then the location of clothing vertex n is w1*r1 + w2*r2 + w3 *r3 + (s1*d1, s2*d2, s3*d3) where r1,r2,r3 are locations of human vertices v1,v2,v3, and s1,s2,s3 are scale factors ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. Here's a list of naming convention for the content of the mhmat-file (floats are between 0.0 and 1.0): "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "shaderConfig" "bump": bool "shaderConfig" "normal": bool "shaderConfig" "displacement": bool "shaderConfig" "spec": bool "shaderConfig" "vertexColors": bool "shaderConfig" "transparency": bool "shaderConfig" "ambientOcclusion": bool ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == Here's a list of naming convention for the content of the mhmat-file (floats are between 0.0 and 1.0): "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "shaderConfig" "bump": bool "shaderConfig" "normal": bool "shaderConfig" "displacement": bool "shaderConfig" "spec": bool "shaderConfig" "vertexColors": bool "shaderConfig" "transparency": bool "shaderConfig" "ambientOcclusion": bool == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO 5a507661d8b7de5bab808a0e333a4fcffd26db3d 1372 1371 2017-03-17T20:25:43Z Grinsegold 39 /* .mhclo files */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] The targets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found in algos3d.py module (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. The compile_models.py module (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, the compile_targets.py module (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau in MakeHuman.spec file, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file called cleanpz.bat (for Windows) and a corresponding shell script file called cleanpz.sh (for Linux) whose function is to delete NPZ files between repository (Bitbucket or GIT) builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of repository versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. The mhclo-file structure: A MH clothing consists of two files, the mhclo file which determines the vertex locations and a standard obj file which defines the rest of the mesh: faces, uv coordinates, uv faces. MH automatically compiles these files the first time it uses them, so these are the binary mhpxy and npz files. The header in a mhclo file looks like this: # Exported from MakeClothes (TM) # author Unknown # license AGPL3 (see also http://www.makehuman.org/doc/node/external_tools_license.html) # homepage http://www.makehuman.org/ uuid 59985471-ab08-479f-a32d-2d88411714ef basemesh hm08 name Helmet version 110 obj_file helmet.obj x_scale 5399 11998 1.3980 z_scale 962 5320 1.8441 y_scale 791 881 2.2028 z_depth 50 max_pole 4 verts 0 # starts a comment. The uuid is a unique identifier for this file. The basemesh is the version of the MH mesh. Today always hm08, but earlier versions of MC supported hm07 and alpha6. Name of clothing. Version of MC The obj file contains all information about the mesh in obj format: original vertex locations, faces, UVs. x_scale v1 v2 dist: Used for scaling of offsets (see below) in the x direction. dist is the distance between verts v1 and v2 in the character the clothes were made for. y_scale, z_scale analogous z_depth determines the render order in MH, I think. It was originally used in a different way by the MHX importer. max_pole is the maximal pole number of any vertex in this mesh. Affects how large arrays must be allocated in MH. verts 0. It was some kind of vertex number offset, but the author doesn't quite remember how it worked. Then comes a bunch of lines which determine the vertex locations. 16563 16602 16605 -2.77529 -3.02614 6.80143 -0.56369 0.10852 -0.06174 The three first are human vertex numbers which define a triangle. The three in the middle are barycentric coordinates, which define a point in the triangle. The three last is an offset from this point. However, the offset is scaled with factors determined by the x,y,z_scale lines in the header. If the n:th line reads v1 v2 v3 w1 w2 w3 d1 d2 d3 then the location of clothing vertex n is w1*r1 + w2*r2 + w3 *r3 + (s1*d1, s2*d2, s3*d3) where r1,r2,r3 are locations of human vertices v1,v2,v3, and s1,s2,s3 are scale factors ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == Here's a list of naming convention for the content of the mhmat-file (floats are between 0.0 and 1.0): "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "shaderConfig" "bump": bool "shaderConfig" "normal": bool "shaderConfig" "displacement": bool "shaderConfig" "spec": bool "shaderConfig" "vertexColors": bool "shaderConfig" "transparency": bool "shaderConfig" "ambientOcclusion": bool == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO 8a5ae308d8e5fa67db51000d6ac4fb8918ea1f15 1371 1370 2017-03-17T20:24:51Z Grinsegold 39 /* .mhclo files */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] The targets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found in algos3d.py module (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. The compile_models.py module (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, the compile_targets.py module (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau in MakeHuman.spec file, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file called cleanpz.bat (for Windows) and a corresponding shell script file called cleanpz.sh (for Linux) whose function is to delete NPZ files between repository (Bitbucket or GIT) builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of repository versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. The mhclo-file structure: A MH clothing consists of two files, the mhclo file which determines the vertex locations and a standard obj file which defines the rest of the mesh: faces, uv coordinates, uv faces. MH automatically compiles these files the first time it uses them, so these are the binary mhpxy and npz files. The header in a mhclo file looks like this: # Exported from MakeClothes (TM) # author Unknown # license AGPL3 (see also http://www.makehuman.org/doc/node/external_tools_license.html) # homepage http://www.makehuman.org/ uuid 59985471-ab08-479f-a32d-2d88411714ef basemesh hm08 name Helmet version 110 obj_file helmet.obj x_scale 5399 11998 1.3980 z_scale 962 5320 1.8441 y_scale 791 881 2.2028 z_depth 50 max_pole 4 verts 0 # starts a comment. The uuid is a unique identifier for this file. The basemesh is the version of the MH mesh. Today always hm08, but earlier versions of MC supported hm07 and alpha6. Name of clothing. Version of MC The obj file contains all information about the mesh in obj format: original vertex locations, faces, UVs. x_scale v1 v2 dist: Used for scaling of offsets (see below) in the x direction. dist is the distance between verts v1 and v2 in the character the clothes were made for. y_scale, z_scale analogous z_depth determines the render order in MH, I think. It was originally used in a different way by the MHX importer. max_pole is the maximal pole number of any vertex in this mesh. Affects how large arrays must be allocated in MH. verts 0. It was some kind of vertex number offset, but the author doesn't quite remember how it worked. Then comes a bunch of lines which determine the vertex locations. 16563 16602 16605 -2.77529 -3.02614 6.80143 -0.56369 0.10852 -0.06174 The three first are human vertex numbers which define a triangle. The three in the middle are barycentric coordinates, which define a point in the triangle. The three last is an offset from this point. However, the offset is scaled with factors determined by the x,y,z_scale lines in the header. If the n:th line reads v1 v2 v3 w1 w2 w3 d1 d2 d3 then the location of clothing vertex n is w1*r1 + w2*r2 + w3 *r3 + (s1*d1, s2*d2, s3*d3) where r1,r2,r3 are locations of human vertices v1,v2,v3, and s1,s2,s3 are scale factors See also here: http://www.makehumancommunity.org/wiki/Technical_notes_on_MakeHuman#The_Material_System ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == Here's a list of naming convention for the content of the mhmat-file (floats are between 0.0 and 1.0): "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "shaderConfig" "bump": bool "shaderConfig" "normal": bool "shaderConfig" "displacement": bool "shaderConfig" "spec": bool "shaderConfig" "vertexColors": bool "shaderConfig" "transparency": bool "shaderConfig" "ambientOcclusion": bool == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO 88b3579ad37ff4701a4da80ce7f4a2cff546bdcb 1370 1369 2017-03-17T20:09:41Z Grinsegold 39 /* .mhclo files */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] The targets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found in algos3d.py module (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. The compile_models.py module (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, the compile_targets.py module (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau in MakeHuman.spec file, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file called cleanpz.bat (for Windows) and a corresponding shell script file called cleanpz.sh (for Linux) whose function is to delete NPZ files between repository (Bitbucket or GIT) builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of repository versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. The mhclo-file structure: A MH clothing consists of two files, the mhclo file which determines the vertex locations and a standard obj file which defines the rest of the mesh: faces, uv coordinates, uv faces. MH automatically compiles these files the first time it uses them, so these are the binary mhpxy and npz files. The header in a mhclo file looks like this: # Exported from MakeClothes (TM) # author Unknown # license AGPL3 (see also http://www.makehuman.org/doc/node/external_tools_license.html) # homepage http://www.makehuman.org/ uuid 59985471-ab08-479f-a32d-2d88411714ef basemesh hm08 name Helmet version 110 obj_file helmet.obj x_scale 5399 11998 1.3980 z_scale 962 5320 1.8441 y_scale 791 881 2.2028 z_depth 50 max_pole 4 verts 0 # starts a comment. The uuid is a unique identifier for this file. The basemesh is the version of the MH mesh. Today always hm08, but earlier versions of MC supported hm07 and alpha6. Name of clothing. Version of MC The obj file contains all information about the mesh in obj format: original vertex locations, faces, UVs. x_scale v1 v2 dist: Used for scaling of offsets (see below) in the x direction. dist is the distance between verts v1 and v2 in the character the clothes were made for. y_scale, z_scale analogous z_depth determines the render order in MH, I think. It was originally used in a different way by the MHX importer. max_pole is the maximal pole number of any vertex in this mesh. Affects how large arrays must be allocated in MH. verts 0. It was some kind of vertex number offset, but the author doesn't quite remember how it worked. Then comes a bunch of lines which determine the vertex locations. 16563 16602 16605 -2.77529 -3.02614 6.80143 -0.56369 0.10852 -0.06174 The three first are human vertex numbers which define a triangle. The three in the middle are barycentric coordinates, which define a point in the triangle. The three last is an offset from this point. However, the offset is scaled with factors determined by the x,y,z_scale lines in the header. If the n:th line reads v1 v2 v3 w1 w2 w3 d1 d2 d3 then the location of clothing vertex n is w1*r1 + w2*r2 + w3 *r3 + (s1*d1, s2*d2, s3*d3) where r1,r2,r3 are locations of human vertices v1,v2,v3, and s1,s2,s3 are scale factors ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == Here's a list of naming convention for the content of the mhmat-file (floats are between 0.0 and 1.0): "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "shaderConfig" "bump": bool "shaderConfig" "normal": bool "shaderConfig" "displacement": bool "shaderConfig" "spec": bool "shaderConfig" "vertexColors": bool "shaderConfig" "transparency": bool "shaderConfig" "ambientOcclusion": bool == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO 8a5ae308d8e5fa67db51000d6ac4fb8918ea1f15 1369 1368 2017-03-17T20:08:23Z Grinsegold 39 /* .mhclo files */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] The targets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found in algos3d.py module (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. The compile_models.py module (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, the compile_targets.py module (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau in MakeHuman.spec file, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file called cleanpz.bat (for Windows) and a corresponding shell script file called cleanpz.sh (for Linux) whose function is to delete NPZ files between repository (Bitbucket or GIT) builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of repository versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. The mhclo-file structure: A MH clothing consists of two files, the mhclo file which determines the vertex locations and a standard obj file which defines the rest of the mesh: faces, uv coordinates, uv faces. MH automatically compiles these files the first time it uses them, so these are the binary mhpxy and npz files. The header in a mhclo file looks like this: # Exported from MakeClothes (TM) # author Unknown # license AGPL3 (see also http://www.makehuman.org/doc/node/external_tools_license.html) # homepage http://www.makehuman.org/ uuid 59985471-ab08-479f-a32d-2d88411714ef basemesh hm08 name Helmet version 110 obj_file helmet.obj x_scale 5399 11998 1.3980 z_scale 962 5320 1.8441 y_scale 791 881 2.2028 z_depth 50 max_pole 4 verts 0 # starts a comment. The uuid is a unique identifier for this file. The basemesh is the version of the MH mesh. Today always hm08, but earlier versions of MC supported hm07 and alpha6. Name of clothing. Version of MC The obj file contains all information about the mesh in obj format: original vertex locations, faces, UVs. x_scale v1 v2 dist: Used for scaling of offsets (see below) in the x direction. dist is the distance between verts v1 and v2 in the character the clothes were made for. y_scale, z_scale analogous z_depth determines the render order in MH, I think. It was originally used in a different way by the MHX importer. max_pole is the maximal pole number of any vertex in this mesh. Affects how large arrays must be allocated in MH. verts 0. It was some kind of vertex number offset, but the author doesn't quite remember how it worked. Then comes a bunch of lines which determine the vertex locations. 16563 16602 16605 -2.77529 -3.02614 6.80143 -0.56369 0.10852 -0.06174 The three first a human vertex numbers which define a triangle. The three in the middle are barycentric coordinates, which defines a point in the triangle. The three last is an offset from this point. However, the offset is scaled with factors determined by the x,y,z_scale lines in the header. If the n:th line reads v1 v2 v3 w1 w2 w3 d1 d2 d3 then the location of clothing vertex n is w1*r1 + w2*r2 + w3 *r3 + (s1*d1, s2*d2, s3*d3) where r1,r2,r3 are locations of human vertices v1,v2,v3, and s1,s2,s3 are scale factors ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == Here's a list of naming convention for the content of the mhmat-file (floats are between 0.0 and 1.0): "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "shaderConfig" "bump": bool "shaderConfig" "normal": bool "shaderConfig" "displacement": bool "shaderConfig" "spec": bool "shaderConfig" "vertexColors": bool "shaderConfig" "transparency": bool "shaderConfig" "ambientOcclusion": bool == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO ec10636bbfec3845e0bf2aacdfe5107147b15a33 1368 1367 2017-03-17T20:04:43Z Grinsegold 39 /* .mhclo files */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] The targets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found in algos3d.py module (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. The compile_models.py module (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, the compile_targets.py module (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau in MakeHuman.spec file, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file called cleanpz.bat (for Windows) and a corresponding shell script file called cleanpz.sh (for Linux) whose function is to delete NPZ files between repository (Bitbucket or GIT) builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of repository versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. The mhclo-file structure: A MH clothing consists of two files, the mhclo file which determines the vertex locations and a standard obj file which defines the rest of the mesh: faces, uv coordinates, uv faces. MH automatically compiles these files the first time it uses them, so these are the binary mhpxy and npz files. The header in a mhclo file looks like this: # Exported from MakeClothes (TM) # author Unknown # license AGPL3 (see also http://www.makehuman.org/doc/node/external_tools_license.html) # homepage http://www.makehuman.org/ uuid 59985471-ab08-479f-a32d-2d88411714ef basemesh hm08 name Helmet version 110 obj_file helmet.obj x_scale 5399 11998 1.3980 z_scale 962 5320 1.8441 y_scale 791 881 2.2028 z_depth 50 max_pole 4 verts 0 # starts a comment. The uuid is a unique identifier for this file. The basemesh is the version of the MH mesh. Today always hm08, but earlier versions of MC supported hm07 and alpha6. Name of clothing. Version of MC The obj file contains all information about the mesh in obj format: original vertex locations, faces, UVs. x_scale v1 v2 dist: Used for scaling of offsets (see below) in the x direction. dist is the distance between verts v1 and v2 in the character the clothes were made for. y_scale, z_scale analogous z_depth determines the render order in MH, I think. It was originally used in a different way by the MHX importer. max_pole is the maximal pole number of any vertex in this mesh. Affects how large arrays must be allocated in MH. verts 0. It was some kind of vertex number offset, but I don't quite remember how it worked. Then comes a bunch of lines which determine the vertex locations. Code: Select all 16563 16602 16605 -2.77529 -3.02614 6.80143 -0.56369 0.10852 -0.06174 The three first a human vertex numbers which define a triangle. The three in the middle are barycentric coordinates, which defines a point in the triangle. The three last is an offset from this point. However, the offset is scaled with factors determined by the x,y,z_scale lines in the header. If the n:th line reads Code: Select all v1 v2 v3 w1 w2 w3 d1 d2 d3 then the location of clothing vertex n is Code: Select all w1*r1 + w2*r2 + w3 *r3 + (s1*d1, s2*d2, s3*d3) where r1,r2,r3 are locations of human vertices v1,v2,v3, and s1,s2,s3 are scale factors ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == Here's a list of naming convention for the content of the mhmat-file (floats are between 0.0 and 1.0): "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "shaderConfig" "bump": bool "shaderConfig" "normal": bool "shaderConfig" "displacement": bool "shaderConfig" "spec": bool "shaderConfig" "vertexColors": bool "shaderConfig" "transparency": bool "shaderConfig" "ambientOcclusion": bool == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO 1e036fc9321fdab90700b1e74f6876b033061251 1367 1366 2017-03-17T20:01:37Z Grinsegold 39 /* .mhclo files */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] The targets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found in algos3d.py module (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. The compile_models.py module (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, the compile_targets.py module (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau in MakeHuman.spec file, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file called cleanpz.bat (for Windows) and a corresponding shell script file called cleanpz.sh (for Linux) whose function is to delete NPZ files between repository (Bitbucket or GIT) builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of repository versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. The mhclo-file structure: A MH clothing consists of two files, the mhclo file which determines the vertex locations and a standard obj file which defines the rest of the mesh: faces, uv coordinates, uv faces. MH automatically compiles these files the first time it uses them, so these are the binary mhpxy and npz files. The header in a mhclo file looks like this: # Exported from MakeClothes (TM) # author Unknown # license AGPL3 (see also http://www.makehuman.org/doc/node/external_tools_license.html) # homepage http://www.makehuman.org/ uuid 59985471-ab08-479f-a32d-2d88411714ef basemesh hm08 name Helmet version 110 obj_file helmet.obj x_scale 5399 11998 1.3980 z_scale 962 5320 1.8441 y_scale 791 881 2.2028 z_depth 50 max_pole 4 verts 0 # starts a comment. The uuid is a unique identifier for this file. The basemesh is the version of the MH mesh. Today always hm08, but earlier versions of MC supported hm07 and alpha6. Name of clothing. Version of MC The obj file contains all information about the mesh in obj format: original vertex locations, faces, UVs. x_scale v1 v2 dist: Used for scaling of offsets (see below) in the x direction. dist is the distance between verts v1 and v2 in the character the clothes were made for. y_scale, z_scale analogous z_depth determines the render order in MH, I think. It was originally used in a different way by the MHX importer. max_pole is the maximal pole number of any vertex in this mesh. Affects how large arrays must be allocated in MH. verts 0. It was some kind of vertex number offset, but I don't quite remember how it worked. Then comes a bunch of lines which determine the vertex locations. Code: Select all 16563 16602 16605 -2.77529 -3.02614 6.80143 -0.56369 0.10852 -0.06174 The three first a human vertex numbers which define a triangle. The three in the middle are barycentric coordinates, which defines a point in the triangle. The three last is an offset from this point. However, the offset is scaled with factors determined by the x,y,z_scale lines in the header. If the n:th line reads Code: Select all v1 v2 v3 w1 w2 w3 d1 d2 d3 then the location of clothing vertex n is Code: Select all w1*r1 + w2*r2 + w3 *r3 + (s1*d1, s2*d2, s3*d3) where r1,r2,r3 are locations of human vertices v1,v2,v3, and s1,s2,s3 are scale factors ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == Here's a list of naming convention for the content of the mhmat-file (floats are between 0.0 and 1.0): "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "shaderConfig" "bump": bool "shaderConfig" "normal": bool "shaderConfig" "displacement": bool "shaderConfig" "spec": bool "shaderConfig" "vertexColors": bool "shaderConfig" "transparency": bool "shaderConfig" "ambientOcclusion": bool == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO f414ae3c073f01ee5d6d280367b308949ecb8b89 1366 1365 2017-03-17T16:19:58Z Grinsegold 39 /* Material files */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] The targets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found in algos3d.py module (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. The compile_models.py module (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, the compile_targets.py module (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau in MakeHuman.spec file, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file called cleanpz.bat (for Windows) and a corresponding shell script file called cleanpz.sh (for Linux) whose function is to delete NPZ files between repository (Bitbucket or GIT) builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of repository versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == Here's a list of naming convention for the content of the mhmat-file (floats are between 0.0 and 1.0): "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "shaderConfig" "bump": bool "shaderConfig" "normal": bool "shaderConfig" "displacement": bool "shaderConfig" "spec": bool "shaderConfig" "vertexColors": bool "shaderConfig" "transparency": bool "shaderConfig" "ambientOcclusion": bool == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO 2375459310d69d714f93da2dac6ee90201644a33 1365 1364 2017-03-17T16:08:26Z Grinsegold 39 /* Material files */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] The targets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found in algos3d.py module (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. The compile_models.py module (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, the compile_targets.py module (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau in MakeHuman.spec file, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file called cleanpz.bat (for Windows) and a corresponding shell script file called cleanpz.sh (for Linux) whose function is to delete NPZ files between repository (Bitbucket or GIT) builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of repository versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == Here's a list of naming convention for the content of the mhmat-file: "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "shaderConfig" "bump": bool "shaderConfig" "normal": bool "shaderConfig" "displacement": bool "shaderConfig" "spec": bool "shaderConfig" "vertexColors": bool "shaderConfig" "transparency": bool "shaderConfig" "ambientOcclusion": bool Floats are between 0.0 and 1.0 == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO b6a625d25013a943b395316f535b79026bad3aeb 1364 1363 2017-03-17T16:07:13Z Grinsegold 39 /* Material files */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] The targets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found in algos3d.py module (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. The compile_models.py module (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, the compile_targets.py module (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau in MakeHuman.spec file, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file called cleanpz.bat (for Windows) and a corresponding shell script file called cleanpz.sh (for Linux) whose function is to delete NPZ files between repository (Bitbucket or GIT) builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of repository versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == Here's a list of naming convention for the content of the mhmat-file: "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "shaderConfig" "bump": bool "shaderConfig" "normal": bool "shaderConfig" "displacement": bool "shaderConfig" "spec": bool "shaderConfig" "vertexColors": bool "shaderConfig" "transparency": bool "shaderConfig" "ambientOcclusion": bool Floats are between 0.0 and 1.0 == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO 8de6155a3a54b24cc391f23a1326517aa20d9e91 1363 1362 2017-03-17T16:05:35Z Grinsegold 39 /* Material files */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] The targets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found in algos3d.py module (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. The compile_models.py module (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, the compile_targets.py module (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau in MakeHuman.spec file, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file called cleanpz.bat (for Windows) and a corresponding shell script file called cleanpz.sh (for Linux) whose function is to delete NPZ files between repository (Bitbucket or GIT) builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of repository versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == Here's a list of naming convention for the content of the mhmat-file: "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "shaderConfig" "bump": bool "shaderConfig" "normal": bool "shaderConfig" "displacement": bool "shaderConfig" "spec": bool "shaderConfig" "vertexColors": bool "shaderConfig" "transparency": bool "shaderConfig" "ambientOcclusion": bool Floats are between 0.0 and 1.0 == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO 01dd91ec2f8e86a0d40d62d2a419575f0586837a 1362 1361 2017-03-17T16:04:55Z Grinsegold 39 /* Material files */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] The targets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found in algos3d.py module (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. The compile_models.py module (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, the compile_targets.py module (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau in MakeHuman.spec file, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file called cleanpz.bat (for Windows) and a corresponding shell script file called cleanpz.sh (for Linux) whose function is to delete NPZ files between repository (Bitbucket or GIT) builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of repository versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == Here's a list of naming convention for the content of the mhmat-file: "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "shaderConfig" "bump": bool "shaderConfig" "normal": bool "shaderConfig" "displacement": bool "shaderConfig" "spec": bool "shaderConfig" "vertexColors": bool "shaderConfig" "transparency": bool "shaderConfig" "ambientOcclusion": bool Floats are between 0.0 and 1.0 == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO 3a57f58ae5eaec4f9a0ed8380fde9a6d84510140 1361 1360 2017-03-17T15:59:28Z Grinsegold 39 /* Material files */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] The targets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found in algos3d.py module (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. The compile_models.py module (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, the compile_targets.py module (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau in MakeHuman.spec file, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file called cleanpz.bat (for Windows) and a corresponding shell script file called cleanpz.sh (for Linux) whose function is to delete NPZ files between repository (Bitbucket or GIT) builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of repository versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == Here's a list of naming convention for the content of the mhmat-file: "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "bump": bool "normal": bool "displacement": bool "spec": bool "vertexColors": bool "transparency": bool "ambientOcclusion": bool Floats are between 0.0 and 1.0 == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO d9b195ab56f2cc440040c1edd890c7b4946654b1 1360 1290 2017-03-17T15:57:25Z Grinsegold 39 /* Material files */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] The targets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found in algos3d.py module (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. The compile_models.py module (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, the compile_targets.py module (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau in MakeHuman.spec file, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file called cleanpz.bat (for Windows) and a corresponding shell script file called cleanpz.sh (for Linux) whose function is to delete NPZ files between repository (Bitbucket or GIT) builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of repository versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == Here's a list of naming convention for the content of the mhmat-file: "name": string "tag": string "description": string "ambientColor": 3 x float "diffuseColor": 3 x float "specularColor": 3 x float "shininess": 1 x float "emissiveColor": 3 x float "opacity": 1 x float "translucency": 1 x float "shadeless": bool "wireframe": bool "transparent": bool "alphaToCoverage": bool "backfaceCull": bool "depthless": bool "castShadows": bool "receiveShadows": bool "autoBlendSkin": bool "diffuseTexture": filename "bumpmapTexture": filename "bumpmapIntensity": 1 x float "normalmapTexture": filename "normalmapIntensity": 1 x float "displacementmapTexture": filename "displacementmapIntensity": 1 x float "specularmapTexture": filename "specularmapIntensity": 1 x float "transparencymapTexture": filename "transparencymapIntensity": 1 x float "aomapTexture": filename "aomapIntensity": 1 x float "sssEnabled": bool "sssRScale": 1 x float "sssGScale": 1 x float "sssBScale": 1 x float "shader": filename "uvMap": filename "shaderParam": ['diffuse', 'ambient', 'specular', 'emissive', 'diffuseTexture', 'bumpmapTexture', 'bumpmapIntensity', 'normalmapTexture', 'normalmapIntensity', 'displacementmapTexture', 'displacementmapTexture', 'specularmapTexture', 'specularmapIntensity', 'transparencymapTexture', 'transparencymapIntensity', 'aomapTexture', 'aomapIntensity'] "shaderDefine": ['BUMPMAP', 'NORMALMAP', 'DISPLACEMENT', 'SPECULARMAP', 'TRANSPARENCYMAP'] "shaderConfig" "diffuse": bool "bump": bool "normal": bool "displacement": bool "spec": bool "vertexColors": bool "transparency": bool "ambientOcclusion": bool Floats are between 0.0 and 1.0 == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO 0ed657ed1230649bf839cf6121cf2de311993205 1290 1289 2017-01-24T15:20:40Z Robbaer 12 /* .npz files */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] The targets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found in algos3d.py module (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. The compile_models.py module (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, the compile_targets.py module (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau in MakeHuman.spec file, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file called cleanpz.bat (for Windows) and a corresponding shell script file called cleanpz.sh (for Linux) whose function is to delete NPZ files between repository (Bitbucket or GIT) builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of repository versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == TODO == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO 57a9171f93aed25da0cf8ccd14a79fa9e8c82861 1289 1288 2017-01-24T15:11:52Z Robbaer 12 /* .mhmat file format Internals */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] Thetargets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found inalgos3d.pymodule (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. Thecompile_models.pymodule (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, thecompile_targets.pymodule (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau inMakeHuman.specfile, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file calledcleanpz.bat(for Windows) and a corresponding shell script file calledcleanpz.sh(for Linux) whose function is to delete NPZ files between SVN builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of SVN versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit as if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == TODO == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO 2fad62556f9577ddbfaf87dc64fd2c55bbb858f0 1288 1287 2017-01-24T15:10:19Z Robbaer 12 /* .mhmat file format Internals */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] Thetargets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found inalgos3d.pymodule (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. Thecompile_models.pymodule (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, thecompile_targets.pymodule (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau inMakeHuman.specfile, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file calledcleanpz.bat(for Windows) and a corresponding shell script file calledcleanpz.sh(for Linux) whose function is to delete NPZ files between SVN builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of SVN versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit like if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == TODO == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO c44b3335f7d164604bae7af2b23d3f5f229d653f 1287 1286 2017-01-24T15:09:02Z Robbaer 12 /* .mhmat file format Internals */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] Thetargets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found inalgos3d.pymodule (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. Thecompile_models.pymodule (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, thecompile_targets.pymodule (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau inMakeHuman.specfile, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file calledcleanpz.bat(for Windows) and a corresponding shell script file calledcleanpz.sh(for Linux) whose function is to delete NPZ files between SVN builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of SVN versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like: colorProperty R G B, where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit like if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == TODO == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO 99c161c311e5c335f7b2d9436302dd7018ef03bc 1286 1285 2017-01-24T15:05:41Z Robbaer 12 /* .mhmat file format Internals */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] Thetargets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found inalgos3d.pymodule (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. Thecompile_models.pymodule (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, thecompile_targets.pymodule (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau inMakeHuman.specfile, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file calledcleanpz.bat(for Windows) and a corresponding shell script file calledcleanpz.sh(for Linux) whose function is to delete NPZ files between SVN builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of SVN versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. ==== .mhmat file format Internals==== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like:colorProperty R G B,where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit like if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == TODO == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO a24a1619f8dc41be4a93b56cfb59f3fb9292d9cf 1285 1284 2017-01-24T15:04:18Z Robbaer 12 /* Description of the .mhmat file format */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] Thetargets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found inalgos3d.pymodule (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. Thecompile_models.pymodule (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, thecompile_targets.pymodule (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau inMakeHuman.specfile, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file calledcleanpz.bat(for Windows) and a corresponding shell script file calledcleanpz.sh(for Linux) whose function is to delete NPZ files between SVN builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of SVN versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. === .mhmat file format Internals=== The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like:colorProperty R G B,where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit like if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == TODO == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO 377f6a58833b3318495871136dfce6f6bdd2ac8b 1284 1283 2017-01-24T15:02:25Z Robbaer 12 /* Description of the file format */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] Thetargets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found inalgos3d.pymodule (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. Thecompile_models.pymodule (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, thecompile_targets.pymodule (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau inMakeHuman.specfile, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file calledcleanpz.bat(for Windows) and a corresponding shell script file calledcleanpz.sh(for Linux) whose function is to delete NPZ files between SVN builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of SVN versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. === Description of the .mhmat file format === The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like:colorProperty R G B,where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit like if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == TODO == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO 005d38553a087ad952d679a662785afb4ee90d48 1283 714 2017-01-24T15:00:19Z Robbaer 12 /* .mhclo files */ wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] Thetargets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found inalgos3d.pymodule (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. Thecompile_models.pymodule (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, thecompile_targets.pymodule (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau inMakeHuman.specfile, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file calledcleanpz.bat(for Windows) and a corresponding shell script file calledcleanpz.sh(for Linux) whose function is to delete NPZ files between SVN builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of SVN versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file named clear.mhclo is is used to restore the default UV map that comes with the system. In the lib folder, the filechooser.py module has a MhcloFileLoader.Refresh() method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py, 3_libraries_eye_chooser.py, and 3_libraries_polygon_hair_chooser.py all access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses a cage.mhclo file. In the tools folder, the tool ‘MakeClothes’ accesses MHCLO files in both the makeclothes.py and material.py modules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py, import_obj.py, mt.py, ands ettings.py. Finally, two experimental tools in the utils folder, the makeface.py and helpers.py modules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. === Description of the file format === The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like:colorProperty R G B,where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit like if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == TODO == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO f8aa5c0d2a85eec6b9495a145313b51c1cef6911 714 549 2016-05-20T11:25:42Z Joepal 14 wikitext text/x-wiki This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] Thetargets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found inalgos3d.pymodule (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. Thecompile_models.pymodule (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, thecompile_targets.pymodule (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau inMakeHuman.specfile, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file calledcleanpz.bat(for Windows) and a corresponding shell script file calledcleanpz.sh(for Linux) whose function is to delete NPZ files between SVN builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of SVN versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file namedclear.mhclois is used to restore the default UV map that comes with the system. In the lib folder, thefilechooser.pymodule has aMhcloFileLoader.Refresh()method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,and 3_libraries_polygon_hair_chooser.pyall access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses acage.mhclofile. In the tools folder, the tool ‘MakeClothes’ accessws MHCLO files in both the makeclothes.pyandmaterial.pymodules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py,import_obj.py,mt.py, andsettings.py. Finally, two experimental tools in the utils folder, themakeface.pyandhelpers.pymodules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. === Description of the file format === The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like:colorProperty R G B,where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit like if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == TODO == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO fce2c530ce76ca6bacb5536d95044d435134ffaa 549 2015-11-12T09:50:38Z Duststorm 19 Create first version wikitext text/x-wiki MakeHuman stores some of its art assets and definition files in a custom format. This article contains an overview of these formats == Proxy files == === Offset and bounds === MakeClothes uses a bounding box for scaling the offsets. It's controlled by the ''Offsets'' option in MakeClothes. This is how this data is stored in the proxy file, so you can modify by hand if desired. In the mhclo file at the top, these values appear as x_scale 5399 11998 1.4340 z_scale 962 5320 2.0001 y_scale 791 881 2.4098 Allowed values are: x_scale y_scale z_scale shear_x shear_y shear_z l_shear_x l_shear_y l_shear_z r_shear_x r_shear_y r_shear_z scale options follow the format: x_scale v1 v2 den with v1, v2 vertex indices on the human basemesh, den a denominator with which the scaling value is reduced which results in the construction of a scale matrix that is applied to all the offsets of the proxy. eg. [xscale 0 0 0] [0 yscale 0 0] [0 0 zscale 0] [0 0 0 1] where xscale is determined from the option x_scale v1 v2 den as: xscale = abs(coord_pos(v1).x - coord_pos(v2).x) / den analog for yscale and zscale (.y or .z components of the position vector will be used instead) shear options follow the format: shear_x v1 v2 x1 x2 which result in the creation of a shear matrix instead of a scale matrix (I don't know of any instance where this is used) uses numpy's affine_matrix_from_points method to calculate a transformation matrix that fits all selected points didn't go into detail understanding this, because it doesn't seem too relevant. Read the code if interested. scale overrides shear which overrides l_shear which overrides r_shear, only one of them is used (so you either specify scale, shear, l_shear or r_shear but no combination of them) If you specify one, it is expected you define the other 2 of the same type as well. === max_pole === Proxy files can specify the pole count, which is the maximum number of edges that a vertex in the proxy mesh (the OBJ file) can have. If all faces around this vertex share their edges, this number also coincides with the maximum number of faces per vertex. If not specified, MakeHuman assumes this number is 8, which is a reasonable standard (more than 8 edges per vertex is probably a sub-optimal topology). For example, the MakeHuman basemesh, which was modeled with high consideration of pole count, has a maximum of 5 edges per vertex. MakeHuman intentionally is conservative about pole count to benefit performance (of the subdivision algorithm for example), for the same performance reasons it will not check the pole count when loading an OBJ, and instead relies on the user, or creation tool (MakeClothes) to set this number appropriately (at the moment MakeClothes does not do this). Similarly, you can improve performance of MakeHuman by lowering this number if your proxy mesh has lower pole count. Eg for some meshes this can be set to 6 or 7 Proxy files have a property ''max_pole'' to change this number from the default setting of 8 to something else: max_pole 9 == Meshes == MakeHuman stores its meshes in the standard Wavefront OBJ format. It supports quad-only meshes, and by default allows up to 8 edges per vertex. This number can be increased (see proxy format). == Material files == TODO == Poseunit files == TODO == Target files == TODO == Modifier and slider definitions == TODO 0e1f5070cfa601c619922b4c3a7d9b541c4012ac Documentation:Finding and downloading more assets 3000 538 1439 1438 2017-10-24T03:29:57Z Ercannon 50 added stubs for target, hair, skin wikitext text/x-wiki Many assets are found on the forums and online. ==Adding Poses== Poses are made of three files: a <code>.bvh</code> file, a <code>.meta</code> file, and (optionally) a <code>.thumb</code> file. The <code>.bvh</code> and <code>.meta</code> files contain the information for the pose, the <code>.thumb</code> file contains an image of the pose that is used in Makehuman. To add a new pose, download the provided files and copy them to the <code>/data/poses</code> directory. The pose will show up in the poses tab, no need to restart Makehuman. If you were on the poses tab when you copied the files and the pose does not show up, it may be necessary to click on another tab and then click back to the poses tab for the new pose to show up. ==Adding Clothing== Clothing is made of a number of files: a <code>.mhmat</code> file, a <code>.mhpxy</code> file, a <code>.npz</code> and (optionally) a <code>.thumb</code> file. There may also be one or more image files. The <code>.mhmat</code>, <code>.mhpxy</code>, and <code>.npz</code> files contain the information for the clothing, the <code>.thumb</code> file contains an image of the pose that is used in Makehuman. Any other image files are textures used by the clothes. To add a new article of clothing, download all the provided files and copy them to a new folder in the copy them to the <code>/data/clothes</code> directory. The clothing will show up in the clothing tab, no need to restart Makehuman. If you were on the clothing tab when you copied the files and the new clothing does not show up, it may be necessary to click on another tab and then click back to the clothing tab for the new pose to show up. ==Adding Targets== todo ==Adding Hairstyles== todo ==Adding Skins== todo 949f1a63f25f509a3979e29609159e3add49b6e2 1438 2017-10-24T03:27:28Z Ercannon 50 Created file, some basic information. wikitext text/x-wiki Many assets are found on the forums and online. ==Adding Poses== Poses are made of three files: a <code>.bvh</code> file, a <code>.meta</code> file, and (optionally) a <code>.thumb</code> file. The <code>.bvh</code> and <code>.meta</code> files contain the information for the pose, the <code>.thumb</code> file contains an image of the pose that is used in Makehuman. To add a new pose, download the provided files and copy them to the <code>/data/poses</code> directory. The pose will show up in the poses tab, no need to restart Makehuman. If you were on the poses tab when you copied the files and the pose does not show up, it may be necessary to click on another tab and then click back to the poses tab for the new pose to show up. ==Adding Clothing== Clothing is made of a number of files: a <code>.mhmat</code> file, a <code>.mhpxy</code> file, a <code>.npz</code> and (optionally) a <code>.thumb</code> file. There may also be one or more image files. The <code>.mhmat</code>, <code>.mhpxy</code>, and <code>.npz</code> files contain the information for the clothing, the <code>.thumb</code> file contains an image of the pose that is used in Makehuman. Any other image files are textures used by the clothes. To add a new article of clothing, download all the provided files and copy them to a new folder in the copy them to the <code>/data/clothes</code> directory. The clothing will show up in the clothing tab, no need to restart Makehuman. If you were on the clothing tab when you copied the files and the new clothing does not show up, it may be necessary to click on another tab and then click back to the clothing tab for the new pose to show up. be7095407b25e3522239155e167aeea923536607 Documentation:Foo 3000 5 16 15 2015-06-29T17:44:40Z Aiena1 3 wikitext text/x-wiki this is a test GO BACK TO THE INDEX [[Documentation:Index|Index]] 0052af4456d384b705eef759c86fe725dcbd0f3a 15 2015-06-29T17:41:04Z Aiena1 3 Created page with "this is a test GO BACK TO THE INDEX [[Documentation:Index]]" wikitext text/x-wiki this is a test GO BACK TO THE INDEX [[Documentation:Index]] 0b8a2fcf31309dfb0766a5254f0851eece839e7a Documentation:Gender, Random, Measure and Custom 3000 230 1107 782 2016-07-05T17:17:28Z Aranuvir 17 wikitext text/x-wiki == Gender == The gender plugin comprises sliders used to alter gender specific attributes of your human models. Currently this largely consists of "Breast". This category, as the name suggests, comprises of sliders used to alter attributes related to the human female breasts such as firmness, size, pointiness etc. == Random modifier == [[File:random2_2_0.png]] The random modifier is used to auto generate human beings with randomised parameters. The interface comprises of 3 checkboxes, 2 sliders and 2 buttons. * Macro checkbox -This checkbox is used to toggle whether "Macro" attributes such as age, tone/muscle, gender are randomised or not. * Height checkbox -This checkbox is used to toggle whetherthe height attribute is randomised or not. * Face checkbox -If this is enabled the facial features of the model are randomised. * Symmetry slider -THis is used to introduce Assymmetry in the model. * Amount -THis slider is used to control the amount of randomisation of the character done by the random plugin. * Replace current -usede to replace current model with a new random model. * Adjust current -this is used to alter the parameters of the current model. == Measure Panel == [[File:measure_1.png]] The "Measure" tab facilitates the end user in more precise modelling of the human form. With the measure panel you are able to use the sliders as well as specify the units as sliders for more accurate adjustment of proportions. Various proportions can be edited here such as the proportions of the neck, waist , arms, legs and so on. One example of where this would be useful is in modelling characters like Michael Phelps who has an arm span longer than his height making him a better swimmer. == Custom modifier == [[File:customtab_0.png]] The custom panel is primarily used for "custom morphs". Cusom morphs can be created by you using blender tools and then used inside makehuman. This tab will remain empty unless you make your own targets using blender scripts and import them for use inside blender. This would be used for instance if you wanted to make an "Elven ears" morph inside makeuman for a humanoid character. This tab is more relevant for advanced makehuman users. f23c759984f2834995f34ecc12e9d75c2c7d131b 782 689 2016-05-24T12:08:17Z Joepal 14 wikitext text/x-wiki == Gender == The gender plugin comprises sliders used to alter gender specific attributes of your human models. Currently this largely consists of "Breast". This category, as the name suggests, comprises of sliders used to alter attributes related to the human female breasts such as firmness, size, pointiness etc. == Random modifier == !IMAGE!Pictures/random2_2_0.png!/IMAGE! The random modifier is used to auto generate human beings with randomised parameters. The interface comprises of 3 checkboxes, 2 sliders and 2 buttons. * Macro checkbox -This checkbox is used to toggle whether "Macro" attributes such as age, tone/muscle, gender are randomised or not. * Height checkbox -This checkbox is used to toggle whetherthe height attribute is randomised or not. * Face checkbox -If this is enabled the facial features of the model are randomised. * Symmetry slider -THis is used to introduce Assymmetry in the model. * Amount -THis slider is used to control the amount of randomisation of the character done by the random plugin. * Replace current -usede to replace current model with a new random model. * Adjust current -this is used to alter the parameters of the current model. == Measure Panel == !IMAGE!Pictures/measure_1.png!/IMAGE! The "Measure" tab facilitates the end user in more precise modelling of the human form. With the measure panel you are able to use the sliders as well as specify the units as sliders for more accurate adjustment of proportions. Various proportions can be edited here such as the proportions of the neck, waist , arms, legs and so on. One example of where this would be useful is in modelling characters like Michael Phelps who has an arm span longer than his height making him a better swimmer. == Custom modifier == !IMAGE!Pictures/customtab_0.png!/IMAGE! The custom panel is primarily used for "custom morphs". Cusom morphs can be created by you using blender tools and then used inside makehuman. This tab will remain empty unless you make your own targets using blender scripts and import them for use inside blender. This would be used for instance if you wanted to make an "Elven ears" morph inside makeuman for a humanoid character. This tab is more relevant for advanced makehuman users. fa09681a67df82b3eb59b1d7fdf843f2a6966f30 689 2016-05-20T09:01:37Z Joepal 14 Created page with "==== Gender ==== The gender plugin comprises sliders used to alter gender specific attributes of your human models. Currently this largely consists of "Breast". This category..." wikitext text/x-wiki ==== Gender ==== The gender plugin comprises sliders used to alter gender specific attributes of your human models. Currently this largely consists of "Breast". This category, as the name suggests, comprises of sliders used to alter attributes related to the human female breasts such as firmness, size, pointiness etc. ==== Random modifier ==== !IMAGE!Pictures/random2_2_0.png!/IMAGE! The random modifier is used to auto generate human beings with randomised parameters. The interface comprises of 3 checkboxes, 2 sliders and 2 buttons. * Macro checkbox -This checkbox is used to toggle whether "Macro" attributes such as age, tone/muscle, gender are randomised or not. * Height checkbox -This checkbox is used to toggle whetherthe height attribute is randomised or not. * Face checkbox -If this is enabled the facial features of the model are randomised. * Symmetry slider -THis is used to introduce Assymmetry in the model. * Amount -THis slider is used to control the amount of randomisation of the character done by the random plugin. * Replace current -usede to replace current model with a new random model. * Adjust current -this is used to alter the parameters of the current model. ==== Measure Panel ==== !IMAGE!Pictures/measure_1.png!/IMAGE! The "Measure" tab facilitates the end user in more precise modelling of the human form. With the measure panel you are able to use the sliders as well as specify the units as sliders for more accurate adjustment of proportions. Various proportions can be edited here such as the proportions of the neck, waist , arms, legs and so on. One example of where this would be useful is in modelling characters like Michael Phelps who has an arm span longer than his height making him a better swimmer. ==== Custom modifier ==== !IMAGE!Pictures/customtab_0.png!/IMAGE! The custom panel is primarily used for "custom morphs". Cusom morphs can be created by you using blender tools and then used inside makehuman. This tab will remain empty unless you make your own targets using blender scripts and import them for use inside blender. This would be used for instance if you wanted to make an "Elven ears" morph inside makeuman for a humanoid character. This tab is more relevant for advanced makehuman users. fda6610ebf0aad5e4f4140178b7fd816b416e87c Documentation:Getting and installing BlenderTools 3000 239 1477 1443 2018-08-22T12:19:33Z Rib 45 Show where addons are typically found on OSX wikitext text/x-wiki The most up to date BlenderTools package (for 1.1.0) is available here: http://download.tuxfamily.org/makehuman/releases/1.1.0/blendertools-1.1.0-all.zip BlenderTools roughly follows the releases of MakeHuman. So while it might work to use another version, it is probably better to upgrade BlenderTools whenever you upgrade MakeHuman. BlenderTools should work with any modern version of Blender. In practice, BlenderTools is a zip package consisting of three folders: * MakeTarget (used to create targets) * MakeClothes (used to create clothes, hair, proxies and other mesh items usable in MH) * MakeWalk (used for BVH animation) To install the addons, these '''subfolders''' must first be copied to a location where Blender can find it. Depending on the operating system being used, the addons destination directory where Blender will look for user-defined add-ons, is: * Windows 7 and later: C:\Users\%username%\AppData\Roaming\Blender Foundation\Blender\%your blender version%\scripts\addons * Linux: /home/%username%/.blender/%version%/scripts/addons * OSX: /Users/%username%/Library/Application Support/Blender/%version%/scripts/addons The directories should look something like: <nowiki> /path/to/%version%/scripts/addons/maketarget/ /path/to/%version%/scripts/addons/makeclothes/ /path/to/%version%/scripts/addons/makewalk/ </nowiki> '''(you might need to create the '%version%/scripts' and '%version%/scripts/addons' directories if they don't already exist)''' ''Note: that the AppData folder in Windows 7 and the .blender folder in Linux are hidden folders. The location may also be different depending on your choices for setting up your operating system and Blender. For more information see the Blender documentation.'' ''Note: it won't work to use Blender's <code>Install from File...</code> UI to install these addons directly from the downloaded .zip file because the zip file has a top-level 'blendertools/' directory which shouldn't be kept.'' ''Note: similarly on Windows it's not enough to use the <code>Extract all...</code> context menu option to unpack the zip file in the addons directory because that may create a top-level directory like 'blender-tools-1.1.0-all/' and the zip file also has its own top-level 'blendertools/' directory.'' To enable the MH addons, in Blender open the User Preferences window from the File > User Preferences menu, and go to the Addons tab. The Blendertools addons are located in the MakeHuman category. Enable them by checking the box in the upper-right corner, next to the running man symbol. If you want Blendertools to start every time Blender is restarted, press the "Save User Settings" button. 3a798cdfe174ccdef2a3f440cf01f3825fb103cb 1443 1436 2018-02-10T03:23:35Z Robitron 56 wikitext text/x-wiki The most up to date BlenderTools package (for 1.1.0) is available here: http://download.tuxfamily.org/makehuman/releases/1.1.0/blendertools-1.1.0-all.zip BlenderTools roughly follows the releases of MakeHuman. So while it might work to use another version, it is probably better to upgrade BlenderTools whenever you upgrade MakeHuman. BlenderTools should work with any modern version of Blender. In practice, BlenderTools is a zip package consisting of three folders: * MakeTarget (used to create targets) * MakeClothes (used to create clothes, hair, proxies and other mesh items usable in MH) * MakeWalk (used for BVH animation) To install the addons, these '''subfolders''' must first be copied to a location where Blender can find it. Depending on the operating system being used, the addons destination directory where Blender will look for user-defined add-ons, is: * Windows 7 and later: C:\Users\%username%\AppData\Roaming\Blender Foundation\Blender\%your blender version%\scripts\addons * Linux: /home/%username%/.blender/%version%/scripts/addons The directories should look something like: <nowiki> /path/to/%version%/scripts/addons/maketarget/ /path/to/%version%/scripts/addons/makeclothes/ /path/to/%version%/scripts/addons/makewalk/ </nowiki> '''(you might need to create the '%version%/scripts' and '%version%/scripts/addons' directories if they don't already exist)''' ''Note: that the AppData folder in Windows 7 and the .blender folder in Linux are hidden folders. The location may also be different depending on your choices for setting up your operating system and Blender. For more information see the Blender documentation.'' ''Note: it won't work to use Blender's <code>Install from File...</code> UI to install these addons directly from the downloaded .zip file because the zip file has a top-level 'blendertools/' directory which shouldn't be kept.'' ''Note: similarly on Windows it's not enough to use the <code>Extract all...</code> context menu option to unpack the zip file in the addons directory because that may create a top-level directory like 'blender-tools-1.1.0-all/' and the zip file also has its own top-level 'blendertools/' directory.'' To enable the MH addons, in Blender open the User Preferences window from the File > User Preferences menu, and go to the Addons tab. The Blendertools addons are located in the MakeHuman category. Enable them by checking the box in the upper-right corner, next to the running man symbol. If you want Blendertools to start every time Blender is restarted, press the "Save User Settings" button. f6d7bf71febb8d0a5af079616ae43f7cf82a25af 1436 1435 2017-09-04T15:59:14Z Rib 45 don't use camel case in example of what the directories should look like since the zip file has lowercase directory names wikitext text/x-wiki The most up to date BlenderTools package (for 1.1.0) is available here: http://download.tuxfamily.org/makehuman/releases/1.1.0/blendertools-1.1.0-all.zip BlenderTools roughly follows the releases of MakeHuman. So while it might work to use another version, it is probably better to upgrade BlenderTools whenever you upgrade MakeHuman. BlenderTools should work with any modern version of Blender. In practice, BlenderTools is a zip package consisting of three folders: * MakeTarget (used to create targets) * MakeClothes (used to create clothes, hair, proxies and other mesh items usable in MH) * MakeWalk (used for BVH animation) To install the addons, these '''subfolders''' must first be copied to a location where Blender can find it. Depending on the operating system being used, the addons destination directory where Blender will look for user-defined add-ons, is: * Windows 7 and later: C:\Users\%username%\AppData\Roaming\Blender Foundation\Blender\%your blender version%\scripts\addons * Linux: /home/%username%/.blender/%version%/scripts/addons The directories should look something like: <nowiki> /path/to/%version%/scripts/addons/maketarget/ /path/to/%version%/scripts/addons/makeclothes/ /path/to/%version%/scripts/addons/makewalk/ </nowiki> (you might need to create the '%version%/scripts' and '%version%/scripts/addons' directories if they don't already exist) ''Note: that the AppData folder in Windows 7 and the .blender folder in Linux are hidden folders. The location may also be different depending on your choices for setting up your operating system and Blender. For more information see the Blender documentation.'' ''Note: it won't work to use Blender's <code>Install from File...</code> UI to install these addons directly from the downloaded .zip file because the zip file has a top-level 'blendertools/' directory which shouldn't be kept.'' ''Note: similarly on Windows it's not enough to use the <code>Extract all...</code> context menu option to unpack the zip file in the addons directory because that may create a top-level directory like 'blender-tools-1.1.0-all/' and the zip file also has its own top-level 'blendertools/' directory.'' To enable the MH addons, in Blender open the User Preferences window from the File > User Preferences menu, and go to the Addons tab. The Blendertools addons are located in the MakeHuman category. Enable them by checking the box in the upper-right corner, next to the running man symbol. If you want Blendertools to start every time Blender is restarted, press the "Save User Settings" button. 7604877dba94e94b59c2eeb51abb2ee9995319fe 1435 773 2017-09-04T15:43:15Z Rib 45 Explicitly steer the reader away from using Blender's 'Install from File...' and clarify that only the subdirectories should be kept; after making both these mistakes more than once and seeing reports of other's hitting the same problems on stackexchange wikitext text/x-wiki The most up to date BlenderTools package (for 1.1.0) is available here: http://download.tuxfamily.org/makehuman/releases/1.1.0/blendertools-1.1.0-all.zip BlenderTools roughly follows the releases of MakeHuman. So while it might work to use another version, it is probably better to upgrade BlenderTools whenever you upgrade MakeHuman. BlenderTools should work with any modern version of Blender. In practice, BlenderTools is a zip package consisting of three folders: * MakeTarget (used to create targets) * MakeClothes (used to create clothes, hair, proxies and other mesh items usable in MH) * MakeWalk (used for BVH animation) To install the addons, these '''subfolders''' must first be copied to a location where Blender can find it. Depending on the operating system being used, the addons destination directory where Blender will look for user-defined add-ons, is: * Windows 7 and later: C:\Users\%username%\AppData\Roaming\Blender Foundation\Blender\%your blender version%\scripts\addons * Linux: /home/%username%/.blender/%version%/scripts/addons The directories should look something like: <nowiki> /path/to/%version%/scripts/addons/MakeTarget/ /path/to/%version%/scripts/addons/MakeClothes/ /path/to/%version%/scripts/addons/MakeWalk/ </nowiki> (you might need to create the '%version%/scripts' and '%version%/scripts/addons' directories if they don't already exist) ''Note: that the AppData folder in Windows 7 and the .blender folder in Linux are hidden folders. The location may also be different depending on your choices for setting up your operating system and Blender. For more information see the Blender documentation.'' ''Note: it won't work to use Blender's <code>Install from File...</code> UI to install these addons directly from the downloaded .zip file because the zip file has a top-level 'blendertools/' directory which shouldn't be kept.'' ''Note: similarly on Windows it's not enough to use the <code>Extract all...</code> context menu option to unpack the zip file in the addons directory because that may create a top-level directory like 'blender-tools-1.1.0-all/' and the zip file also has its own top-level 'blendertools/' directory.'' To enable the MH addons, in Blender open the User Preferences window from the File > User Preferences menu, and go to the Addons tab. The Blendertools addons are located in the MakeHuman category. Enable them by checking the box in the upper-right corner, next to the running man symbol. If you want Blendertools to start every time Blender is restarted, press the "Save User Settings" button. 6e0d5938a76c7db42bf11501bb1324c461aebcd1 773 772 2016-05-24T11:54:47Z Joepal 14 wikitext text/x-wiki The most up to date BlenderTools package (for 1.1.0) is available here: http://download.tuxfamily.org/makehuman/releases/1.1.0/blendertools-1.1.0-all.zip BlenderTools roughly follows the releases of MakeHuman. So while it might work to use another version, it is probably better to upgrade BlenderTools whenever you upgrade MakeHuman. BlenderTools should work with any modern version of Blender. In practice, BlenderTools is a zip package consisting of three folders: * MakeTarget (used to create targets) * MakeClothes (used to create clothes, hair, proxies and other mesh items usable in MH) * MakeWalk (used for BVH animation) To install the addons, these subfolders must first be copied to a location where Blender can find it. Depending on the operating system being used, the addons destination directory where Blender will look for user-defined add-ons, is * Windows 7 and later: C:\Users\%username%\AppData\Roaming\Blender Foundation\Blender\%your blender version%\scripts\addons * Linux: /home/%username%/.blender/%version%/scripts/addons Note that the AppData folder in Windows 7 and the .blender folder in Linux are hidden folders. The location may also be different depending on your choices for setting up your operating system and Blender. For more information see the Blender documentation. To enable the MH addons, in Blender open the User Preferences window from the File > User Preferences menu, and go to the Addons tab. The Blendertools addons are located in the MakeHuman category. Enable them by checking the box in the upper-right corner, next to the running man symbol. If you want Blendertools to start every time Blender is restarted, press the "Save User Settings" button. 3abc5ba26de490f7d2420629d2df44940d5d5825 772 703 2016-05-24T11:53:47Z Joepal 14 wikitext text/x-wiki The most up to date BlenderTools package (for 1.1.0) is available here: http://download.tuxfamily.org/makehuman/releases/1.1.0/blendertools-1.1.0-all.zip BlenderTools roughly follows the releases of MakeHuman. So while it might work to use another version, it is probably better to upgrade BlenderTools whenever you upgrade MakeHuman. BlenderTools should work with any modern version of Blender. In practice, BlenderTools is a zip package consisting of three folders: * MakeTarget (used to create targets) * MakeClothes (used to create clothes, hair, proxies and other mesh items usable in MH) * MakeWalk (used for BVH animation) To install the addons, these subfolders must first be copied to a location where Blender can find it. Depending on the operating system being used, the addons destination directory where Blender will look for user-defined add-ons, is * Windows 7 and later: C:\Users\%username%\AppData\Roaming\Blender Foundation\Blender\%your blender version%\scripts\addons * Linux: /home/%username%/.blender/%version%/scripts/addons Note that the AppData folder in Windows 7 and the .blender folder in Linux are hidden folders. The location may also be different depending on your choices for setting up your operating system and Blender. For more information see the Blender documentation. To enable the MH addons, in Blender open the User Preferences window from the File > User Preferences menu, and go to the Addons tab. The Blendertools addons are located in the MakeHuman category. Enable them by checking the box in the upper-right corner, next to the running man symbol. If you want Blendertools to start every time Blender is restarted, press the "Save User Settings" button. !IMAGE!Pictures/mhx-pref.png!/IMAGE! 9b8a81eb49993b3e9535ecd24a48d455bb9984fd 703 2016-05-20T11:09:16Z Joepal 14 Created page with "The Blendertools package is available on the download page:!LINK!http://www.makehuman.org/content/download.html -- http://www.makehuman.org/content/download.html!/LINK! The cu..." wikitext text/x-wiki The Blendertools package is available on the download page:!LINK!http://www.makehuman.org/content/download.html -- http://www.makehuman.org/content/download.html!/LINK! The current version is 1.0.0, designed to work with MakeHuman 1.0.0 and with Blender 2.69. It's a zip package of four folders: * MakeTarget * MakeClothes * MakeWalk * mhx_importer To install the addons, these subfolders must first be copied to a location where Blender can find it. Depending on the operating system being used, the addons destination directory where Blender will look for user-defined add-ons, is * Windows 7: C:\Users\%username%\AppData\Roaming\Blender Foundation\Blender\2.6x\scripts\addons * Windows XP: C:\Documents and Settings\%username%\Application Data\Blender Foundation\Blender\2.6x\scripts\addons * Vista: C:\Program Files\Blender Foundation\Blender\%blenderversion%\scripts\addons (this is valid at least for blender 2.69) * Linux: /home/$user/.blender/$version/scripts/addons Note that the AppData folder in Windows 7 and the .blender folder in Linux are hidden folders. The location may also be different depending on your choices for setting up your operating system and Blender. For more information see the Blender documentation. To enable the MH addons, in Blender open the User Preferences window from the File > User Preferences menu, and go to the Addons tab. The Blendertools addons are located in the MakeHuman category. Enable them by checking the box in the upper-right corner, next to the running man symbol. If you want Blendertools to start every time Blender is restarted, press the "Save User Settings" button. !IMAGE!Pictures/mhx-pref.png!/IMAGE! 63fdd3d2433fa4b4e776795f043ee97fee744e5b Documentation:Getting started with MakeHuman code 3000 248 1120 723 2016-07-05T17:38:26Z Aranuvir 17 /* Getting started */ wikitext text/x-wiki === Getting started === The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. In order to procced easily. it is recommended you use the tools available at!LINK!https://bitbucket.org -- https://bitbucket.org!/LINK!. The general procedure is: * Go to!LINK!https://bitbucket.org -- https://bitbucket.org!/LINK!and sign up (if you don't already have an account) * Go to !LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK! * Click "fork" (it's hidden under "..." in the button menu) [[File:fork.jpg]] * Enter a name and description of your choice (the fork will end up on your account, so it doesn't matter what you call it). Use "fork at tip" and don't check "this is a private repository" * You should be redirected to the new repository on bitbucket * clone your new repository to your local harddrive (if you need a primer on how to clone or use bitbucket,!LINK!https://confluence.atlassian.com/display/BITBUCKET/Bitbucket+201+Bitbucket+with+Git+and+Mercurial -- see their tutorial!/LINK!) * Make your code changes locally. Do not make a feature branch, work directly on the default branch. * Commit and push the changes to your repository on bitbucket * Go to your repository on bitbucket and click "pull request" (in the button menu at the top right of the page) * Write a good description for what your changes concern and click "create pull request" Once you have done this, the makehuman team will get a notification that there is an incoming code changes. This will be reviewed and either merged or rejected. If you want to continue working with updates in the future, make sure your fork is up to date with changes in the makehuman repository. Go to your repository, click the "..." button in the button menu and choose "compare", click the compare button on the page you get to. Merge any incoming changes. If your tree is hopelessly out of sync with the makehuman tree, just delete it and make a new fork. Better that than accidentally getting junk in your pull requests. Before starting with any of the above, you might want to read up on how to run makehuman from a source checkout rather than from a binary download. The short story is that you need to install a few dependencies. More information can be found here:!LINK!http://www.makehuman.org/doc/node/libraries_and_build_procedures.html -- http://www.makehuman.org/doc/node/libraries_and_build_procedures.html!/LINK! 19d2aff1423151f2a0a72edcc337e2971b978ecf 723 2016-05-20T11:32:47Z Joepal 14 Created page with "=== Getting started === The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. In order to procced easily. i..." wikitext text/x-wiki === Getting started === The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. In order to procced easily. it is recommended you use the tools available at!LINK!https://bitbucket.org -- https://bitbucket.org!/LINK!. The general procedure is: * Go to!LINK!https://bitbucket.org -- https://bitbucket.org!/LINK!and sign up (if you don't already have an account) * Go to !LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK! * Click "fork" (it's hidden under "..." in the button menu) !IMAGE!Pictures/fork.jpg!/IMAGE! * Enter a name and description of your choice (the fork will end up on your account, so it doesn't matter what you call it). Use "fork at tip" and don't check "this is a private repository" * You should be redirected to the new repository on bitbucket * clone your new repository to your local harddrive (if you need a primer on how to clone or use bitbucket,!LINK!https://confluence.atlassian.com/display/BITBUCKET/Bitbucket+201+Bitbucket+with+Git+and+Mercurial -- see their tutorial!/LINK!) * Make your code changes locally. Do not make a feature branch, work directly on the default branch. * Commit and push the changes to your repository on bitbucket * Go to your repository on bitbucket and click "pull request" (in the button menu at the top right of the page) * Write a good description for what your changes concern and click "create pull request" Once you have done this, the makehuman team will get a notification that there is an incoming code changes. This will be reviewed and either merged or rejected. If you want to continue working with updates in the future, make sure your fork is up to date with changes in the makehuman repository. Go to your repository, click the "..." button in the button menu and choose "compare", click the compare button on the page you get to. Merge any incoming changes. If your tree is hopelessly out of sync with the makehuman tree, just delete it and make a new fork. Better that than accidentally getting junk in your pull requests. Before starting with any of the above, you might want to read up on how to run makehuman from a source checkout rather than from a binary download. The short story is that you need to install a few dependencies. More information can be found here:!LINK!http://www.makehuman.org/doc/node/libraries_and_build_procedures.html -- http://www.makehuman.org/doc/node/libraries_and_build_procedures.html!/LINK! dd48955cf763b2bb99e09905a8afb4a29e53f2c1 Documentation:Hairstyles and Clothes 3000 231 1108 690 2016-07-05T17:19:18Z Aranuvir 17 wikitext text/x-wiki ==== Hairstyles ==== The default MakeHuman humanoid model has no hair. However, you may want your model to have hair and a particular hairstyle. In MakeHuman™, you can choose from the available character hairstyles by first selecting the tabsGeometries > Hair. [[File:hair_1_0_0.png]] This opens the Hair library window. The Hair library window, as usual, is arranged in three sections. There is a left hand panel (currently empty, but that will include a tag filter), a center preview window showing your current character model, and a right hand panel containing a list of available hairstyles shown as a thumbnail with a label. For the moment, the default hairstyles within MakeHuman™ are only few types. The library will be expanded release by release. To be able to see your character with an available hairstyle, you must click on the thumbnail image with your mouse. You can change an assigned hairstyle with another one by clicking on another thumbnail. For example, you can change the hairstyle "afro" of your model by clicking on the hairstyle "fhair" from the panel of thumbnails. Note that doing this will not combine the two hairstyles. If you are unhappy with how the chosen hairstyle looks on your model and want to return to the previous state of your model, you can press the Undo button at the top left of the screen. In case you want to return to the original state of the model prior to applying any hairstyles, just find the thumbnail named "None" from the gallery of hairstyles and click on it. Your model will now revert to the state that it had before applying any hairstyles to it. ==== Clothes ==== The default MakeHuman model is barefoot and has no clothing on. However, if you would like to dress your model in MakeHuman™ it is possible by simply clicking and loading clothing and shoes from the library of clothing geometry objects that are fitted to the model automatically. To dress your model press the tabsGeometries > Clothes. [[File:clothes_1_0.png]] The clothes interface is very similar to the hair one, with some differences: * Clicking on more items in the right panel will combine them. To remove an item you have to re-click it. * There is a tag filter in the left panel, useful to navigate through a big library. * An option called "Hide Faces Under Clothes" is provided to prevent portions of the body from intersecting the clothing and creating holes during animating. 77b8b086cba0a899be0425bf05a8dc234c5ba44b 690 2016-05-20T09:02:35Z Joepal 14 Created page with "==== Hairstyles ==== The default MakeHuman humanoid model has no hair. However, you may want your model to have hair and a particular hairstyle. In MakeHuman™, you can choo..." wikitext text/x-wiki ==== Hairstyles ==== The default MakeHuman humanoid model has no hair. However, you may want your model to have hair and a particular hairstyle. In MakeHuman™, you can choose from the available character hairstyles by first selecting the tabsGeometries > Hair. !IMAGE!Pictures/hair_1_0_0.png!/IMAGE! This opens the Hair library window. The Hair library window, as usual, is arranged in three sections. There is a left hand panel (currently empty, but that will include a tag filter), a center preview window showing your current character model, and a right hand panel containing a list of available hairstyles shown as a thumbnail with a label. For the moment, the default hairstyles within MakeHuman™ are only few types. The library will be expanded release by release. To be able to see your character with an available hairstyle, you must click on the thumbnail image with your mouse. You can change an assigned hairstyle with another one by clicking on another thumbnail. For example, you can change the hairstyle "afro" of your model by clicking on the hairstyle "fhair" from the panel of thumbnails. Note that doing this will not combine the two hairstyles. If you are unhappy with how the chosen hairstyle looks on your model and want to return to the previous state of your model, you can press the Undo button at the top left of the screen. In case you want to return to the original state of the model prior to applying any hairstyles, just find the thumbnail named "None" from the gallery of hairstyles and click on it. Your model will now revert to the state that it had before applying any hairstyles to it. ==== Clothes ==== The default MakeHuman model is barefoot and has no clothing on. However, if you would like to dress your model in MakeHuman™ it is possible by simply clicking and loading clothing and shoes from the library of clothing geometry objects that are fitted to the model automatically. To dress your model press the tabsGeometries > Clothes. !IMAGE!Pictures/clothes_1_0.png!/IMAGE! The clothes interface is very similar to the hair one, with some differences: * Clicking on more items in the right panel will combine them. To remove an item you have to re-click it. * There is a tag filter in the left panel, useful to navigate through a big library. * An option called "Hide Faces Under Clothes" is provided to prevent portions of the body from intersecting the clothing and creating holes during animating. c11bd1641a4890bf96a2b20c9705324af71a5014 Documentation:Index 3000 2 2117 1972 2021-05-29T09:26:31Z Punkduck 38 wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Running MakeHuman from source|Running MakeHuman from source]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] / [[Documentation:MH4UE|MH4UE]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Working with MakeHuman models in Blender == * [[Documentation:Corrective shape keys|Corrective shape keys]] * [[Documentation:MHBlenderTools: MakeShapes|MakeShapes a tool for adding more MH shapes in blender]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:TargetsV2|Targets]] * [[Documentation:ClothesV2|Clothes]] * [[Documentation:MaterialsMakeSkin|Materials]] (Materials for clothes and other assets) * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == MakeWalk: General Background == * [[Documentation:MakeWalk|MakeWalk]] == MakeWalk: In Depth Tutorials == * [[Documentation:Running feet|Running feet]] * [[Documentation:Automatic animation|Automatic animation]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation: Plugin System|Plugin System]] * [[Documentation: OpenGL Notes|OpenGL Notes]] * [[Documentation: Basemesh|Basemesh and standard skeleton]] * [[Documentation: Directory structure and core modules|Directory structure and core modules]] * [[Documentation: File formats and extensions|File formats and extensions]] * [[Documentation: Libraries and build procedures|Libraries and build procedures]] * [[Documentation: Development infrastructure|Development infrastructure]] * [[Documentation: Application design and Code overview|Application design and Code overview]] * [[Documentation: Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == * [[ Documentation:Collection of old documents|Previous versions of documentation]] are still available. 9bea81270e7b05d6100ad5c600f7e9068f5b4d0d 1972 1971 2021-01-16T07:24:35Z Assetdk 89 /* Working with MakeHuman models in Blender */ wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Running MakeHuman from source|Running MakeHuman from source]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] / [[Documentation:MH4UE|MH4UE]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Working with MakeHuman models in Blender == * [[Documentation:Corrective shape keys|Corrective shape keys]] * [[Documentation:MHBlenderTools: MakeShapes|MakeShapes a tool for adding more MH shapes in blender]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:TargetsV2|Targets]] * [[Documentation:ClothesV2|Clothes]] * [[Documentation:MaterialsMakeSkin|Materials]] (Materials for clothes and other assets) * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == MakeWalk: General Background == * [[Documentation:MakeWalk|MakeWalk]] == MakeWalk: In Depth Tutorials == * [[Documentation:Running feet|Running feet]] * [[Documentation:Automatic animation|Automatic animation]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation: Plugin System|Plugin System]] * [[Documentation: OpenGL Notes|OpenGL Notes]] * [[Documentation: Basemesh|Basemesh]] * [[Documentation: Directory structure and core modules|Directory structure and core modules]] * [[Documentation: File formats and extensions|File formats and extensions]] * [[Documentation: Libraries and build procedures|Libraries and build procedures]] * [[Documentation: Development infrastructure|Development infrastructure]] * [[Documentation: Application design and Code overview|Application design and Code overview]] * [[Documentation: Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == * [[ Documentation:Collection of old documents|Previous versions of documentation]] are still available. dca5298c6f0df90d13b1e5114b02422444eec88d 1971 1970 2021-01-16T07:08:51Z Assetdk 89 /* Exporting your work to another application */ wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Running MakeHuman from source|Running MakeHuman from source]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] / [[Documentation:MH4UE|MH4UE]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Working with MakeHuman models in Blender == * [[Documentation:Corrective shape keys|Corrective shape keys]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:TargetsV2|Targets]] * [[Documentation:ClothesV2|Clothes]] * [[Documentation:MaterialsMakeSkin|Materials]] (Materials for clothes and other assets) * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == MakeWalk: General Background == * [[Documentation:MakeWalk|MakeWalk]] == MakeWalk: In Depth Tutorials == * [[Documentation:Running feet|Running feet]] * [[Documentation:Automatic animation|Automatic animation]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation: Plugin System|Plugin System]] * [[Documentation: OpenGL Notes|OpenGL Notes]] * [[Documentation: Basemesh|Basemesh]] * [[Documentation: Directory structure and core modules|Directory structure and core modules]] * [[Documentation: File formats and extensions|File formats and extensions]] * [[Documentation: Libraries and build procedures|Libraries and build procedures]] * [[Documentation: Development infrastructure|Development infrastructure]] * [[Documentation: Application design and Code overview|Application design and Code overview]] * [[Documentation: Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == * [[ Documentation:Collection of old documents|Previous versions of documentation]] are still available. 9152b8a195fd772e23e68bcec7a0ea3de850fcf7 1970 1952 2021-01-16T07:08:11Z Assetdk 89 /* Exporting your work to another application */ wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Running MakeHuman from source|Running MakeHuman from source]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] / [[Documentation:MH4UE]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Working with MakeHuman models in Blender == * [[Documentation:Corrective shape keys|Corrective shape keys]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:TargetsV2|Targets]] * [[Documentation:ClothesV2|Clothes]] * [[Documentation:MaterialsMakeSkin|Materials]] (Materials for clothes and other assets) * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == MakeWalk: General Background == * [[Documentation:MakeWalk|MakeWalk]] == MakeWalk: In Depth Tutorials == * [[Documentation:Running feet|Running feet]] * [[Documentation:Automatic animation|Automatic animation]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation: Plugin System|Plugin System]] * [[Documentation: OpenGL Notes|OpenGL Notes]] * [[Documentation: Basemesh|Basemesh]] * [[Documentation: Directory structure and core modules|Directory structure and core modules]] * [[Documentation: File formats and extensions|File formats and extensions]] * [[Documentation: Libraries and build procedures|Libraries and build procedures]] * [[Documentation: Development infrastructure|Development infrastructure]] * [[Documentation: Application design and Code overview|Application design and Code overview]] * [[Documentation: Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == * [[ Documentation:Collection of old documents|Previous versions of documentation]] are still available. 2e18eea8774e2b8036c9e1d98cbc3b0a975faa5a 1952 1863 2020-11-29T11:17:44Z Punkduck 38 wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Running MakeHuman from source|Running MakeHuman from source]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Working with MakeHuman models in Blender == * [[Documentation:Corrective shape keys|Corrective shape keys]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:TargetsV2|Targets]] * [[Documentation:ClothesV2|Clothes]] * [[Documentation:MaterialsMakeSkin|Materials]] (Materials for clothes and other assets) * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == MakeWalk: General Background == * [[Documentation:MakeWalk|MakeWalk]] == MakeWalk: In Depth Tutorials == * [[Documentation:Running feet|Running feet]] * [[Documentation:Automatic animation|Automatic animation]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation: Plugin System|Plugin System]] * [[Documentation: OpenGL Notes|OpenGL Notes]] * [[Documentation: Basemesh|Basemesh]] * [[Documentation: Directory structure and core modules|Directory structure and core modules]] * [[Documentation: File formats and extensions|File formats and extensions]] * [[Documentation: Libraries and build procedures|Libraries and build procedures]] * [[Documentation: Development infrastructure|Development infrastructure]] * [[Documentation: Application design and Code overview|Application design and Code overview]] * [[Documentation: Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == * [[ Documentation:Collection of old documents|Previous versions of documentation]] are still available. fe9973e6c456bb5d15a24790acd9fb2075c02f66 1863 1836 2020-09-13T12:47:13Z Punkduck 38 /* MakeHuman for developers */ wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Running MakeHuman from source|Running MakeHuman from source]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Working with MakeHuman models in Blender == * [[Documentation:Corrective shape keys|Corrective shape keys]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:ClothesV2|Clothes]] * [[Documentation:MaterialsMakeSkin|Materials]] (Materials for clothes and other assets) * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == MakeWalk: General Background == * [[Documentation:MakeWalk|MakeWalk]] == MakeWalk: In Depth Tutorials == * [[Documentation:Running feet|Running feet]] * [[Documentation:Automatic animation|Automatic animation]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation: Plugin System|Plugin System]] * [[Documentation: OpenGL Notes|OpenGL Notes]] * [[Documentation: Basemesh|Basemesh]] * [[Documentation: Directory structure and core modules|Directory structure and core modules]] * [[Documentation: File formats and extensions|File formats and extensions]] * [[Documentation: Libraries and build procedures|Libraries and build procedures]] * [[Documentation: Development infrastructure|Development infrastructure]] * [[Documentation: Application design and Code overview|Application design and Code overview]] * [[Documentation: Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == * [[ Documentation:Collection of old documents|Previous versions of documentation]] are still available. d4e2f1e030cc2861b016f881ab25889b9e2b1b68 1836 1833 2020-07-26T09:10:04Z Punkduck 38 wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Running MakeHuman from source|Running MakeHuman from source]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Working with MakeHuman models in Blender == * [[Documentation:Corrective shape keys|Corrective shape keys]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:ClothesV2|Clothes]] * [[Documentation:MaterialsMakeSkin|Materials]] (Materials for clothes and other assets) * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == MakeWalk: General Background == * [[Documentation:MakeWalk|MakeWalk]] == MakeWalk: In Depth Tutorials == * [[Documentation:Running feet|Running feet]] * [[Documentation:Automatic animation|Automatic animation]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation: Plugin System|Plugin System]] * [[Documentation: OpenGL Notes|OpenGL Notes]] * [[Documentation: Directory structure and core modules|Directory structure and core modules]] * [[Documentation: File formats and extensions|File formats and extensions]] * [[Documentation: Libraries and build procedures|Libraries and build procedures]] * [[Documentation: Development infrastructure|Development infrastructure]] * [[Documentation: Application design and Code overview|Application design and Code overview]] * [[Documentation: Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == * [[ Documentation:Collection of old documents|Previous versions of documentation]] are still available. 7bd3cce9c5b7587407a29a5f3222f521916146c0 1833 1830 2020-07-26T08:41:04Z Punkduck 38 wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Running MakeHuman from source|Running MakeHuman from source]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Working with MakeHuman models in Blender == * [[Documentation:Corrective shape keys|Corrective shape keys]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:ClothesV2|Clothes]] * [[Documentation:MaterialsMakeSkin|Materials]] (Materials for clothes and other assets) * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] ==MakeClothes V2: In-depth tutorials == * [[Documentation:Features of new Blender plugin|Features of new Blender plugin]] == MakeWalk: General Background == * [[Documentation:MakeWalk|MakeWalk]] == MakeWalk: In Depth Tutorials == * [[Documentation:Running feet|Running feet]] * [[Documentation:Automatic animation|Automatic animation]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation: Plugin System|Plugin System]] * [[Documentation: OpenGL Notes|OpenGL Notes]] * [[Documentation: Directory structure and core modules|Directory structure and core modules]] * [[Documentation: File formats and extensions|File formats and extensions]] * [[Documentation: Libraries and build procedures|Libraries and build procedures]] * [[Documentation: Development infrastructure|Development infrastructure]] * [[Documentation: Application design and Code overview|Application design and Code overview]] * [[Documentation: Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == * [[ Documentation:Collection of old documents|Previous versions of documentation]] are still available. 458991477e36849ce6391da8f38af7ff3009a5f2 1830 1801 2020-07-26T08:20:26Z Punkduck 38 wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Running MakeHuman from source|Running MakeHuman from source]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Working with MakeHuman models in Blender == * [[Documentation:Corrective shape keys|Corrective shape keys]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] ==MakeClothes: In-depth tutorials == * [[Documentation:Making a simple dress|Making a simple dress]] * [[Documentation:Making diapers for a baby|Making diapers for a baby]] * [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]] * [[Documentation:Modeling a sword|Modeling a sword]] ==MakeClothes V2: In-depth tutorials == * [[Documentation:Features of new Blender plugin|Features of new Blender plugin]] == MakeWalk: General Background == * [[Documentation:MakeWalk|MakeWalk]] == MakeWalk: In Depth Tutorials == * [[Documentation:Running feet|Running feet]] * [[Documentation:Automatic animation|Automatic animation]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation: Plugin System|Plugin System]] * [[Documentation: OpenGL Notes|OpenGL Notes]] * [[Documentation: Directory structure and core modules|Directory structure and core modules]] * [[Documentation: File formats and extensions|File formats and extensions]] * [[Documentation: Libraries and build procedures|Libraries and build procedures]] * [[Documentation: Development infrastructure|Development infrastructure]] * [[Documentation: Application design and Code overview|Application design and Code overview]] * [[Documentation: Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == * [[ Documentation:Collection of old documents|Previous versions of documentation]] are still available. 6f5a8035f2aadaea6b64bdf83fd87e158d9d719c 1801 1536 2020-06-21T13:41:14Z Punkduck 38 wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Running MakeHuman from source|Running MakeHuman from source]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Working with MakeHuman models in Blender == * [[Documentation:Corrective shape keys|Corrective shape keys]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] ==MakeClothes: In-depth tutorials == * [[Documentation:Making a simple dress|Making a simple dress]] * [[Documentation:Making diapers for a baby|Making diapers for a baby]] * [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]] * [[Documentation:Modeling a sword|Modeling a sword]] ==MakeClothes V2: In-depth tutorials == * [[Documentation:Features of new Blender plugin|Features of new Blender plugin]] == MakeWalk: General Background == * [[Documentation:MakeWalk|MakeWalk]] == MakeWalk: In Depth Tutorials == * [[Documentation:Running feet|Running feet]] * [[Documentation:Automatic animation|Automatic animation]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation: Plugin System|Plugin System]] * [[Documentation: OpenGL Notes|OpenGL Notes]] * [[Documentation: Directory structure and core modules|Directory structure and core modules]] * [[Documentation: File formats and extensions|File formats and extensions]] * [[Documentation: Libraries and build procedures|Libraries and build procedures]] * [[Documentation: Development infrastructure|Development infrastructure]] * [[Documentation: Application design and Code overview|Application design and Code overview]] * [[Documentation: Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. a17171127a38d9d2ff46eba6a357e5a31f7c5e19 1536 1472 2018-12-01T15:38:43Z Robbaer 12 /* MakeHuman for developers */ wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Running MakeHuman from source|Running MakeHuman from source]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Working with MakeHuman models in Blender == * [[Documentation:Corrective shape keys|Corrective shape keys]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] ==MakeClothes: In-depth tutorials == * [[Documentation:Making a simple dress|Making a simple dress]] * [[Documentation:Making diapers for a baby|Making diapers for a baby]] * [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]] * [[Documentation:Modeling a sword|Modeling a sword]] == MakeWalk: General Background == * [[Documentation:MakeWalk|MakeWalk]] == MakeWalk: In Depth Tutorials == * [[Documentation:Running feet|Running feet]] * [[Documentation:Automatic animation|Automatic animation]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation: Plugin System|Plugin System]] * [[Documentation: OpenGL Notes|OpenGL Notes]] * [[Documentation: Directory structure and core modules|Directory structure and core modules]] * [[Documentation: File formats and extensions|File formats and extensions]] * [[Documentation: Libraries and build procedures|Libraries and build procedures]] * [[Documentation: Development infrastructure|Development infrastructure]] * [[Documentation: Application design and Code overview|Application design and Code overview]] * [[Documentation: Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. 3ef6eca0683a3a771b9890eca16046a3779d61c5 1472 1349 2018-05-05T10:11:44Z Joepal 14 wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Running MakeHuman from source|Running MakeHuman from source]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Working with MakeHuman models in Blender == * [[Documentation:Corrective shape keys|Corrective shape keys]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] ==MakeClothes: In-depth tutorials == * [[Documentation:Making a simple dress|Making a simple dress]] * [[Documentation:Making diapers for a baby|Making diapers for a baby]] * [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]] * [[Documentation:Modeling a sword|Modeling a sword]] == MakeWalk: General Background == * [[Documentation:MakeWalk|MakeWalk]] == MakeWalk: In Depth Tutorials == * [[Documentation:Running feet|Running feet]] * [[Documentation:Automatic animation|Automatic animation]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. ad1023aab3fe6ae31ed10830352ac3376ad0d038 1349 1348 2017-03-14T23:53:44Z Robbaer 12 /* Other / unsorted */ wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Running MakeHuman from source|Running MakeHuman from source]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] ==MakeClothes: In-depth tutorials == * [[Documentation:Making a simple dress|Making a simple dress]] * [[Documentation:Making diapers for a baby|Making diapers for a baby]] * [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]] * [[Documentation:Modeling a sword|Modeling a sword]] == MakeWalk: General Background == * [[Documentation:MakeWalk|MakeWalk]] == MakeWalk: In Depth Tutorials == * [[Documentation:Running feet|Running feet]] * [[Documentation:Automatic animation|Automatic animation]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. fd5a7945ea46cc7838b510be4155cd49194ae7ea 1348 1219 2017-03-14T23:52:56Z Robbaer 12 wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Running MakeHuman from source|Running MakeHuman from source]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] ==MakeClothes: In-depth tutorials == * [[Documentation:Making a simple dress|Making a simple dress]] * [[Documentation:Making diapers for a baby|Making diapers for a baby]] * [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]] * [[Documentation:Modeling a sword|Modeling a sword]] == MakeWalk: General Background == * [[Documentation:MakeWalk|MakeWalk]] == MakeWalk: In Depth Tutorials == * [[Documentation:Running feet|Running feet]] * [[Documentation:Automatic animation|Automatic animation]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. 21847667bf2e360822f477063b53481c7bddf14e 1219 985 2016-11-12T18:15:12Z Joepal 14 /* In-depth tutorials: MakeClothes */ wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Running MakeHuman from source|Running MakeHuman from source]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == In-depth tutorials: MakeClothes == * [[Documentation:Making a simple dress|Making a simple dress]] * [[Documentation:Making diapers for a baby|Making diapers for a baby]] * [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]] * [[Documentation:Modeling a sword|Modeling a sword]] == In-depth tutorials: MakeWalk == * [[Documentation:Running feet|Running feet]] * [[Documentation:Automatic animation|Automatic animation]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. 1aa21d4f235b44e5dce31e02120c251cfa96f2fe 985 872 2016-05-31T07:50:13Z Joepal 14 wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Running MakeHuman from source|Running MakeHuman from source]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == In-depth tutorials: MakeClothes == * [[Documentation:Making a simple dress|Making a simple dress]] * [[Documentation:Making diapers for a baby|Making diapers for a baby]] * [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]] == In-depth tutorials: MakeWalk == * [[Documentation:Running feet|Running feet]] * [[Documentation:Automatic animation|Automatic animation]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. fcee1330fa426fde979c09b5bddcd376030be93a 872 857 2016-05-27T15:34:49Z Joepal 14 wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == In-depth tutorials: MakeClothes == * [[Documentation:Making a simple dress|Making a simple dress]] * [[Documentation:Making diapers for a baby|Making diapers for a baby]] * [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]] == In-depth tutorials: MakeWalk == * [[Documentation:Running feet|Running feet]] * [[Documentation:Automatic animation|Automatic animation]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. f728485e739b226be376db0e962d6aefbe0e3d2e 857 785 2016-05-26T12:49:42Z Joepal 14 /* In-depth tutorials: MakeClothes */ wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == In-depth tutorials: MakeClothes == * [[Documentation:Making a simple dress|Making a simple dress]] * [[Documentation:Making diapers for a baby|Making diapers for a baby]] * [[Documentation:Controlling the result with vertex groups|Controlling the result with vertex groups]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. f50d38a49ce9e01d3e1da73911accd7203574367 785 770 2016-05-26T11:19:10Z Joepal 14 wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == In-depth tutorials: MakeClothes == (find stuff that didn't make it in the drupal export) == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. bd9381b65c947552bd777439f26ef7398d717fac 770 769 2016-05-24T11:39:46Z Joepal 14 wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Downloading or creating new assets == * [[Documentation:What is an asset?|What is an asset?]] * [[Documentation:Finding and downloading more assets|Finding and downloading more assets]] * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == Interacting with the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. ab8099b13904e16fe2ba0208cb4b6c1ef6af9728 769 768 2016-05-24T11:37:18Z Joepal 14 /* Exporting your work to another application */ wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. 330b731c37eaf4c7789c56641c4cb8cdf98b2624 768 767 2016-05-24T11:36:58Z Joepal 14 /* Exporting your work to another application */ wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats|Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there|Saving models for Blender and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there|Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there|Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there|Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there|Saving models for OpenSim / Second Life and how to import them there]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. 972fd338a334c15b259414f25b6903daa35c8bbb 767 764 2016-05-24T11:35:30Z Joepal 14 wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] * [[Documentation:Installing MHX2|Installing MHX2]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. 812ae8ca044790242e41df92a1608ad52934b4b3 764 763 2016-05-24T11:28:36Z Joepal 14 /* Exporting your work to another application */ wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats]] * [[Documentation:Saving models for Blender and how to import them there]] * [[Documentation:Saving models for Maya and how to import them there]] * [[Documentation:Saving models for 3ds MAX and how to import them there]] * [[Documentation:Saving models for Unreal Engine and how to import them there]] * [[Documentation:Saving models for Unity and how to import them there]] * [[Documentation:Saving models for OpenSim / Second Life and how to import them there]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. 522669d77eb7956eeac0180c9056ac110aa21d38 763 756 2016-05-24T11:26:50Z Joepal 14 /* Exporting your work to another application */ wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats]] * [[Documentation:Saving models for, and importing them in Blender]] * [[Documentation:Saving models for, and importing them in Maya]] * [[Documentation:Saving models for, and importing them in 3ds Max]] * [[Documentation:Saving models for, and importing them in Unreal Engine]] * [[Documentation:Saving models for, and importing them in Unity]] * [[Documentation:Saving models for, and importing them in OpenSim / Second Life]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. 99cd46e679a94df2da14b0fd381e446fd80ae3e9 756 751 2016-05-24T11:08:44Z Joepal 14 wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Loading and saving|Loading and saving]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Exporting your work to another application == * [[Documentation:Exports and file formats]] * [[Documentation:Importing in Blender]] * [[Documentation:Importing in Maya]] * [[Documentation:Importing in 3ds Max]] * [[Documentation:Importing in Unreal Engine]] * [[Documentation:Importing in Unity]] * [[Documentation:Importing in OpenSim / Second Life]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. 33ee09dc94c104b340779fb82c5b24791f9e7f20 751 738 2016-05-24T07:53:40Z Joepal 14 wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] == Meta == * [[Documentation:Planning on how to restructure the documentation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. 01e5f5d4527f738f094e108c71169798390a76a7 738 733 2016-05-20T12:47:00Z Joepal 14 wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. 7b2d42c80b80dbde95961f75cdacc7bf4f5d6d59 733 732 2016-05-20T11:45:11Z Joepal 14 wikitext text/x-wiki == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. 4e782fe7c94f49d16321f92d3b6fa36e07268f3a 732 728 2016-05-20T11:44:16Z Joepal 14 wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) The following have been merged in other pages, but they are left here if something got lost in the translation: * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. 573acdbe11d7a018023534fbdc39e1274b9e02b8 728 727 2016-05-20T11:39:00Z Joepal 14 wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] * [[Technical notes on MakeHuman]] == Tutorials == * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} 4f9a4d1948074bbbfe239df23d81abc05fa5660e 727 722 2016-05-20T11:37:26Z Joepal 14 wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] == Tutorials == * [[Documentation:Texture painting a skin in blender|Texture painting a skin in blender]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] (most of this should now have been ported to separate pages as per above) == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> f7cc1d2006d2e6bb5a97c4bbfd4afff47c813356 722 716 2016-05-20T11:32:01Z Joepal 14 /* MakeHuman for developers */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] * [[Documentation:Getting started with MakeHuman code|Getting started with MakeHuman code]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 6901af9dd916052d400e635d5f3fe1fc1fce7627 716 715 2016-05-20T11:27:14Z Joepal 14 /* MakeHuman for developers */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> cb6853dfb83d0ca5b957f346a48d12779e27b0c4 715 708 2016-05-20T11:26:51Z Joepal 14 /* MakeHuman for developers */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Assets|Assets]] * [[Documentation:Other scripts|Other scripts]] * [[Documentation:General proceedings for making a package|General proceedings for making a package]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 2b30c4381d526786a9869efdf63fa90bf9a91777 708 706 2016-05-20T11:20:04Z Joepal 14 /* Other / unsorted */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Dependencies|Dependencies]] * [[Documentation:Assets|Assets]] * [[Documentation:Other scripts|Other scripts]] * [[Documentation:General proceedings for making a package|General proceedings for making a package]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] * [[Documentation:Translation|Translation]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> fb48daab99d4831a2aee626233140d8a5f7c3628 706 701 2016-05-20T11:17:56Z Joepal 14 wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] == MakeHuman for developers == * [[Documentation:Plugin System|Plugin System]] * [[Documentation:OpenGL Notes|OpenGL Notes]] * [[Documentation:Directory structure and core modules|Directory structure and core modules]] * [[Documentation:File formats and extensions|File formats and extensions]] * [[Documentation:Libraries and build procedures|Libraries and build procedures]] * [[Documentation:Dependencies|Dependencies]] * [[Documentation:Assets|Assets]] * [[Documentation:Other scripts|Other scripts]] * [[Documentation:General proceedings for making a package|General proceedings for making a package]] * [[Documentation:Development infrastructure|Development infrastructure]] * [[Documentation:Application design and Code overview|Application design and Code overview]] == Other / unsorted == * [[Documentation:MakeWalk|MakeWalk]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 9e8de174c1b8d52b498124f7819a3a0cdfefb3b6 701 699 2016-05-20T11:07:08Z Joepal 14 wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Creating new assets == * [[Documentation:Getting and installing BlenderTools|Getting and installing BlenderTools]] * [[Documentation:Targets|Targets]] * [[Documentation:Clothes|Clothes]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> ac2269eb87df00fec0cd7ad4d42c8a473080ba47 699 697 2016-05-20T11:04:29Z Joepal 14 wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Getting help and resources from the community == * [[Documentation:Asking for help|Asking for help]] * [[Documentation:Reporting a bug|Reporting a bug]] * [[Documentation:Finding more assets|Finding more assets]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> e3e0dcaca3e5616f52b496bfa6ce2efaac9b7b87 697 695 2016-05-20T09:07:24Z Joepal 14 wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:Configuration and settings|Configuration and settings]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> b87e1ead27886510f5420f9c4cc1a78d8c70221b 695 692 2016-05-20T09:06:08Z Joepal 14 wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Working with the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] * [[Documentation:Rendering your work|Rendering your work]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 24520d19cf0783eb5113c9b7fc398a09c72e59a8 692 688 2016-05-20T09:04:14Z Joepal 14 /* Editing the human */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Editing the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies|Alternative topologies]] * [[Documentation:Skin and other materials|Skin and other materials]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> d2da389a20c6503a986f600423e11b26e9b2a6fd 688 685 2016-05-20T08:59:37Z Joepal 14 wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Editing the human == * [[Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom]] * [[Documentation:Hairstyles and Clothes|Hairstyles and Clothes]] * [[Documentation:Modeling the body|Modeling the body]] * [[Documentation:Alternative topologies]] * [[Documentation:Skin and other materials|Alternative topologies]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> a26bdcbd04bdc6d9d0f95ac0ef54207d182c4a1f 685 678 2016-05-20T08:37:00Z Joepal 14 /* General overview */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 3e276de24d5d3f43139d352b66dee20eb4a5360f 678 675 2016-05-20T08:27:27Z Joepal 14 wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == * [[Documentation:Installing MakeHuman|Installing MakeHuman]] * [[Documentation:The interface and its basic functions|The interface and its basic functions]] * [[Documentation:The toolbar|The toolbar]] * [[Documentation:The tabs|The tabs]] * [[Documentation:The sliders|The sliders]] * [[Documentation:Load, save and export|Load, save and export]] * [[Documentation:File formats|File formats]] * [[Documentation:Mesh formats|Mesh formats]] * [[Documentation:Rig formats|Rig formats]] * [[Documentation:Light maps and UV maps|Light maps and UV maps]] * [[Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera]] == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 38202f30c6a379e747eaa94eafdbeac23eb22a2a 675 615 2016-05-20T07:59:03Z Joepal 14 wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:What is MakeHuman?|What is MakeHuman?]]: A quick introduction to MakeHuman. * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> ea820f6e2f5137478273be6473622da7232906d5 615 540 2016-04-08T06:32:51Z Joepal 14 The web archive link doesn't work anymore wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools |} == Old documentation == The old documentation is available, but in a largely unformatted state: [[Documentation:Big dump from drupal]] == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 74cbcc175669b6ad3bb0dc6f42fddb1e7aead7b1 540 516 2015-10-16T10:27:52Z Duststorm 19 wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools |} == Old documentation == The old documentation and blog of makehuman.org is still available archived on http://web.archive.org/web/20150318151114/http://www.makehuman.org/documentation == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 4b6bc25a58de26b91506c09b5069b4d1bc14f149 516 499 2015-09-02T09:54:37Z Duststorm 19 /* Documentation for developers */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools |} == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == [[Technical notes on MakeHuman]] == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 996fdd8c1fea720eb76436673782890b990522e8 499 498 2015-08-29T12:16:48Z Fairytail 16 /* Blender tools */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools |} == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of the MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of the MakeClothes™ tool, to create custom clothes for MakeHuman. |} == Documentation for developers == None == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> f170539e80229d042b9f71f65af1142d6e98b1d2 498 483 2015-08-29T12:14:18Z Fairytail 16 wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools |} == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]:<br />Description of MakeClothes™ and its user interface. |} == Documentation for developers == None == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 9c398872317095083d5af101d783033c1e6c46a8 483 482 2015-08-29T09:20:27Z Fairytail 16 wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools |} == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. |} == Documentation for developers == None == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]:<br />Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> cfc1c3bac8f8e3f51516cd06a2322d715b80193d 482 481 2015-08-29T09:08:41Z Fairytail 16 /* Tutorials */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools |} == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. |} == Documentation for developers == None == Tutorials == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] |} == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]:<br />Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 0902171fff27ad61fb6bd8e80757af8e810dfecc 481 480 2015-08-29T09:08:07Z Fairytail 16 /* Introduction */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools |} == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. |} == Documentation for developers == None == Tutorials == * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]:<br />Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> f58998be1419625f5cc1a25879b0fa4d2d79cafd 480 479 2015-08-29T09:07:43Z Fairytail 16 /* Blender tools */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools |} == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6EEE6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. |} == Documentation for developers == None == Tutorials == * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]:<br />Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 20a59a159e8e6ed630389afd2ab2089a76f9df67 479 478 2015-08-29T08:57:57Z Fairytail 16 /* Blender tools */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools |} == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. |} == Documentation for developers == None == Tutorials == * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]:<br />Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 8845d639ecafb573c9976409b20eb9a16c327b97 478 477 2015-08-29T08:54:57Z Fairytail 16 /* Introduction */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools |} == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]: MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]: An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]: An introduction to MakeWalk™ and the use of armatures. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]: An introduction to the MakeWalk™ utilities panel. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]: An introduction to MakeWalk™ target rigging. |} == Documentation for developers == None == Tutorials == * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]:<br />Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 9aa8e688020518906cf135df18e29a52100c7f5b 477 476 2015-08-29T08:53:27Z Fairytail 16 /* Blender tools */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]: MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]: An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]: An introduction to MakeWalk™ and the use of armatures. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]: An introduction to the MakeWalk™ utilities panel. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]: An introduction to MakeWalk™ target rigging. |} == Documentation for developers == None == Tutorials == * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]:<br />Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> cc7948a607f327fcdaf177b4e4694379783f8009 476 475 2015-08-29T08:52:35Z Fairytail 16 /* Unported stuff from Drupal */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]: MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]: An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]: An introduction to MakeWalk™ and the use of armatures. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]: An introduction to the MakeWalk™ utilities panel. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]: An introduction to MakeWalk™ target rigging. == Documentation for developers == None == Tutorials == * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] ==== General overview ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman |} ==== Define Human Characteristics ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library |} ==== Rendering Your Work ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering |} ==== Settings ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins |} ==== Tools and contributing methods ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]:<br />Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. |} ==== Reporting a Bug ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. |} ==== Developers' note ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman |} ==== Packager's notes ==== {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> aa47a70dcc29ac81e87957f68ff308872164d068 475 473 2015-08-29T08:47:05Z Fairytail 16 /* Tutorials */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]: MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]: An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]: An introduction to MakeWalk™ and the use of armatures. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]: An introduction to the MakeWalk™ utilities panel. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]: An introduction to MakeWalk™ target rigging. == Documentation for developers == None == Tutorials == * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| ==== General overview ==== * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering ==== Settings ==== * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]:<br />Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. ==== Developers' note ==== * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Documentation:MakeClothes:Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ Documentation:MakeClothes:Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Documentation:MakeTarget:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Documentation:MakeWalk:The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Documentation:MakeWalk:Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ Documentation:MakeWalk:Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ Documentation:MakeWalk:Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Documentation:MakeWalk:Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Documentation:MakeWalk:Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 291634d892e69693f65b8f45ce7e12ea9df6e4c4 473 472 2015-08-29T08:32:37Z Fairytail 16 /* Unported stuff from Drupal */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]: MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]: An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]: An introduction to MakeWalk™ and the use of armatures. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]: An introduction to the MakeWalk™ utilities panel. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]: An introduction to MakeWalk™ target rigging. == Documentation for developers == None == Tutorials == * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| ==== General overview ==== * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]]: <br />How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]]: <br />The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]]: <br />Navigating the scene using the orbital camera. * [[ Documentation:Load Save and Export|Load Save and Export ]]: <br />Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Documentation:Parametric Modelling|Parametric Modelling ]]: <br />A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]]: <br />Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]]: <br />How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]]: <br />Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]]: <br />MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]]: <br />This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]]: <br />How to set lights and how to see and save the rendering ==== Settings ==== * [[ Documentation:General|General ]]: <br />How to set the general preferences * [[ Documentation:Background|Background ]]: <br />How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]]: <br />Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]]: <br />Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]]: <br />Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]:<br />Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]]: <br />Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]]: <br />How to report bugs using the log files. ==== Developers' note ==== * [[ Documentation:Getting started|Getting started ]]: <br />The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]]: <br />A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]]: <br />Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]]: <br />The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]]: <br />Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]]: <br />Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]]: <br />Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]]: <br />How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]]: <br />Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Docution:Tutorial MH1.0 alpha8:Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]]: <br />A tutorial illustrating the MakeClothes workflow. * [[ Documentation:MakeClothes: Making a simple dress|MakeClothes: Making a simple dress ]]: <br />The basic MakeClothes workflow. * [[ DOcution:MakeClothes: Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]]: <br />The output of the clothes-making process depends on how vertex groups are assigned. * [[ Docution:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]]: <br />A practical example of custom target * [[ Docution:MakeWalk: The making of Running feet|MakeWalk: The making of Running feet ]]: <br />MakeWalk tutorial, focusing on the Edit Action panel. * [[ Docution:MakeWalk: Running feet scene 1|MakeWalk: Running feet scene 1 ]]: <br />Making an extended run on a plane. * [[ DOcution:MakeWalk: Running feet scene 2|MakeWalk: Running feet scene 2 ]]: <br />High heels and slopes. * [[ DOcution:MakeWalk: Running feet scene 3|MakeWalk: Running feet scene 3 ]]: <br />The race. * [[ Docution:MakeWalk: Running feet scene 4|MakeWalk: Running feet scene 4 ]]: <br />Rough terrain. * [[ Docution:MakeWalk: Automatic animation |MakeWalk: Automatic animation ]]: <br />Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 9ee3121fd270dfc41012154d9feecae0755faf64 472 471 2015-08-29T08:18:43Z Fairytail 16 /* Tools and contributing methods */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]: MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]: An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]: An introduction to MakeWalk™ and the use of armatures. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]: An introduction to the MakeWalk™ utilities panel. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]: An introduction to MakeWalk™ target rigging. == Documentation for developers == None == Tutorials == * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| ==== General overview ==== * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Documentation:Load Save and Export|Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Documentation:Parametric Modelling|Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]] How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]] Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ Documentation:General|General ]] How to set the general preferences * [[ Documentation:Background|Background ]] How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]] Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]:<br />Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]:<br />MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]:<br />An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]:<br />An introduction to MakeWalk™ and the use of armatures. Explaining the meaning and use of source and target armature. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]:<br />An introduction to the MakeWalk™ utilities panel: save and restore the defaults, manage actions, t-pose, etc. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]:<br />An introduction to MakeWalk™ target rigging. This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools:MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]]:<br />MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools:MHX default rigging|MHBlenderTools: MHX default rigging ]]:<br />If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools:MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]]:<br />The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools:MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]]:<br />The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]]:<br />Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]]:<br />MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]] Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]] How to report bugs using the log files. ==== Developers' note ==== * [[ Documentation:Getting started|Getting started ]] The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]] A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]] Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]] The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]] Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]] Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]] Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]] How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]] Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Docution:Tutorial MH1.0 alpha8:Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]] A tutorial illustrating the MakeClothes workflow. * [[ Documentation:MakeClothes: Making a simple dress|MakeClothes: Making a simple dress ]] The basic MakeClothes workflow. * [[ DOcution:MakeClothes: Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]] The output of the clothes-making process depends on how vertex groups are assigned. * [[ Docution:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]] A practical example of custom target * [[ Docution:MakeWalk: The making of Running feet|MakeWalk: The making of Running feet ]] MakeWalk tutorial, focusing on the Edit Action panel. * [[ Docution:MakeWalk: Running feet scene 1|MakeWalk: Running feet scene 1 ]] Making an extended run on a plane. * [[ DOcution:MakeWalk: Running feet scene 2|MakeWalk: Running feet scene 2 ]] High heels and slopes. * [[ DOcution:MakeWalk: Running feet scene 3|MakeWalk: Running feet scene 3 ]] The race. * [[ Docution:MakeWalk: Running feet scene 4|MakeWalk: Running feet scene 4 ]] Rough terrain. * [[ Docution:MakeWalk: Automatic animation |MakeWalk: Automatic animation ]] Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 9bd64992bdf8feab826b1c84e0f31cbcb45becb9 471 384 2015-08-29T07:44:30Z Fairytail 16 /* Blender tools */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools:MakeClothes|MHBlenderTools: MakeClothes ]]: Description of MakeClothes™ and its user interface. * [[ Documentation:MHBlenderTools:MakeWalk|MHBlenderTools: MakeWalk ]]: MakeWalk™ is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ** [[ Documentation:MHBlenderTools:MakeWalk GUI|MHBlenderTools: MakeWalk GUI ]]: An introduction to MakeWalk™ and its user interface. ** [[ Documentation:MHBlenderTools:MakeWalk Armatures|MHBlenderTools: MakeWalk Armatures ]]: An introduction to MakeWalk™ and the use of armatures. ** [[ Documentation:MHBlenderTools:MakeWalk Utilities|MHBlenderTools: MakeWalk Utilities ]]: An introduction to the MakeWalk™ utilities panel. ** [[ Documentation:MHBlenderTools:MakeWalk Retarget|MHBlenderTools: MakeWalk Retarget ]]: An introduction to MakeWalk™ target rigging. == Documentation for developers == None == Tutorials == * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| ==== General overview ==== * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Documentation:Load Save and Export|Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Documentation:Parametric Modelling|Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]] How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]] Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ Documentation:General|General ]] How to set the general preferences * [[ Documentation:Background|Background ]] How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]] Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ Documentation:MHBlenderTools: MakeClothes|MHBlenderTools: MakeClothes ]] Description of MakeClothes and its user interface. * [[ Documentation:MHBlenderTools: MakeWalk basic workflow|MHBlenderTools: MakeWalk basic workflow ]] MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. * [[ Documentation:MHBlenderTools: MakeWalk user interface|MHBlenderTools: MakeWalk user interface ]] Description of the GUI integrated in Blender. * [[ Documentation:MHBlenderTools: MakeWalk armatures|MHBlenderTools: MakeWalk armatures ]] Explain the meaning and use of source and target armature. * [[ Documentation:MHBlenderTools: MakeWalk utilities|MHBlenderTools: MakeWalk utilities ]] Utilities: save and restore the defaults, manage actions, t-pose, etc. * [[ Documentation:MHBlenderTools: MakeWalk troubleshooting.|MHBlenderTools: MakeWalk troubleshooting. ]] This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools: MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]] MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools: MHX default rigging|MHBlenderTools: MHX default rigging ]] If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools: MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]] The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools: MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]] The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]] Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]] MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]] Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]] How to report bugs using the log files. ==== Developers' note ==== * [[ Documentation:Getting started|Getting started ]] The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]] A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]] Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]] The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]] Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]] Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]] Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]] How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]] Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Docution:Tutorial MH1.0 alpha8:Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]] A tutorial illustrating the MakeClothes workflow. * [[ Documentation:MakeClothes: Making a simple dress|MakeClothes: Making a simple dress ]] The basic MakeClothes workflow. * [[ DOcution:MakeClothes: Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]] The output of the clothes-making process depends on how vertex groups are assigned. * [[ Docution:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]] A practical example of custom target * [[ Docution:MakeWalk: The making of Running feet|MakeWalk: The making of Running feet ]] MakeWalk tutorial, focusing on the Edit Action panel. * [[ Docution:MakeWalk: Running feet scene 1|MakeWalk: Running feet scene 1 ]] Making an extended run on a plane. * [[ DOcution:MakeWalk: Running feet scene 2|MakeWalk: Running feet scene 2 ]] High heels and slopes. * [[ DOcution:MakeWalk: Running feet scene 3|MakeWalk: Running feet scene 3 ]] The race. * [[ Docution:MakeWalk: Running feet scene 4|MakeWalk: Running feet scene 4 ]] Rough terrain. * [[ Docution:MakeWalk: Automatic animation |MakeWalk: Automatic animation ]] Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> b12980f5d5e6b2798b1e53e2434f62407e9de610 384 383 2015-08-14T14:49:42Z Joepal 14 /* Tutorials */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. == Documentation for developers == None == Tutorials == * [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| ==== General overview ==== * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Documentation:Load Save and Export|Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Documentation:Parametric Modelling|Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]] How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]] Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ Documentation:General|General ]] How to set the general preferences * [[ Documentation:Background|Background ]] How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]] Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ Documentation:MHBlenderTools: MakeClothes|MHBlenderTools: MakeClothes ]] Description of MakeClothes and its user interface. * [[ Documentation:MHBlenderTools: MakeWalk basic workflow|MHBlenderTools: MakeWalk basic workflow ]] MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. * [[ Documentation:MHBlenderTools: MakeWalk user interface|MHBlenderTools: MakeWalk user interface ]] Description of the GUI integrated in Blender. * [[ Documentation:MHBlenderTools: MakeWalk armatures|MHBlenderTools: MakeWalk armatures ]] Explain the meaning and use of source and target armature. * [[ Documentation:MHBlenderTools: MakeWalk utilities|MHBlenderTools: MakeWalk utilities ]] Utilities: save and restore the defaults, manage actions, t-pose, etc. * [[ Documentation:MHBlenderTools: MakeWalk troubleshooting.|MHBlenderTools: MakeWalk troubleshooting. ]] This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools: MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]] MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools: MHX default rigging|MHBlenderTools: MHX default rigging ]] If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools: MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]] The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools: MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]] The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]] Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]] MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]] Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]] How to report bugs using the log files. ==== Developers' note ==== * [[ Documentation:Getting started|Getting started ]] The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]] A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]] Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]] The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]] Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]] Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]] Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]] How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]] Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Docution:Tutorial MH1.0 alpha8:Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]] A tutorial illustrating the MakeClothes workflow. * [[ Documentation:MakeClothes: Making a simple dress|MakeClothes: Making a simple dress ]] The basic MakeClothes workflow. * [[ DOcution:MakeClothes: Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]] The output of the clothes-making process depends on how vertex groups are assigned. * [[ Docution:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]] A practical example of custom target * [[ Docution:MakeWalk: The making of Running feet|MakeWalk: The making of Running feet ]] MakeWalk tutorial, focusing on the Edit Action panel. * [[ Docution:MakeWalk: Running feet scene 1|MakeWalk: Running feet scene 1 ]] Making an extended run on a plane. * [[ DOcution:MakeWalk: Running feet scene 2|MakeWalk: Running feet scene 2 ]] High heels and slopes. * [[ DOcution:MakeWalk: Running feet scene 3|MakeWalk: Running feet scene 3 ]] The race. * [[ Docution:MakeWalk: Running feet scene 4|MakeWalk: Running feet scene 4 ]] Rough terrain. * [[ Docution:MakeWalk: Automatic animation |MakeWalk: Automatic animation ]] Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 0329ff6f0b9ddd431f92691a521ee930e8e335d4 383 176 2015-08-14T14:49:07Z Joepal 14 /* Tutorials */ wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. == Documentation for developers == None == Tutorials == * [[Documentation:Texture painting a skin in blender]] == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| ==== General overview ==== * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Documentation:Load Save and Export|Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Documentation:Parametric Modelling|Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]] How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]] Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ Documentation:General|General ]] How to set the general preferences * [[ Documentation:Background|Background ]] How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]] Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ Documentation:MHBlenderTools: MakeClothes|MHBlenderTools: MakeClothes ]] Description of MakeClothes and its user interface. * [[ Documentation:MHBlenderTools: MakeWalk basic workflow|MHBlenderTools: MakeWalk basic workflow ]] MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. * [[ Documentation:MHBlenderTools: MakeWalk user interface|MHBlenderTools: MakeWalk user interface ]] Description of the GUI integrated in Blender. * [[ Documentation:MHBlenderTools: MakeWalk armatures|MHBlenderTools: MakeWalk armatures ]] Explain the meaning and use of source and target armature. * [[ Documentation:MHBlenderTools: MakeWalk utilities|MHBlenderTools: MakeWalk utilities ]] Utilities: save and restore the defaults, manage actions, t-pose, etc. * [[ Documentation:MHBlenderTools: MakeWalk troubleshooting.|MHBlenderTools: MakeWalk troubleshooting. ]] This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools: MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]] MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools: MHX default rigging|MHBlenderTools: MHX default rigging ]] If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools: MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]] The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools: MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]] The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]] Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]] MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]] Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]] How to report bugs using the log files. ==== Developers' note ==== * [[ Documentation:Getting started|Getting started ]] The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]] A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]] Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]] The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]] Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]] Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]] Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]] How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]] Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Docution:Tutorial MH1.0 alpha8:Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]] A tutorial illustrating the MakeClothes workflow. * [[ Documentation:MakeClothes: Making a simple dress|MakeClothes: Making a simple dress ]] The basic MakeClothes workflow. * [[ DOcution:MakeClothes: Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]] The output of the clothes-making process depends on how vertex groups are assigned. * [[ Docution:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]] A practical example of custom target * [[ Docution:MakeWalk: The making of Running feet|MakeWalk: The making of Running feet ]] MakeWalk tutorial, focusing on the Edit Action panel. * [[ Docution:MakeWalk: Running feet scene 1|MakeWalk: Running feet scene 1 ]] Making an extended run on a plane. * [[ DOcution:MakeWalk: Running feet scene 2|MakeWalk: Running feet scene 2 ]] High heels and slopes. * [[ DOcution:MakeWalk: Running feet scene 3|MakeWalk: Running feet scene 3 ]] The race. * [[ Docution:MakeWalk: Running feet scene 4|MakeWalk: Running feet scene 4 ]] Rough terrain. * [[ Docution:MakeWalk: Automatic animation |MakeWalk: Automatic animation ]] Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 131817606fa8a24a95b40923b4816ff606082e2f 176 175 2015-07-25T07:10:53Z Joepal 14 wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. == Documentation for developers == None == Tutorials == None == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| ==== General overview ==== * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Documentation:Load Save and Export|Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Documentation:Parametric Modelling|Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]] How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]] Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ Documentation:General|General ]] How to set the general preferences * [[ Documentation:Background|Background ]] How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]] Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ Documentation:MHBlenderTools: MakeClothes|MHBlenderTools: MakeClothes ]] Description of MakeClothes and its user interface. * [[ Documentation:MHBlenderTools: MakeWalk basic workflow|MHBlenderTools: MakeWalk basic workflow ]] MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. * [[ Documentation:MHBlenderTools: MakeWalk user interface|MHBlenderTools: MakeWalk user interface ]] Description of the GUI integrated in Blender. * [[ Documentation:MHBlenderTools: MakeWalk armatures|MHBlenderTools: MakeWalk armatures ]] Explain the meaning and use of source and target armature. * [[ Documentation:MHBlenderTools: MakeWalk utilities|MHBlenderTools: MakeWalk utilities ]] Utilities: save and restore the defaults, manage actions, t-pose, etc. * [[ Documentation:MHBlenderTools: MakeWalk troubleshooting.|MHBlenderTools: MakeWalk troubleshooting. ]] This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools: MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]] MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools: MHX default rigging|MHBlenderTools: MHX default rigging ]] If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools: MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]] The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools: MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]] The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]] Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]] MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]] Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]] How to report bugs using the log files. ==== Developers' note ==== * [[ Documentation:Getting started|Getting started ]] The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]] A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]] Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]] The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]] Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]] Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]] Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]] How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]] Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Docution:Tutorial MH1.0 alpha8:Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]] A tutorial illustrating the MakeClothes workflow. * [[ Documentation:MakeClothes: Making a simple dress|MakeClothes: Making a simple dress ]] The basic MakeClothes workflow. * [[ DOcution:MakeClothes: Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]] The output of the clothes-making process depends on how vertex groups are assigned. * [[ Docution:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]] A practical example of custom target * [[ Docution:MakeWalk: The making of Running feet|MakeWalk: The making of Running feet ]] MakeWalk tutorial, focusing on the Edit Action panel. * [[ Docution:MakeWalk: Running feet scene 1|MakeWalk: Running feet scene 1 ]] Making an extended run on a plane. * [[ DOcution:MakeWalk: Running feet scene 2|MakeWalk: Running feet scene 2 ]] High heels and slopes. * [[ DOcution:MakeWalk: Running feet scene 3|MakeWalk: Running feet scene 3 ]] The race. * [[ Docution:MakeWalk: Running feet scene 4|MakeWalk: Running feet scene 4 ]] Rough terrain. * [[ Docution:MakeWalk: Automatic animation |MakeWalk: Automatic animation ]] Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 80531523f13a0b104d7bb2a1e28cd476a2937a63 175 174 2015-07-25T07:09:49Z Joepal 14 wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. == Documentation for developers == None == Tutorials == None == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| ==== General overview ==== * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Documentation:Load Save and Export|Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Documentation:Parametric Modelling|Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]] How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]] Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ Documentation:General|General ]] How to set the general preferences * [[ Documentation:Background|Background ]] How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]] Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]] Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools: MakeClothes|MHBlenderTools: MakeClothes ]] Description of MakeClothes and its user interface. * [[ Documentation:MHBlenderTools: MakeWalk basic workflow|MHBlenderTools: MakeWalk basic workflow ]] MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. * [[ Documentation:MHBlenderTools: MakeWalk user interface|MHBlenderTools: MakeWalk user interface ]] Description of the GUI integrated in Blender. * [[ Documentation:MHBlenderTools: MakeWalk armatures|MHBlenderTools: MakeWalk armatures ]] Explain the meaning and use of source and target armature. * [[ Documentation:MHBlenderTools: MakeWalk utilities|MHBlenderTools: MakeWalk utilities ]] Utilities: save and restore the defaults, manage actions, t-pose, etc. * [[ Documentation:MHBlenderTools: MakeWalk troubleshooting.|MHBlenderTools: MakeWalk troubleshooting. ]] This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools: MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]] MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools: MHX default rigging|MHBlenderTools: MHX default rigging ]] If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools: MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]] The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools: MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]] The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]] Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]] MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]] Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]] How to report bugs using the log files. ==== Developers' note ==== * [[ Documentation:Getting started|Getting started ]] The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]] A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]] Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]] The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]] Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]] Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]] Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]] How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]] Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Docution:Tutorial MH1.0 alpha8:Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]] A tutorial illustrating the MakeClothes workflow. * [[ Documentation:MakeClothes: Making a simple dress|MakeClothes: Making a simple dress ]] The basic MakeClothes workflow. * [[ DOcution:MakeClothes: Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]] The output of the clothes-making process depends on how vertex groups are assigned. * [[ Docution:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]] A practical example of custom target * [[ Docution:MakeWalk: The making of Running feet|MakeWalk: The making of Running feet ]] MakeWalk tutorial, focusing on the Edit Action panel. * [[ Docution:MakeWalk: Running feet scene 1|MakeWalk: Running feet scene 1 ]] Making an extended run on a plane. * [[ DOcution:MakeWalk: Running feet scene 2|MakeWalk: Running feet scene 2 ]] High heels and slopes. * [[ DOcution:MakeWalk: Running feet scene 3|MakeWalk: Running feet scene 3 ]] The race. * [[ Docution:MakeWalk: Running feet scene 4|MakeWalk: Running feet scene 4 ]] Rough terrain. * [[ Docution:MakeWalk: Automatic animation |MakeWalk: Automatic animation ]] Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> b367e881f5df1418cb4ceffbe51f7bda1c43a5bd 174 173 2015-07-25T07:08:56Z Joepal 14 wikitext text/x-wiki These are documentation fragments which have been ported. They may still miss some images == Introduction == * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools == General overview == None == Defining human characteristics == None == Rendering your work == None == Settings == None == Blender tools == * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. == Documentation for developers == None == Tutorials == None == Unported stuff from Drupal == This is stuff which haven't been ported yet. [[Documentation:Big dump from drupal]] {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| ==== Introduction ==== * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]] An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]] The various licenses that apply to MakeHuman and External tools ==== General overview ==== * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Documentation:Load Save and Export|Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Documentation:Parametric Modelling|Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]] How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]] Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ Documentation:General|General ]] How to set the general preferences * [[ Documentation:Background|Background ]] How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]] Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]] Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools: MakeClothes|MHBlenderTools: MakeClothes ]] Description of MakeClothes and its user interface. * [[ Documentation:MHBlenderTools: MakeWalk basic workflow|MHBlenderTools: MakeWalk basic workflow ]] MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. * [[ Documentation:MHBlenderTools: MakeWalk user interface|MHBlenderTools: MakeWalk user interface ]] Description of the GUI integrated in Blender. * [[ Documentation:MHBlenderTools: MakeWalk armatures|MHBlenderTools: MakeWalk armatures ]] Explain the meaning and use of source and target armature. * [[ Documentation:MHBlenderTools: MakeWalk utilities|MHBlenderTools: MakeWalk utilities ]] Utilities: save and restore the defaults, manage actions, t-pose, etc. * [[ Documentation:MHBlenderTools: MakeWalk troubleshooting.|MHBlenderTools: MakeWalk troubleshooting. ]] This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools: MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]] MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools: MHX default rigging|MHBlenderTools: MHX default rigging ]] If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools: MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]] The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools: MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]] The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]] Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]] MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]] Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]] How to report bugs using the log files. ==== Developers' note ==== * [[ Documentation:Getting started|Getting started ]] The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]] A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]] Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]] The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]] Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]] Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]] Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]] How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]] Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Docution:Tutorial MH1.0 alpha8:Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]] A tutorial illustrating the MakeClothes workflow. * [[ Documentation:MakeClothes: Making a simple dress|MakeClothes: Making a simple dress ]] The basic MakeClothes workflow. * [[ DOcution:MakeClothes: Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]] The output of the clothes-making process depends on how vertex groups are assigned. * [[ Docution:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]] A practical example of custom target * [[ Docution:MakeWalk: The making of Running feet|MakeWalk: The making of Running feet ]] MakeWalk tutorial, focusing on the Edit Action panel. * [[ Docution:MakeWalk: Running feet scene 1|MakeWalk: Running feet scene 1 ]] Making an extended run on a plane. * [[ DOcution:MakeWalk: Running feet scene 2|MakeWalk: Running feet scene 2 ]] High heels and slopes. * [[ DOcution:MakeWalk: Running feet scene 3|MakeWalk: Running feet scene 3 ]] The race. * [[ Docution:MakeWalk: Running feet scene 4|MakeWalk: Running feet scene 4 ]] Rough terrain. * [[ Docution:MakeWalk: Automatic animation |MakeWalk: Automatic animation ]] Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 57ace8e9b3fcf165a05dfd2204f4145bf29e738c 173 41 2015-07-25T07:07:55Z Joepal 14 wikitext text/x-wiki == Documentation which has been mostly ported == These are documentation fragments which have been ported. They may still miss some images === Introduction === * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]]: MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]]: The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]]: An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]]: The various licenses that apply to MakeHuman and External tools === General overview === None === Defining human characteristics === None === Rendering your work === None === Settings === None === Blender tools === * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]: How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]]: Description of MakeTarget™ tool, to create custom morphings for MakeHuman. === Documentation for developers === None === Tutorials === None == Unported stuff from Drupal == [[Documentation:Big dump from drupal]] {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| ==== Introduction ==== * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]] An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]] The various licenses that apply to MakeHuman and External tools ==== General overview ==== * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Documentation:Load Save and Export|Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Documentation:Parametric Modelling|Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]] How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]] Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ Documentation:General|General ]] How to set the general preferences * [[ Documentation:Background|Background ]] How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]] Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]] Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools: MakeClothes|MHBlenderTools: MakeClothes ]] Description of MakeClothes and its user interface. * [[ Documentation:MHBlenderTools: MakeWalk basic workflow|MHBlenderTools: MakeWalk basic workflow ]] MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. * [[ Documentation:MHBlenderTools: MakeWalk user interface|MHBlenderTools: MakeWalk user interface ]] Description of the GUI integrated in Blender. * [[ Documentation:MHBlenderTools: MakeWalk armatures|MHBlenderTools: MakeWalk armatures ]] Explain the meaning and use of source and target armature. * [[ Documentation:MHBlenderTools: MakeWalk utilities|MHBlenderTools: MakeWalk utilities ]] Utilities: save and restore the defaults, manage actions, t-pose, etc. * [[ Documentation:MHBlenderTools: MakeWalk troubleshooting.|MHBlenderTools: MakeWalk troubleshooting. ]] This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools: MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]] MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools: MHX default rigging|MHBlenderTools: MHX default rigging ]] If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools: MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]] The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools: MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]] The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]] Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]] MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]] Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]] How to report bugs using the log files. ==== Developers' note ==== * [[ Documentation:Getting started|Getting started ]] The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]] A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]] Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]] The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]] Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]] Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]] Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]] How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]] Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Docution:Tutorial MH1.0 alpha8:Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]] A tutorial illustrating the MakeClothes workflow. * [[ Documentation:MakeClothes: Making a simple dress|MakeClothes: Making a simple dress ]] The basic MakeClothes workflow. * [[ DOcution:MakeClothes: Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]] The output of the clothes-making process depends on how vertex groups are assigned. * [[ Docution:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]] A practical example of custom target * [[ Docution:MakeWalk: The making of Running feet|MakeWalk: The making of Running feet ]] MakeWalk tutorial, focusing on the Edit Action panel. * [[ Docution:MakeWalk: Running feet scene 1|MakeWalk: Running feet scene 1 ]] Making an extended run on a plane. * [[ DOcution:MakeWalk: Running feet scene 2|MakeWalk: Running feet scene 2 ]] High heels and slopes. * [[ DOcution:MakeWalk: Running feet scene 3|MakeWalk: Running feet scene 3 ]] The race. * [[ Docution:MakeWalk: Running feet scene 4|MakeWalk: Running feet scene 4 ]] Rough terrain. * [[ Docution:MakeWalk: Automatic animation |MakeWalk: Automatic animation ]] Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> db8ed6d133ab05627bc5e4b007c64eac93ebba1b 41 34 2015-07-01T10:03:16Z Joepal1 1 /* Makehuman Manual */ wikitext text/x-wiki === Makehuman Manual === [[Documentation:Big dump from drupal]] {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| ==== Introduction ==== * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]] An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]] The various licenses that apply to MakeHuman and External tools ==== General overview ==== * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Documentation:Load Save and Export|Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Documentation:Parametric Modelling|Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]] How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]] Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ Documentation:General|General ]] How to set the general preferences * [[ Documentation:Background|Background ]] How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]] Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]] Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools: MakeClothes|MHBlenderTools: MakeClothes ]] Description of MakeClothes and its user interface. * [[ Documentation:MHBlenderTools: MakeWalk basic workflow|MHBlenderTools: MakeWalk basic workflow ]] MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. * [[ Documentation:MHBlenderTools: MakeWalk user interface|MHBlenderTools: MakeWalk user interface ]] Description of the GUI integrated in Blender. * [[ Documentation:MHBlenderTools: MakeWalk armatures|MHBlenderTools: MakeWalk armatures ]] Explain the meaning and use of source and target armature. * [[ Documentation:MHBlenderTools: MakeWalk utilities|MHBlenderTools: MakeWalk utilities ]] Utilities: save and restore the defaults, manage actions, t-pose, etc. * [[ Documentation:MHBlenderTools: MakeWalk troubleshooting.|MHBlenderTools: MakeWalk troubleshooting. ]] This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools: MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]] MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools: MHX default rigging|MHBlenderTools: MHX default rigging ]] If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools: MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]] The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools: MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]] The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]] Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]] MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]] Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]] How to report bugs using the log files. ==== Developers' note ==== * [[ Documentation:Getting started|Getting started ]] The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]] A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]] Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]] The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]] Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]] Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]] Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]] How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]] Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Docution:Tutorial MH1.0 alpha8:Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]] A tutorial illustrating the MakeClothes workflow. * [[ Documentation:MakeClothes: Making a simple dress|MakeClothes: Making a simple dress ]] The basic MakeClothes workflow. * [[ DOcution:MakeClothes: Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]] The output of the clothes-making process depends on how vertex groups are assigned. * [[ Docution:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]] A practical example of custom target * [[ Docution:MakeWalk: The making of Running feet|MakeWalk: The making of Running feet ]] MakeWalk tutorial, focusing on the Edit Action panel. * [[ Docution:MakeWalk: Running feet scene 1|MakeWalk: Running feet scene 1 ]] Making an extended run on a plane. * [[ DOcution:MakeWalk: Running feet scene 2|MakeWalk: Running feet scene 2 ]] High heels and slopes. * [[ DOcution:MakeWalk: Running feet scene 3|MakeWalk: Running feet scene 3 ]] The race. * [[ Docution:MakeWalk: Running feet scene 4|MakeWalk: Running feet scene 4 ]] Rough terrain. * [[ Docution:MakeWalk: Automatic animation |MakeWalk: Automatic animation ]] Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 540efbdd2ed20afdd870517c34d2d494ba9f193d 34 33 2015-06-30T18:52:25Z Aiena1 3 wikitext text/x-wiki === Makehuman Manual === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| ==== Introduction ==== * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]] An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]] The various licenses that apply to MakeHuman and External tools ==== General overview ==== * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Documentation:Load Save and Export|Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Documentation:Parametric Modelling|Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]] How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]] Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ Documentation:General|General ]] How to set the general preferences * [[ Documentation:Background|Background ]] How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]] Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]] Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools: MakeClothes|MHBlenderTools: MakeClothes ]] Description of MakeClothes and its user interface. * [[ Documentation:MHBlenderTools: MakeWalk basic workflow|MHBlenderTools: MakeWalk basic workflow ]] MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. * [[ Documentation:MHBlenderTools: MakeWalk user interface|MHBlenderTools: MakeWalk user interface ]] Description of the GUI integrated in Blender. * [[ Documentation:MHBlenderTools: MakeWalk armatures|MHBlenderTools: MakeWalk armatures ]] Explain the meaning and use of source and target armature. * [[ Documentation:MHBlenderTools: MakeWalk utilities|MHBlenderTools: MakeWalk utilities ]] Utilities: save and restore the defaults, manage actions, t-pose, etc. * [[ Documentation:MHBlenderTools: MakeWalk troubleshooting.|MHBlenderTools: MakeWalk troubleshooting. ]] This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools: MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]] MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools: MHX default rigging|MHBlenderTools: MHX default rigging ]] If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools: MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]] The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools: MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]] The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]] Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]] MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]] Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]] How to report bugs using the log files. ==== Developers' note ==== * [[ Documentation:Getting started|Getting started ]] The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]] A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]] Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]] The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]] Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]] Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]] Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]] How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]] Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Docution:Tutorial MH1.0 alpha8:Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]] A tutorial illustrating the MakeClothes workflow. * [[ Documentation:MakeClothes: Making a simple dress|MakeClothes: Making a simple dress ]] The basic MakeClothes workflow. * [[ DOcution:MakeClothes: Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]] The output of the clothes-making process depends on how vertex groups are assigned. * [[ Docution:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]] A practical example of custom target * [[ Docution:MakeWalk: The making of Running feet|MakeWalk: The making of Running feet ]] MakeWalk tutorial, focusing on the Edit Action panel. * [[ Docution:MakeWalk: Running feet scene 1|MakeWalk: Running feet scene 1 ]] Making an extended run on a plane. * [[ DOcution:MakeWalk: Running feet scene 2|MakeWalk: Running feet scene 2 ]] High heels and slopes. * [[ DOcution:MakeWalk: Running feet scene 3|MakeWalk: Running feet scene 3 ]] The race. * [[ Docution:MakeWalk: Running feet scene 4|MakeWalk: Running feet scene 4 ]] Rough terrain. * [[ Docution:MakeWalk: Automatic animation |MakeWalk: Automatic animation ]] Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> e19f92c88b50387e051d0f2f1f17a6202982e768 33 32 2015-06-30T18:13:43Z Aiena1 3 Update Index to conform to namespace standards, hide instructions for authors wikitext text/x-wiki === Makehuman Manual === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| ==== Introduction ==== * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]] An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]] The various licenses that apply to MakeHuman and External tools ==== General overview ==== * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Documentation:Load Save and Export|Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Documentation:Parametric Modelling|Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]] How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]] Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ Documentation:General|General ]] How to set the general preferences * [[ Documentation:Background|Background ]] How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]] Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]] Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools: MakeClothes|MHBlenderTools: MakeClothes ]] Description of MakeClothes and its user interface. * [[ Documentation:MHBlenderTools: MakeWalk basic workflow|MHBlenderTools: MakeWalk basic workflow ]] MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. * [[ Documentation:MHBlenderTools: MakeWalk user interface|MHBlenderTools: MakeWalk user interface ]] Description of the GUI integrated in Blender. * [[ Documentation:MHBlenderTools: MakeWalk armatures|MHBlenderTools: MakeWalk armatures ]] Explain the meaning and use of source and target armature. * [[ Documentation:MHBlenderTools: MakeWalk utilities|MHBlenderTools: MakeWalk utilities ]] Utilities: save and restore the defaults, manage actions, t-pose, etc. * [[ Documentation:MHBlenderTools: MakeWalk troubleshooting.|MHBlenderTools: MakeWalk troubleshooting. ]] This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools: MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]] MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools: MHX default rigging|MHBlenderTools: MHX default rigging ]] If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools: MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]] The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools: MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]] The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]] Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]] MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]] Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]] How to report bugs using the log files. ==== Developers' note ==== * [[ Documentation:Getting started|Getting started ]] The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]] A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]] Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]] The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]] Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]] Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]] Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]] How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]] Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Docution:Tutorial MH1.0 alpha8:Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]] A tutorial illustrating the MakeClothes workflow. * [[ Documentation:MakeClothes: Making a simple dress|MakeClothes: Making a simple dress ]] The basic MakeClothes workflow. * [[ DOcution:MakeClothes: Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]] The output of the clothes-making process depends on how vertex groups are assigned. * [[ Docution:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]] A practical example of custom target * [[ Docution:MakeWalk: The making of Running feet|MakeWalk: The making of Running feet ]] MakeWalk tutorial, focusing on the Edit Action panel. * [[ Docution:MakeWalk: Running feet scene 1|MakeWalk: Running feet scene 1 ]] Making an extended run on a plane. * [[ DOcution:MakeWalk: Running feet scene 2|MakeWalk: Running feet scene 2 ]] High heels and slopes. * [[ DOcution:MakeWalk: Running feet scene 3|MakeWalk: Running feet scene 3 ]] The race. * [[ Docution:MakeWalk: Running feet scene 4|MakeWalk: Running feet scene 4 ]] Rough terrain. * [[ Docution:MakeWalk: Automatic animation |MakeWalk: Automatic animation ]] Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ <!-- Author Notes: == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) --> 06a788bb099a14ebe1aaf1eddedddbb0153ed189 32 31 2015-06-30T18:10:06Z Aiena1 3 wikitext text/x-wiki === Makehuman Manual === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| ==== Introduction ==== * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]] An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]] The various licenses that apply to MakeHuman and External tools ==== General overview ==== * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Documentation:Load Save and Export|Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Documentation:Parametric Modelling|Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]] How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]] Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ Documentation:General|General ]] How to set the general preferences * [[ Documentation:Background|Background ]] How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]] Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]] Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools: MakeClothes|MHBlenderTools: MakeClothes ]] Description of MakeClothes and its user interface. * [[ Documentation:MHBlenderTools: MakeWalk basic workflow|MHBlenderTools: MakeWalk basic workflow ]] MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. * [[ Documentation:MHBlenderTools: MakeWalk user interface|MHBlenderTools: MakeWalk user interface ]] Description of the GUI integrated in Blender. * [[ Documentation:MHBlenderTools: MakeWalk armatures|MHBlenderTools: MakeWalk armatures ]] Explain the meaning and use of source and target armature. * [[ Documentation:MHBlenderTools: MakeWalk utilities|MHBlenderTools: MakeWalk utilities ]] Utilities: save and restore the defaults, manage actions, t-pose, etc. * [[ Documentation:MHBlenderTools: MakeWalk troubleshooting.|MHBlenderTools: MakeWalk troubleshooting. ]] This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools: MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]] MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools: MHX default rigging|MHBlenderTools: MHX default rigging ]] If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools: MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]] The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools: MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]] The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]] Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]] MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Documentation:Using the Makehuman bug tracker|Using the Makehuman bug tracker ]] Introduction to the new Makehuman bug tracker * [[ Documentation:Using the Makehuman log files for error reporting|Using the Makehuman log files for error reporting ]] How to report bugs using the log files. ==== Developers' note ==== * [[ Documentation:Getting started|Getting started ]] The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Documentation:Development infrastructure|Development infrastructure ]] A description of the MakeHuman development infrastructure. * [[ Documentation:OpenGL Notes|OpenGL Notes ]] Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Documentation:Development organization|Development organization ]] The organization of distributed development. * [[ Documentation:Libraries and build procedures|Libraries and build procedures ]] Describes the details of creating installable packages on major platforms * [[ Documentation:Directory structure and core modules|Directory structure and core modules ]] Summary of the MH API reference. * [[ Documentation:File formats and extensions|File formats and extensions ]] Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Documentation:Makehuman Plugin System|Makehuman Plugin System ]] How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Documentation:Packaging RPM's for Suse/Fedora using Open Build Service (OBS)|Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]] Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Docution:Tutorial MH1.0 alpha8:Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]] A tutorial illustrating the MakeClothes workflow. * [[ Documentation:MakeClothes: Making a simple dress|MakeClothes: Making a simple dress ]] The basic MakeClothes workflow. * [[ DOcution:MakeClothes: Controlling the result with vertex groups|MakeClothes: Controlling the result with vertex groups ]] The output of the clothes-making process depends on how vertex groups are assigned. * [[ Docution:Creating a Custom Target with MakeTarget Standalone|Creating a Custom Target with MakeTarget Standalone ]] A practical example of custom target * [[ Docution:MakeWalk: The making of Running feet|MakeWalk: The making of Running feet ]] MakeWalk tutorial, focusing on the Edit Action panel. * [[ Docution:MakeWalk: Running feet scene 1|MakeWalk: Running feet scene 1 ]] Making an extended run on a plane. * [[ DOcution:MakeWalk: Running feet scene 2|MakeWalk: Running feet scene 2 ]] High heels and slopes. * [[ DOcution:MakeWalk: Running feet scene 3|MakeWalk: Running feet scene 3 ]] The race. * [[ Docution:MakeWalk: Running feet scene 4|MakeWalk: Running feet scene 4 ]] Rough terrain. * [[ Docution:MakeWalk: Automatic animation |MakeWalk: Automatic animation ]] Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) 119d158797b931ae6f2a949d9688e766ec6752c3 31 30 2015-06-30T18:02:06Z Aiena1 3 wikitext text/x-wiki === Makehuman Manual === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| ==== Introduction ==== * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]] An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]] The various licenses that apply to MakeHuman and External tools ==== General overview ==== * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Documentation:Load Save and Export|Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Documentation:Parametric Modelling|Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]] How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]] Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Documentation:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Documentation:Scene and Viewer|Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ Documentation:General|General ]] How to set the general preferences * [[ Documentation:Background|Background ]] How to use backgrounds for reference. * [[ Documentation:Mouse|Mouse ]] Explanation of mouse settings * [[ Documentation:Shortcuts|Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Documentation:Plugins|Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] How to download and install the addons for Blender * [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]] Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ Documentation:MHBlenderTools: MakeClothes|MHBlenderTools: MakeClothes ]] Description of MakeClothes and its user interface. * [[ Documentation:MHBlenderTools: MakeWalk basic workflow|MHBlenderTools: MakeWalk basic workflow ]] MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. * [[ Documentation:MHBlenderTools: MakeWalk user interface|MHBlenderTools: MakeWalk user interface ]] Description of the GUI integrated in Blender. * [[ Documentation:MHBlenderTools: MakeWalk armatures|MHBlenderTools: MakeWalk armatures ]] Explain the meaning and use of source and target armature. * [[ Documentation:MHBlenderTools: MakeWalk utilities|MHBlenderTools: MakeWalk utilities ]] Utilities: save and restore the defaults, manage actions, t-pose, etc. * [[ Documentation:MHBlenderTools: MakeWalk troubleshooting.|MHBlenderTools: MakeWalk troubleshooting. ]] This document will describe common errors and corrective actions. * [[ Documentation:MHBlenderTools: MHX importer basic usage.|MHBlenderTools: MHX importer basic usage. ]] MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ Documentation:MHBlenderTools: MHX default rigging|MHBlenderTools: MHX default rigging ]] If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ Documentation:MHBlenderTools: MHX other rigging systems|MHBlenderTools: MHX other rigging systems ]] The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ Documentation:MHBlenderTools: MHX Layers and masks|MHBlenderTools: MHX Layers and masks ]] The mhx importer creates objects on the first four layers. * [[ Documentation:MakeTarget standalone|MakeTarget standalone ]] Converting files produced with the most common modelling software, without Blender. * [[ Documentation:GUI languages and translations.|GUI languages and translations. ]] MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Using the Makehuman bug tracker ]] Introduction to the new Makehuman bug tracker * [[ Using the Makehuman log files for error reporting ]] How to report bugs using the log files. ==== Developers' note ==== * [[ Getting started ]] The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Development infrastructure ]] A description of the MakeHuman development infrastructure. * [[ OpenGL Notes ]] Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Development organization ]] The organization of distributed development. * [[ Libraries and build procedures ]] Describes the details of creating installable packages on major platforms * [[ Directory structure and core modules ]] Summary of the MH API reference. * [[ File formats and extensions ]] Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Makehuman Plugin System ]] How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]] Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]] A tutorial illustrating the MakeClothes workflow. * [[ MakeClothes: Making a simple dress ]] The basic MakeClothes workflow. * [[ MakeClothes: Controlling the result with vertex groups ]] The output of the clothes-making process depends on how vertex groups are assigned. * [[ Creating a Custom Target with MakeTarget Standalone ]] A practical example of custom target * [[ MakeWalk: The making of Running feet ]] MakeWalk tutorial, focusing on the Edit Action panel. * [[ MakeWalk: Running feet scene 1 ]] Making an extended run on a plane. * [[ MakeWalk: Running feet scene 2 ]] High heels and slopes. * [[ MakeWalk: Running feet scene 3 ]] The race. * [[ MakeWalk: Running feet scene 4 ]] Rough terrain. * [[ MakeWalk: Automatic animation ]] Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) e9f327e2c4f155a6a8e0731fa808c208697105aa 30 29 2015-06-30T17:35:04Z Aiena1 3 wikitext text/x-wiki === Makehuman Manual === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| ==== Introduction ==== * [[Documentation:MakeHuman™ and its Purpose|MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Documentation:Short and Long Pipeline|Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Documentation:Professional mesh topology|Professional mesh topology ]] An overview of the professional topology provided by MakeHuman * [[ Documentation:Legal|Legal ]] The various licenses that apply to MakeHuman and External tools ==== General overview ==== * [[ Documentation:Install MakeHuman™|Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ Documentation:The Interface and basic functions.|The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Documentation:Zoom, pan and rotate using the orbital camera|Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Documentation:Load Save and Export|Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Documentation:Parametric Modelling|Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Documentation:Using MakeHuman Hairstyles and Clothes|Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Documentation:Skin and other materials|Skin and other materials ]] How to change skin and materials for hair and clothes. * [[ Documentation:Gender, Random, Measure and Custom|Gender, Random, Measure and Custom ]] Special modifiers. * [[ Documentation:Makehuman alternative topologies|Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Documtion:Quick rendering and advanced rendering|Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ General ]] How to set the general preferences * [[ Background ]] How to use backgrounds for reference. * [[ Mouse ]] Explanation of mouse settings * [[ Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ MHBlenderTools: Download and installation ]] How to download and install the addons for Blender * [[MHBlenderTools: MakeTarget ]] Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ MHBlenderTools: MakeClothes ]] Description of MakeClothes and its user interface. * [[ MHBlenderTools: MakeWalk basic workflow ]] MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. * [[ MHBlenderTools: MakeWalk user interface ]] Description of the GUI integrated in Blender. * [[ MHBlenderTools: MakeWalk armatures ]] Explain the meaning and use of source and target armature. * [[ MHBlenderTools: MakeWalk utilities ]] Utilities: save and restore the defaults, manage actions, t-pose, etc. * [[ MHBlenderTools: MakeWalk troubleshooting. ]] This document will describe common errors and corrective actions. * [[ MHBlenderTools: MHX importer basic usage. ]] MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ MHBlenderTools: MHX default rigging ]] If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ MHBlenderTools: MHX other rigging systems ]] The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ MHBlenderTools: MHX Layers and masks ]] The mhx importer creates objects on the first four layers. * [[ MakeTarget standalone ]] Converting files produced with the most common modelling software, without Blender. * [[ GUI languages and translations. ]] MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Using the Makehuman bug tracker ]] Introduction to the new Makehuman bug tracker * [[ Using the Makehuman log files for error reporting ]] How to report bugs using the log files. ==== Developers' note ==== * [[ Getting started ]] The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Development infrastructure ]] A description of the MakeHuman development infrastructure. * [[ OpenGL Notes ]] Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Development organization ]] The organization of distributed development. * [[ Libraries and build procedures ]] Describes the details of creating installable packages on major platforms * [[ Directory structure and core modules ]] Summary of the MH API reference. * [[ File formats and extensions ]] Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Makehuman Plugin System ]] How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]] Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]] A tutorial illustrating the MakeClothes workflow. * [[ MakeClothes: Making a simple dress ]] The basic MakeClothes workflow. * [[ MakeClothes: Controlling the result with vertex groups ]] The output of the clothes-making process depends on how vertex groups are assigned. * [[ Creating a Custom Target with MakeTarget Standalone ]] A practical example of custom target * [[ MakeWalk: The making of Running feet ]] MakeWalk tutorial, focusing on the Edit Action panel. * [[ MakeWalk: Running feet scene 1 ]] Making an extended run on a plane. * [[ MakeWalk: Running feet scene 2 ]] High heels and slopes. * [[ MakeWalk: Running feet scene 3 ]] The race. * [[ MakeWalk: Running feet scene 4 ]] Rough terrain. * [[ MakeWalk: Automatic animation ]] Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) 62d931f9740ab761dfcfbfbb54fd09fafbbad722 29 28 2015-06-29T22:31:35Z Aiena1 3 wikitext text/x-wiki === Makehuman Manual === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| ==== Introduction ==== * [[MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Professional mesh topology ]] An overview of the professional topology provided by MakeHuman * [[ Legal ]] The various licenses that apply to MakeHuman and External tools ==== General overview ==== * [[ Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Skin and other materials]] How to change skin and materials for hair and clothes. * [[ Gender, Random, Measure and Custom ]] Special modifiers. * [[ Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ General ]] How to set the general preferences * [[ Background ]] How to use backgrounds for reference. * [[ Mouse ]] Explanation of mouse settings * [[ Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ MHBlenderTools: Download and installation ]] How to download and install the addons for Blender * [[MHBlenderTools: MakeTarget ]] Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ MHBlenderTools: MakeClothes ]] Description of MakeClothes and its user interface. * [[ MHBlenderTools: MakeWalk basic workflow ]] MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. * [[ MHBlenderTools: MakeWalk user interface ]] Description of the GUI integrated in Blender. * [[ MHBlenderTools: MakeWalk armatures ]] Explain the meaning and use of source and target armature. * [[ MHBlenderTools: MakeWalk utilities ]] Utilities: save and restore the defaults, manage actions, t-pose, etc. * [[ MHBlenderTools: MakeWalk troubleshooting. ]] This document will describe common errors and corrective actions. * [[ MHBlenderTools: MHX importer basic usage. ]] MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ MHBlenderTools: MHX default rigging ]] If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ MHBlenderTools: MHX other rigging systems ]] The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ MHBlenderTools: MHX Layers and masks ]] The mhx importer creates objects on the first four layers. * [[ MakeTarget standalone ]] Converting files produced with the most common modelling software, without Blender. * [[ GUI languages and translations. ]] MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Using the Makehuman bug tracker ]] Introduction to the new Makehuman bug tracker * [[ Using the Makehuman log files for error reporting ]] How to report bugs using the log files. ==== Developers' note ==== * [[ Getting started ]] The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Development infrastructure ]] A description of the MakeHuman development infrastructure. * [[ OpenGL Notes ]] Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Development organization ]] The organization of distributed development. * [[ Libraries and build procedures ]] Describes the details of creating installable packages on major platforms * [[ Directory structure and core modules ]] Summary of the MH API reference. * [[ File formats and extensions ]] Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Makehuman Plugin System ]] How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]] Packaging procedure and setup. |} === Tutorials === {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| * [[ Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]] A tutorial illustrating the MakeClothes workflow. * [[ MakeClothes: Making a simple dress ]] The basic MakeClothes workflow. * [[ MakeClothes: Controlling the result with vertex groups ]] The output of the clothes-making process depends on how vertex groups are assigned. * [[ Creating a Custom Target with MakeTarget Standalone ]] A practical example of custom target * [[ MakeWalk: The making of Running feet ]] MakeWalk tutorial, focusing on the Edit Action panel. * [[ MakeWalk: Running feet scene 1 ]] Making an extended run on a plane. * [[ MakeWalk: Running feet scene 2 ]] High heels and slopes. * [[ MakeWalk: Running feet scene 3 ]] The race. * [[ MakeWalk: Running feet scene 4 ]] Rough terrain. * [[ MakeWalk: Automatic animation ]] Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) 05de4ce3ed955dcefef4b7c540571e46f45f4b21 28 27 2015-06-29T22:27:04Z Aiena1 3 /* Tools and contributing methods */ wikitext text/x-wiki {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| === Makehuman Manual === ==== Introduction ==== * [[MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Professional mesh topology ]] An overview of the professional topology provided by MakeHuman * [[ Legal ]] The various licenses that apply to MakeHuman and External tools ==== General overview ==== * [[ Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Skin and other materials]] How to change skin and materials for hair and clothes. * [[ Gender, Random, Measure and Custom ]] Special modifiers. * [[ Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ General ]] How to set the general preferences * [[ Background ]] How to use backgrounds for reference. * [[ Mouse ]] Explanation of mouse settings * [[ Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ MHBlenderTools: Download and installation ]] How to download and install the addons for Blender * [[MHBlenderTools: MakeTarget ]] Description of MakeTarget™ tool, to create custom morphings for MakeHuman. * [[ MHBlenderTools: MakeClothes ]] Description of MakeClothes and its user interface. * [[ MHBlenderTools: MakeWalk basic workflow ]] MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. * [[ MHBlenderTools: MakeWalk user interface ]] Description of the GUI integrated in Blender. * [[ MHBlenderTools: MakeWalk armatures ]] Explain the meaning and use of source and target armature. * [[ MHBlenderTools: MakeWalk utilities ]] Utilities: save and restore the defaults, manage actions, t-pose, etc. * [[ MHBlenderTools: MakeWalk troubleshooting. ]] This document will describe common errors and corrective actions. * [[ MHBlenderTools: MHX importer basic usage. ]] MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. * [[ MHBlenderTools: MHX default rigging ]] If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. * [[ MHBlenderTools: MHX other rigging systems ]] The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ MHBlenderTools: MHX Layers and masks ]] The mhx importer creates objects on the first four layers. * [[ MakeTarget standalone ]] Converting files produced with the most common modelling software, without Blender. * [[ GUI languages and translations. ]] MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Using the Makehuman bug tracker ]] Introduction to the new Makehuman bug tracker * [[ Using the Makehuman log files for error reporting ]] How to report bugs using the log files. ==== Developers' note ==== * [[ Getting started ]] The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Development infrastructure ]] A description of the MakeHuman development infrastructure. * [[ OpenGL Notes ]] Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Development organization ]] The organization of distributed development. * [[ Libraries and build procedures ]] Describes the details of creating installable packages on major platforms * [[ Directory structure and core modules ]] Summary of the MH API reference. * [[ File formats and extensions ]] Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Makehuman Plugin System ]] How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]] Packaging procedure and setup. ==== Tutorials ==== * [[ Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]] A tutorial illustrating the MakeClothes workflow. * [[ MakeClothes: Making a simple dress ]] The basic MakeClothes workflow. * [[ MakeClothes: Controlling the result with vertex groups ]] The output of the clothes-making process depends on how vertex groups are assigned. * [[ Creating a Custom Target with MakeTarget Standalone ]] A practical example of custom target * [[ MakeWalk: The making of Running feet ]] MakeWalk tutorial, focusing on the Edit Action panel. * [[ MakeWalk: Running feet scene 1 ]] Making an extended run on a plane. * [[ MakeWalk: Running feet scene 2 ]] High heels and slopes. * [[ MakeWalk: Running feet scene 3 ]] The race. * [[ MakeWalk: Running feet scene 4 ]] Rough terrain. * [[ MakeWalk: Automatic animation ]] Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) f5a61d75eb500187c7a60b5c63f89729f1d0d205 27 26 2015-06-29T22:25:12Z Aiena1 3 wikitext text/x-wiki {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| === Makehuman Manual === ==== Introduction ==== * [[MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Professional mesh topology ]] An overview of the professional topology provided by MakeHuman * [[ Legal ]] The various licenses that apply to MakeHuman and External tools ==== General overview ==== * [[ Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Skin and other materials]] How to change skin and materials for hair and clothes. * [[ Gender, Random, Measure and Custom ]] Special modifiers. * [[ Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ General ]] How to set the general preferences * [[ Background ]] How to use backgrounds for reference. * [[ Mouse ]] Explanation of mouse settings * [[ Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== * [[ MHBlenderTools: Download and installation How to download and install the addons for Blender ]] * [[MHBlenderTools: MakeTarget Description of MakeTarget™ tool, to create custom morphings for MakeHuman. ]] * [[ MHBlenderTools: MakeClothes Description of MakeClothes and its user interface. ]] * [[ MHBlenderTools: MakeWalk basic workflow MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ]] * [[ MHBlenderTools: MakeWalk user interface Description of the GUI integrated in Blender. ]] * [[ MHBlenderTools: MakeWalk armatures Explain the meaning and use of source and target armature. ]] * [[ MHBlenderTools: MakeWalk utilities Utilities: save and restore the defaults, manage actions, t-pose, etc. ]] * [[ MHBlenderTools: MakeWalk troubleshooting. This document will describe common errors and corrective actions. ]] * [[ MHBlenderTools: MHX importer basic usage. MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. ]] * [[ MHBlenderTools: MHX default rigging If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. ]] * [[ MHBlenderTools: MHX other rigging systems ]] The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender developed by Nathan Vegdahl). * [[ MHBlenderTools: MHX Layers and masks ]] The mhx importer creates objects on the first four layers. * [[ MakeTarget standalone ]] Converting files produced with the most common modelling software, without Blender. * [[ GUI languages and translations. ]] MakeHuman support a variety of languages. It's very easy to add translations. ==== Reporting a Bug ==== * [[ Using the Makehuman bug tracker ]] Introduction to the new Makehuman bug tracker * [[ Using the Makehuman log files for error reporting ]] How to report bugs using the log files. ==== Developers' note ==== * [[ Getting started ]] The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. * [[ Development infrastructure ]] A description of the MakeHuman development infrastructure. * [[ OpenGL Notes ]] Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. * [[ Development organization ]] The organization of distributed development. * [[ Libraries and build procedures ]] Describes the details of creating installable packages on major platforms * [[ Directory structure and core modules ]] Summary of the MH API reference. * [[ File formats and extensions ]] Describes the formats used internally for data and object storage. [CRUDE NOTES] * [[ Makehuman Plugin System ]] How to make a new plugin and use it in MakeHuman ==== Packager's notes ==== * [[ Packaging RPM's for Suse/Fedora using Open Build Service (OBS) ]] Packaging procedure and setup. ==== Tutorials ==== * [[ Tutorial MH1.0 alpha8 ]] * [[ [Alpha8] Making diapers for a baby. ]] A tutorial illustrating the MakeClothes workflow. * [[ MakeClothes: Making a simple dress ]] The basic MakeClothes workflow. * [[ MakeClothes: Controlling the result with vertex groups ]] The output of the clothes-making process depends on how vertex groups are assigned. * [[ Creating a Custom Target with MakeTarget Standalone ]] A practical example of custom target * [[ MakeWalk: The making of Running feet ]] MakeWalk tutorial, focusing on the Edit Action panel. * [[ MakeWalk: Running feet scene 1 ]] Making an extended run on a plane. * [[ MakeWalk: Running feet scene 2 ]] High heels and slopes. * [[ MakeWalk: Running feet scene 3 ]] The race. * [[ MakeWalk: Running feet scene 4 ]] Rough terrain. * [[ MakeWalk: Automatic animation ]] Tutorial on using the editing tools in MakeWalk. |} __NOTOC__ == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) a79af9744dc1c322adf135ac556f6fa241f52f8d 26 25 2015-06-29T22:18:22Z Aiena1 3 /* Settings */ wikitext text/x-wiki {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| === Makehuman Manual === ==== Introduction ==== * [[MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Professional mesh topology ]] An overview of the professional topology provided by MakeHuman * [[ Legal ]] The various licenses that apply to MakeHuman and External tools ==== General overview ==== * [[ Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Skin and other materials]] How to change skin and materials for hair and clothes. * [[ Gender, Random, Measure and Custom ]] Special modifiers. * [[ Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== * [[ General ]] How to set the general preferences * [[ Background ]] How to use backgrounds for reference. * [[ Mouse ]] Explanation of mouse settings * [[ Shortcuts ]] Configuration of shortcuts in Makehuman * [[ Plugins ]] Management of Makehuman plugins ==== Tools and contributing methods ==== [[ MHBlenderTools: Download and installation How to download and install the addons for Blender ]] [[MHBlenderTools: MakeTarget Description of MakeTarget™ tool, to create custom morphings for MakeHuman. ]] [[ MHBlenderTools: MakeClothes Description of MakeClothes and its user interface. ]] [[ MHBlenderTools: MakeWalk basic workflow MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ]] [[ MHBlenderTools: MakeWalk user interface Description of the GUI integrated in Blender. ]] [[ MHBlenderTools: MakeWalk armatures Explain the meaning and use of source and target armature. ]] [[ MHBlenderTools: MakeWalk utilities Utilities: save and restore the defaults, manage actions, t-pose, etc. ]] [[ MHBlenderTools: MakeWalk troubleshooting. This document will describe common errors and corrective actions. ]] [[ MHBlenderTools: MHX importer basic usage. MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. ]] [[ MHBlenderTools: MHX default rigging If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. ]] [[ MHBlenderTools: MHX other rigging systems The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender devoped by Nathan Vegdahl). ]] [[ MHBlenderTools: MHX Layers and masks The mhx importer creates objects on the first four layers. ]] [[ MakeTarget standalone Converting files produced with the most common modelling software, without Blender. ]] [[ GUI languages and translations. MakeHuman support a variety of languages. It's very easy to add translations. ]] ==== Reporting a Bug ==== [[ Using the Makehuman bug tracker Introduction to the new Makehuman bug tracker ]] [[ Using the Makehuman log files for error reporting How to report bugs using the log files. ]] ==== Developers' note ==== [[ Getting started The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. ]] [[ Development infrastructure A description of the MakeHuman development infrastructure. ]] [[ OpenGL Notes Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. ]] [[ Development organization The organization of distributed development. ]] [[ Libraries and build procedures Describes the details of creating installable packages on major platforms ]] [[ Directory structure and core modules Summary of the MH API reference. ]] [[ File formats and extensions Describes the formats used internally for data and object storage. [CRUDE NOTES] ]] [[ Makehuman Plugin System How to make a new plugin and use it in MakeHuman ]] ==== Packager's notes ==== [[ Packaging RPM's for Suse/Fedora using Open Build Service (OBS) Packaging procedure and setup. ]] ==== Tutorials ==== [[ Tutorial MH1.0 alpha8 ]] [[ [Alpha8] Making diapers for a baby. A tutorial illustrating the MakeClothes workflow. ]] [[ MakeClothes: Making a simple dress The basic MakeClothes workflow. ]] [[ MakeClothes: Controlling the result with vertex groups The output of the clothes-making process depends on how vertex groups are assigned. ]] [[ Creating a Custom Target with MakeTarget Standalone A practical example of custom target ]] [[ MakeWalk: The making of Running feet MakeWalk tutorial, focusing on the Edit Action panel. ]] [[ MakeWalk: Running feet scene 1 Making an extended run on a plane. ]] [[ MakeWalk: Running feet scene 2 High heels and slopes. ]] [[ MakeWalk: Running feet scene 3 The race. ]] [[ MakeWalk: Running feet scene 4 Rough terrain. ]] [[ MakeWalk: Automatic animation Tutorial on using the editing tools in MakeWalk. ]] [[ Advertisement ]] |} __NOTOC__ == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) 5fdb8ff88498f2519ba2af6649361536ecaee5df 25 24 2015-06-29T22:17:07Z Aiena1 3 /* Rendering Your Work */ wikitext text/x-wiki {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| === Makehuman Manual === ==== Introduction ==== * [[MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Professional mesh topology ]] An overview of the professional topology provided by MakeHuman * [[ Legal ]] The various licenses that apply to MakeHuman and External tools ==== General overview ==== * [[ Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Skin and other materials]] How to change skin and materials for hair and clothes. * [[ Gender, Random, Measure and Custom ]] Special modifiers. * [[ Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== * [[ Quick rendering and advanced rendering ]] This section explains how render the character in MakeHuman * [[ Scene and Viewer ]] How to set lights and how to see and save the rendering ==== Settings ==== [[ General How to set the general preferences ]] [[ Background How to use backgrounds for reference. ]] [[ Mouse Explanation of mouse settings ]] [[ Shortcuts Configuration of shortcuts in Makehuman ]] [[ Plugins Management of Makehuman plugins ]] ==== Tools and contributing methods ==== [[ MHBlenderTools: Download and installation How to download and install the addons for Blender ]] [[MHBlenderTools: MakeTarget Description of MakeTarget™ tool, to create custom morphings for MakeHuman. ]] [[ MHBlenderTools: MakeClothes Description of MakeClothes and its user interface. ]] [[ MHBlenderTools: MakeWalk basic workflow MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ]] [[ MHBlenderTools: MakeWalk user interface Description of the GUI integrated in Blender. ]] [[ MHBlenderTools: MakeWalk armatures Explain the meaning and use of source and target armature. ]] [[ MHBlenderTools: MakeWalk utilities Utilities: save and restore the defaults, manage actions, t-pose, etc. ]] [[ MHBlenderTools: MakeWalk troubleshooting. This document will describe common errors and corrective actions. ]] [[ MHBlenderTools: MHX importer basic usage. MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. ]] [[ MHBlenderTools: MHX default rigging If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. ]] [[ MHBlenderTools: MHX other rigging systems The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender devoped by Nathan Vegdahl). ]] [[ MHBlenderTools: MHX Layers and masks The mhx importer creates objects on the first four layers. ]] [[ MakeTarget standalone Converting files produced with the most common modelling software, without Blender. ]] [[ GUI languages and translations. MakeHuman support a variety of languages. It's very easy to add translations. ]] ==== Reporting a Bug ==== [[ Using the Makehuman bug tracker Introduction to the new Makehuman bug tracker ]] [[ Using the Makehuman log files for error reporting How to report bugs using the log files. ]] ==== Developers' note ==== [[ Getting started The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. ]] [[ Development infrastructure A description of the MakeHuman development infrastructure. ]] [[ OpenGL Notes Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. ]] [[ Development organization The organization of distributed development. ]] [[ Libraries and build procedures Describes the details of creating installable packages on major platforms ]] [[ Directory structure and core modules Summary of the MH API reference. ]] [[ File formats and extensions Describes the formats used internally for data and object storage. [CRUDE NOTES] ]] [[ Makehuman Plugin System How to make a new plugin and use it in MakeHuman ]] ==== Packager's notes ==== [[ Packaging RPM's for Suse/Fedora using Open Build Service (OBS) Packaging procedure and setup. ]] ==== Tutorials ==== [[ Tutorial MH1.0 alpha8 ]] [[ [Alpha8] Making diapers for a baby. A tutorial illustrating the MakeClothes workflow. ]] [[ MakeClothes: Making a simple dress The basic MakeClothes workflow. ]] [[ MakeClothes: Controlling the result with vertex groups The output of the clothes-making process depends on how vertex groups are assigned. ]] [[ Creating a Custom Target with MakeTarget Standalone A practical example of custom target ]] [[ MakeWalk: The making of Running feet MakeWalk tutorial, focusing on the Edit Action panel. ]] [[ MakeWalk: Running feet scene 1 Making an extended run on a plane. ]] [[ MakeWalk: Running feet scene 2 High heels and slopes. ]] [[ MakeWalk: Running feet scene 3 The race. ]] [[ MakeWalk: Running feet scene 4 Rough terrain. ]] [[ MakeWalk: Automatic animation Tutorial on using the editing tools in MakeWalk. ]] [[ Advertisement ]] |} __NOTOC__ == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) 03e4602d73e04aafafae8fb9fe30f3acfe2c6877 24 23 2015-06-29T22:16:21Z Aiena1 3 /* Define Human Characteristics */ wikitext text/x-wiki {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| === Makehuman Manual === ==== Introduction ==== * [[MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Professional mesh topology ]] An overview of the professional topology provided by MakeHuman * [[ Legal ]] The various licenses that apply to MakeHuman and External tools ==== General overview ==== * [[ Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== * [[ Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. * [[ Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group * [[ Skin and other materials]] How to change skin and materials for hair and clothes. * [[ Gender, Random, Measure and Custom ]] Special modifiers. * [[ Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== [[ Quick rendering and advanced rendering This section explains how render the character in MakeHuman ]] [[ Scene and Viewer How to set lights and how to see and save the rendering ]] ==== Settings ==== [[ General How to set the general preferences ]] [[ Background How to use backgrounds for reference. ]] [[ Mouse Explanation of mouse settings ]] [[ Shortcuts Configuration of shortcuts in Makehuman ]] [[ Plugins Management of Makehuman plugins ]] ==== Tools and contributing methods ==== [[ MHBlenderTools: Download and installation How to download and install the addons for Blender ]] [[MHBlenderTools: MakeTarget Description of MakeTarget™ tool, to create custom morphings for MakeHuman. ]] [[ MHBlenderTools: MakeClothes Description of MakeClothes and its user interface. ]] [[ MHBlenderTools: MakeWalk basic workflow MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ]] [[ MHBlenderTools: MakeWalk user interface Description of the GUI integrated in Blender. ]] [[ MHBlenderTools: MakeWalk armatures Explain the meaning and use of source and target armature. ]] [[ MHBlenderTools: MakeWalk utilities Utilities: save and restore the defaults, manage actions, t-pose, etc. ]] [[ MHBlenderTools: MakeWalk troubleshooting. This document will describe common errors and corrective actions. ]] [[ MHBlenderTools: MHX importer basic usage. MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. ]] [[ MHBlenderTools: MHX default rigging If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. ]] [[ MHBlenderTools: MHX other rigging systems The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender devoped by Nathan Vegdahl). ]] [[ MHBlenderTools: MHX Layers and masks The mhx importer creates objects on the first four layers. ]] [[ MakeTarget standalone Converting files produced with the most common modelling software, without Blender. ]] [[ GUI languages and translations. MakeHuman support a variety of languages. It's very easy to add translations. ]] ==== Reporting a Bug ==== [[ Using the Makehuman bug tracker Introduction to the new Makehuman bug tracker ]] [[ Using the Makehuman log files for error reporting How to report bugs using the log files. ]] ==== Developers' note ==== [[ Getting started The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. ]] [[ Development infrastructure A description of the MakeHuman development infrastructure. ]] [[ OpenGL Notes Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. ]] [[ Development organization The organization of distributed development. ]] [[ Libraries and build procedures Describes the details of creating installable packages on major platforms ]] [[ Directory structure and core modules Summary of the MH API reference. ]] [[ File formats and extensions Describes the formats used internally for data and object storage. [CRUDE NOTES] ]] [[ Makehuman Plugin System How to make a new plugin and use it in MakeHuman ]] ==== Packager's notes ==== [[ Packaging RPM's for Suse/Fedora using Open Build Service (OBS) Packaging procedure and setup. ]] ==== Tutorials ==== [[ Tutorial MH1.0 alpha8 ]] [[ [Alpha8] Making diapers for a baby. A tutorial illustrating the MakeClothes workflow. ]] [[ MakeClothes: Making a simple dress The basic MakeClothes workflow. ]] [[ MakeClothes: Controlling the result with vertex groups The output of the clothes-making process depends on how vertex groups are assigned. ]] [[ Creating a Custom Target with MakeTarget Standalone A practical example of custom target ]] [[ MakeWalk: The making of Running feet MakeWalk tutorial, focusing on the Edit Action panel. ]] [[ MakeWalk: Running feet scene 1 Making an extended run on a plane. ]] [[ MakeWalk: Running feet scene 2 High heels and slopes. ]] [[ MakeWalk: Running feet scene 3 The race. ]] [[ MakeWalk: Running feet scene 4 Rough terrain. ]] [[ MakeWalk: Automatic animation Tutorial on using the editing tools in MakeWalk. ]] [[ Advertisement ]] |} __NOTOC__ == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) 0a2a637347d6710175f2390fd077954f4e3e5d9f 23 22 2015-06-29T22:15:50Z Aiena1 3 /* Define Human Characteristics */ wikitext text/x-wiki {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| === Makehuman Manual === ==== Introduction ==== * [[MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Professional mesh topology ]] An overview of the professional topology provided by MakeHuman * [[ Legal ]] The various licenses that apply to MakeHuman and External tools ==== General overview ==== * [[ Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== [[ Parametric Modelling ]] A quick introduction to the parametric modelling and sliders usage. [[ Using MakeHuman Hairstyles and Clothes ]] Hair in the MakeHuman Geometries group [[ Skin and other materials]] How to change skin and materials for hair and clothes. [[ Gender, Random, Measure and Custom ]] Special modifiers. [[ Makehuman alternative topologies ]] MakeHuman provides a smart alternative topologies library ==== Rendering Your Work ==== [[ Quick rendering and advanced rendering This section explains how render the character in MakeHuman ]] [[ Scene and Viewer How to set lights and how to see and save the rendering ]] ==== Settings ==== [[ General How to set the general preferences ]] [[ Background How to use backgrounds for reference. ]] [[ Mouse Explanation of mouse settings ]] [[ Shortcuts Configuration of shortcuts in Makehuman ]] [[ Plugins Management of Makehuman plugins ]] ==== Tools and contributing methods ==== [[ MHBlenderTools: Download and installation How to download and install the addons for Blender ]] [[MHBlenderTools: MakeTarget Description of MakeTarget™ tool, to create custom morphings for MakeHuman. ]] [[ MHBlenderTools: MakeClothes Description of MakeClothes and its user interface. ]] [[ MHBlenderTools: MakeWalk basic workflow MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ]] [[ MHBlenderTools: MakeWalk user interface Description of the GUI integrated in Blender. ]] [[ MHBlenderTools: MakeWalk armatures Explain the meaning and use of source and target armature. ]] [[ MHBlenderTools: MakeWalk utilities Utilities: save and restore the defaults, manage actions, t-pose, etc. ]] [[ MHBlenderTools: MakeWalk troubleshooting. This document will describe common errors and corrective actions. ]] [[ MHBlenderTools: MHX importer basic usage. MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. ]] [[ MHBlenderTools: MHX default rigging If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. ]] [[ MHBlenderTools: MHX other rigging systems The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender devoped by Nathan Vegdahl). ]] [[ MHBlenderTools: MHX Layers and masks The mhx importer creates objects on the first four layers. ]] [[ MakeTarget standalone Converting files produced with the most common modelling software, without Blender. ]] [[ GUI languages and translations. MakeHuman support a variety of languages. It's very easy to add translations. ]] ==== Reporting a Bug ==== [[ Using the Makehuman bug tracker Introduction to the new Makehuman bug tracker ]] [[ Using the Makehuman log files for error reporting How to report bugs using the log files. ]] ==== Developers' note ==== [[ Getting started The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. ]] [[ Development infrastructure A description of the MakeHuman development infrastructure. ]] [[ OpenGL Notes Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. ]] [[ Development organization The organization of distributed development. ]] [[ Libraries and build procedures Describes the details of creating installable packages on major platforms ]] [[ Directory structure and core modules Summary of the MH API reference. ]] [[ File formats and extensions Describes the formats used internally for data and object storage. [CRUDE NOTES] ]] [[ Makehuman Plugin System How to make a new plugin and use it in MakeHuman ]] ==== Packager's notes ==== [[ Packaging RPM's for Suse/Fedora using Open Build Service (OBS) Packaging procedure and setup. ]] ==== Tutorials ==== [[ Tutorial MH1.0 alpha8 ]] [[ [Alpha8] Making diapers for a baby. A tutorial illustrating the MakeClothes workflow. ]] [[ MakeClothes: Making a simple dress The basic MakeClothes workflow. ]] [[ MakeClothes: Controlling the result with vertex groups The output of the clothes-making process depends on how vertex groups are assigned. ]] [[ Creating a Custom Target with MakeTarget Standalone A practical example of custom target ]] [[ MakeWalk: The making of Running feet MakeWalk tutorial, focusing on the Edit Action panel. ]] [[ MakeWalk: Running feet scene 1 Making an extended run on a plane. ]] [[ MakeWalk: Running feet scene 2 High heels and slopes. ]] [[ MakeWalk: Running feet scene 3 The race. ]] [[ MakeWalk: Running feet scene 4 Rough terrain. ]] [[ MakeWalk: Automatic animation Tutorial on using the editing tools in MakeWalk. ]] [[ Advertisement ]] |} __NOTOC__ == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) 0e45d08668b0834af328c5245ab8c1ade3e36990 22 21 2015-06-29T22:14:23Z Aiena1 3 /* General overview */ wikitext text/x-wiki {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| === Makehuman Manual === ==== Introduction ==== * [[MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Professional mesh topology ]] An overview of the professional topology provided by MakeHuman * [[ Legal ]] The various licenses that apply to MakeHuman and External tools ==== General overview ==== * [[ Install MakeHuman™ ]] How to install MH on Windows, Osx and Linux. * [[ The Interface and basic functions. ]] The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. * [[ Zoom, pan and rotate using the orbital camera ]] Navigating the scene using the orbital camera. [[ Load Save and Export ]] Describe file actions for MakeHuman ==== Define Human Characteristics ==== [[ Parametric Modelling A quick introduction to the parametric modelling and sliders usage. ]] [[ Using MakeHuman Hairstyles and Clothes Hair in the MakeHuman Geometries group ]] [[ Skin and other materials How to change skin and materials for hair and clothes. ]] [[ Gender, Random, Measure and Custom Special modifiers. ]] [[ Makehuman alternative topologies MakeHuman provides a smart alternative topologies library ]] ==== Rendering Your Work ==== [[ Quick rendering and advanced rendering This section explains how render the character in MakeHuman ]] [[ Scene and Viewer How to set lights and how to see and save the rendering ]] ==== Settings ==== [[ General How to set the general preferences ]] [[ Background How to use backgrounds for reference. ]] [[ Mouse Explanation of mouse settings ]] [[ Shortcuts Configuration of shortcuts in Makehuman ]] [[ Plugins Management of Makehuman plugins ]] ==== Tools and contributing methods ==== [[ MHBlenderTools: Download and installation How to download and install the addons for Blender ]] [[MHBlenderTools: MakeTarget Description of MakeTarget™ tool, to create custom morphings for MakeHuman. ]] [[ MHBlenderTools: MakeClothes Description of MakeClothes and its user interface. ]] [[ MHBlenderTools: MakeWalk basic workflow MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ]] [[ MHBlenderTools: MakeWalk user interface Description of the GUI integrated in Blender. ]] [[ MHBlenderTools: MakeWalk armatures Explain the meaning and use of source and target armature. ]] [[ MHBlenderTools: MakeWalk utilities Utilities: save and restore the defaults, manage actions, t-pose, etc. ]] [[ MHBlenderTools: MakeWalk troubleshooting. This document will describe common errors and corrective actions. ]] [[ MHBlenderTools: MHX importer basic usage. MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. ]] [[ MHBlenderTools: MHX default rigging If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. ]] [[ MHBlenderTools: MHX other rigging systems The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender devoped by Nathan Vegdahl). ]] [[ MHBlenderTools: MHX Layers and masks The mhx importer creates objects on the first four layers. ]] [[ MakeTarget standalone Converting files produced with the most common modelling software, without Blender. ]] [[ GUI languages and translations. MakeHuman support a variety of languages. It's very easy to add translations. ]] ==== Reporting a Bug ==== [[ Using the Makehuman bug tracker Introduction to the new Makehuman bug tracker ]] [[ Using the Makehuman log files for error reporting How to report bugs using the log files. ]] ==== Developers' note ==== [[ Getting started The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. ]] [[ Development infrastructure A description of the MakeHuman development infrastructure. ]] [[ OpenGL Notes Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. ]] [[ Development organization The organization of distributed development. ]] [[ Libraries and build procedures Describes the details of creating installable packages on major platforms ]] [[ Directory structure and core modules Summary of the MH API reference. ]] [[ File formats and extensions Describes the formats used internally for data and object storage. [CRUDE NOTES] ]] [[ Makehuman Plugin System How to make a new plugin and use it in MakeHuman ]] ==== Packager's notes ==== [[ Packaging RPM's for Suse/Fedora using Open Build Service (OBS) Packaging procedure and setup. ]] ==== Tutorials ==== [[ Tutorial MH1.0 alpha8 ]] [[ [Alpha8] Making diapers for a baby. A tutorial illustrating the MakeClothes workflow. ]] [[ MakeClothes: Making a simple dress The basic MakeClothes workflow. ]] [[ MakeClothes: Controlling the result with vertex groups The output of the clothes-making process depends on how vertex groups are assigned. ]] [[ Creating a Custom Target with MakeTarget Standalone A practical example of custom target ]] [[ MakeWalk: The making of Running feet MakeWalk tutorial, focusing on the Edit Action panel. ]] [[ MakeWalk: Running feet scene 1 Making an extended run on a plane. ]] [[ MakeWalk: Running feet scene 2 High heels and slopes. ]] [[ MakeWalk: Running feet scene 3 The race. ]] [[ MakeWalk: Running feet scene 4 Rough terrain. ]] [[ MakeWalk: Automatic animation Tutorial on using the editing tools in MakeWalk. ]] [[ Advertisement ]] |} __NOTOC__ == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) 1bc7ac8f249b27b154ea9e76291c3f38ba43d1b8 21 20 2015-06-29T22:12:55Z Aiena1 3 /* Introduction */ wikitext text/x-wiki {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| === Makehuman Manual === ==== Introduction ==== * [[MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Professional mesh topology ]] An overview of the professional topology provided by MakeHuman * [[ Legal ]] The various licenses that apply to MakeHuman and External tools ==== General overview ==== [[ Install MakeHuman™ How to install MH on Windows, Osx and Linux. ]] [[ The Interface and basic functions. The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. ]] [[ Zoom, pan and rotate using the orbital camera Navigating the scene using the orbital camera. ]] [[ Load Save and Export Describe file actions for MakeHuman ]] ==== Define Human Characteristics ==== [[ Parametric Modelling A quick introduction to the parametric modelling and sliders usage. ]] [[ Using MakeHuman Hairstyles and Clothes Hair in the MakeHuman Geometries group ]] [[ Skin and other materials How to change skin and materials for hair and clothes. ]] [[ Gender, Random, Measure and Custom Special modifiers. ]] [[ Makehuman alternative topologies MakeHuman provides a smart alternative topologies library ]] ==== Rendering Your Work ==== [[ Quick rendering and advanced rendering This section explains how render the character in MakeHuman ]] [[ Scene and Viewer How to set lights and how to see and save the rendering ]] ==== Settings ==== [[ General How to set the general preferences ]] [[ Background How to use backgrounds for reference. ]] [[ Mouse Explanation of mouse settings ]] [[ Shortcuts Configuration of shortcuts in Makehuman ]] [[ Plugins Management of Makehuman plugins ]] ==== Tools and contributing methods ==== [[ MHBlenderTools: Download and installation How to download and install the addons for Blender ]] [[MHBlenderTools: MakeTarget Description of MakeTarget™ tool, to create custom morphings for MakeHuman. ]] [[ MHBlenderTools: MakeClothes Description of MakeClothes and its user interface. ]] [[ MHBlenderTools: MakeWalk basic workflow MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ]] [[ MHBlenderTools: MakeWalk user interface Description of the GUI integrated in Blender. ]] [[ MHBlenderTools: MakeWalk armatures Explain the meaning and use of source and target armature. ]] [[ MHBlenderTools: MakeWalk utilities Utilities: save and restore the defaults, manage actions, t-pose, etc. ]] [[ MHBlenderTools: MakeWalk troubleshooting. This document will describe common errors and corrective actions. ]] [[ MHBlenderTools: MHX importer basic usage. MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. ]] [[ MHBlenderTools: MHX default rigging If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. ]] [[ MHBlenderTools: MHX other rigging systems The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender devoped by Nathan Vegdahl). ]] [[ MHBlenderTools: MHX Layers and masks The mhx importer creates objects on the first four layers. ]] [[ MakeTarget standalone Converting files produced with the most common modelling software, without Blender. ]] [[ GUI languages and translations. MakeHuman support a variety of languages. It's very easy to add translations. ]] ==== Reporting a Bug ==== [[ Using the Makehuman bug tracker Introduction to the new Makehuman bug tracker ]] [[ Using the Makehuman log files for error reporting How to report bugs using the log files. ]] ==== Developers' note ==== [[ Getting started The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. ]] [[ Development infrastructure A description of the MakeHuman development infrastructure. ]] [[ OpenGL Notes Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. ]] [[ Development organization The organization of distributed development. ]] [[ Libraries and build procedures Describes the details of creating installable packages on major platforms ]] [[ Directory structure and core modules Summary of the MH API reference. ]] [[ File formats and extensions Describes the formats used internally for data and object storage. [CRUDE NOTES] ]] [[ Makehuman Plugin System How to make a new plugin and use it in MakeHuman ]] ==== Packager's notes ==== [[ Packaging RPM's for Suse/Fedora using Open Build Service (OBS) Packaging procedure and setup. ]] ==== Tutorials ==== [[ Tutorial MH1.0 alpha8 ]] [[ [Alpha8] Making diapers for a baby. A tutorial illustrating the MakeClothes workflow. ]] [[ MakeClothes: Making a simple dress The basic MakeClothes workflow. ]] [[ MakeClothes: Controlling the result with vertex groups The output of the clothes-making process depends on how vertex groups are assigned. ]] [[ Creating a Custom Target with MakeTarget Standalone A practical example of custom target ]] [[ MakeWalk: The making of Running feet MakeWalk tutorial, focusing on the Edit Action panel. ]] [[ MakeWalk: Running feet scene 1 Making an extended run on a plane. ]] [[ MakeWalk: Running feet scene 2 High heels and slopes. ]] [[ MakeWalk: Running feet scene 3 The race. ]] [[ MakeWalk: Running feet scene 4 Rough terrain. ]] [[ MakeWalk: Automatic animation Tutorial on using the editing tools in MakeWalk. ]] [[ Advertisement ]] |} __NOTOC__ == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) 184ba297276a95481cdc8df393234338965e1fb8 20 19 2015-06-29T22:11:22Z Aiena1 3 wikitext text/x-wiki {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| === Makehuman Manual === ==== Introduction ==== * [[MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Professional mesh topology An overview of the professional topology provided by MakeHuman ]] * [[ Legal The various licenses that apply to MakeHuman and External tools ]] ==== General overview ==== [[ Install MakeHuman™ How to install MH on Windows, Osx and Linux. ]] [[ The Interface and basic functions. The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. ]] [[ Zoom, pan and rotate using the orbital camera Navigating the scene using the orbital camera. ]] [[ Load Save and Export Describe file actions for MakeHuman ]] ==== Define Human Characteristics ==== [[ Parametric Modelling A quick introduction to the parametric modelling and sliders usage. ]] [[ Using MakeHuman Hairstyles and Clothes Hair in the MakeHuman Geometries group ]] [[ Skin and other materials How to change skin and materials for hair and clothes. ]] [[ Gender, Random, Measure and Custom Special modifiers. ]] [[ Makehuman alternative topologies MakeHuman provides a smart alternative topologies library ]] ==== Rendering Your Work ==== [[ Quick rendering and advanced rendering This section explains how render the character in MakeHuman ]] [[ Scene and Viewer How to set lights and how to see and save the rendering ]] ==== Settings ==== [[ General How to set the general preferences ]] [[ Background How to use backgrounds for reference. ]] [[ Mouse Explanation of mouse settings ]] [[ Shortcuts Configuration of shortcuts in Makehuman ]] [[ Plugins Management of Makehuman plugins ]] ==== Tools and contributing methods ==== [[ MHBlenderTools: Download and installation How to download and install the addons for Blender ]] [[MHBlenderTools: MakeTarget Description of MakeTarget™ tool, to create custom morphings for MakeHuman. ]] [[ MHBlenderTools: MakeClothes Description of MakeClothes and its user interface. ]] [[ MHBlenderTools: MakeWalk basic workflow MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ]] [[ MHBlenderTools: MakeWalk user interface Description of the GUI integrated in Blender. ]] [[ MHBlenderTools: MakeWalk armatures Explain the meaning and use of source and target armature. ]] [[ MHBlenderTools: MakeWalk utilities Utilities: save and restore the defaults, manage actions, t-pose, etc. ]] [[ MHBlenderTools: MakeWalk troubleshooting. This document will describe common errors and corrective actions. ]] [[ MHBlenderTools: MHX importer basic usage. MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. ]] [[ MHBlenderTools: MHX default rigging If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. ]] [[ MHBlenderTools: MHX other rigging systems The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender devoped by Nathan Vegdahl). ]] [[ MHBlenderTools: MHX Layers and masks The mhx importer creates objects on the first four layers. ]] [[ MakeTarget standalone Converting files produced with the most common modelling software, without Blender. ]] [[ GUI languages and translations. MakeHuman support a variety of languages. It's very easy to add translations. ]] ==== Reporting a Bug ==== [[ Using the Makehuman bug tracker Introduction to the new Makehuman bug tracker ]] [[ Using the Makehuman log files for error reporting How to report bugs using the log files. ]] ==== Developers' note ==== [[ Getting started The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. ]] [[ Development infrastructure A description of the MakeHuman development infrastructure. ]] [[ OpenGL Notes Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. ]] [[ Development organization The organization of distributed development. ]] [[ Libraries and build procedures Describes the details of creating installable packages on major platforms ]] [[ Directory structure and core modules Summary of the MH API reference. ]] [[ File formats and extensions Describes the formats used internally for data and object storage. [CRUDE NOTES] ]] [[ Makehuman Plugin System How to make a new plugin and use it in MakeHuman ]] ==== Packager's notes ==== [[ Packaging RPM's for Suse/Fedora using Open Build Service (OBS) Packaging procedure and setup. ]] ==== Tutorials ==== [[ Tutorial MH1.0 alpha8 ]] [[ [Alpha8] Making diapers for a baby. A tutorial illustrating the MakeClothes workflow. ]] [[ MakeClothes: Making a simple dress The basic MakeClothes workflow. ]] [[ MakeClothes: Controlling the result with vertex groups The output of the clothes-making process depends on how vertex groups are assigned. ]] [[ Creating a Custom Target with MakeTarget Standalone A practical example of custom target ]] [[ MakeWalk: The making of Running feet MakeWalk tutorial, focusing on the Edit Action panel. ]] [[ MakeWalk: Running feet scene 1 Making an extended run on a plane. ]] [[ MakeWalk: Running feet scene 2 High heels and slopes. ]] [[ MakeWalk: Running feet scene 3 The race. ]] [[ MakeWalk: Running feet scene 4 Rough terrain. ]] [[ MakeWalk: Automatic animation Tutorial on using the editing tools in MakeWalk. ]] [[ Advertisement ]] |} __NOTOC__ == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) 9d3fcc3534cb0a6570343b98c8b44ed5b35e182a 19 18 2015-06-29T22:10:07Z Aiena1 3 testing index flow wikitext text/x-wiki {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| === Makehuman Manual === ==== Introduction ==== * [[MakeHuman™ and its Purpose ]] MakeHuman definition and vision. * [[ Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. * [[ Professional mesh topology An overview of the professional topology provided by MakeHuman ]] * [[ Legal The various licenses that apply to MakeHuman and External tools ]] ==== General overview ==== [[ Install MakeHuman™ How to install MH on Windows, Osx and Linux. ]] [[ The Interface and basic functions. The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. ]] [[ Zoom, pan and rotate using the orbital camera Navigating the scene using the orbital camera. ]] [[ Load Save and Export Describe file actions for MakeHuman ]] ==== Define Human Characteristics ==== [[ Parametric Modelling A quick introduction to the parametric modelling and sliders usage. ]] [[ Using MakeHuman Hairstyles and Clothes Hair in the MakeHuman Geometries group ]] [[ Skin and other materials How to change skin and materials for hair and clothes. ]] [[ Gender, Random, Measure and Custom Special modifiers. ]] [[ Makehuman alternative topologies MakeHuman provides a smart alternative topologies library ]] ==== Rendering Your Work ==== [[ Quick rendering and advanced rendering This section explains how render the character in MakeHuman ]] [[ Scene and Viewer How to set lights and how to see and save the rendering ]] ==== Settings ==== [[ General How to set the general preferences ]] [[ Background How to use backgrounds for reference. ]] [[ Mouse Explanation of mouse settings ]] [[ Shortcuts Configuration of shortcuts in Makehuman ]] [[ Plugins Management of Makehuman plugins ]] ==== Tools and contributing methods ==== [[ MHBlenderTools: Download and installation How to download and install the addons for Blender ]] [[MHBlenderTools: MakeTarget Description of MakeTarget™ tool, to create custom morphings for MakeHuman. ]] [[ MHBlenderTools: MakeClothes Description of MakeClothes and its user interface. ]] [[ MHBlenderTools: MakeWalk basic workflow MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ]] [[ MHBlenderTools: MakeWalk user interface Description of the GUI integrated in Blender. ]] [[ MHBlenderTools: MakeWalk armatures Explain the meaning and use of source and target armature. ]] [[ MHBlenderTools: MakeWalk utilities Utilities: save and restore the defaults, manage actions, t-pose, etc. ]] [[ MHBlenderTools: MakeWalk troubleshooting. This document will describe common errors and corrective actions. ]] [[ MHBlenderTools: MHX importer basic usage. MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. ]] [[ MHBlenderTools: MHX default rigging If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. ]] [[ MHBlenderTools: MHX other rigging systems The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender devoped by Nathan Vegdahl). ]] [[ MHBlenderTools: MHX Layers and masks The mhx importer creates objects on the first four layers. ]] [[ MakeTarget standalone Converting files produced with the most common modelling software, without Blender. ]] [[ GUI languages and translations. MakeHuman support a variety of languages. It's very easy to add translations. ]] ==== Reporting a Bug ==== [[ Using the Makehuman bug tracker Introduction to the new Makehuman bug tracker ]] [[ Using the Makehuman log files for error reporting How to report bugs using the log files. ]] ==== Developers' note ==== [[ Getting started The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. ]] [[ Development infrastructure A description of the MakeHuman development infrastructure. ]] [[ OpenGL Notes Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. ]] [[ Development organization The organization of distributed development. ]] [[ Libraries and build procedures Describes the details of creating installable packages on major platforms ]] [[ Directory structure and core modules Summary of the MH API reference. ]] [[ File formats and extensions Describes the formats used internally for data and object storage. [CRUDE NOTES] ]] [[ Makehuman Plugin System How to make a new plugin and use it in MakeHuman ]] ==== Packager's notes ==== [[ Packaging RPM's for Suse/Fedora using Open Build Service (OBS) Packaging procedure and setup. ]] ==== Tutorials ==== [[ Tutorial MH1.0 alpha8 ]] [[ [Alpha8] Making diapers for a baby. A tutorial illustrating the MakeClothes workflow. ]] [[ MakeClothes: Making a simple dress The basic MakeClothes workflow. ]] [[ MakeClothes: Controlling the result with vertex groups The output of the clothes-making process depends on how vertex groups are assigned. ]] [[ Creating a Custom Target with MakeTarget Standalone A practical example of custom target ]] [[ MakeWalk: The making of Running feet MakeWalk tutorial, focusing on the Edit Action panel. ]] [[ MakeWalk: Running feet scene 1 Making an extended run on a plane. ]] [[ MakeWalk: Running feet scene 2 High heels and slopes. ]] [[ MakeWalk: Running feet scene 3 The race. ]] [[ MakeWalk: Running feet scene 4 Rough terrain. ]] [[ MakeWalk: Automatic animation Tutorial on using the editing tools in MakeWalk. ]] [[ Advertisement ]] |} __NOTOC__ == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) fa28af3796ca1ee214d5e84abbe689ef27cee651 18 17 2015-06-29T22:09:14Z Aiena1 3 wikitext text/x-wiki {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #E6E6E6; padding:.5em;"| === Makehuman Manual === ==== Introduction ==== [[MakeHuman™ and its Purpose ]] MakeHuman definition and vision. [[ Short and Long Pipeline ]] The goal of Makehuman is to see it used in 2 different professional pipelines. [[ Professional mesh topology An overview of the professional topology provided by MakeHuman ]] [[ Legal The various licenses that apply to MakeHuman and External tools ]] ==== General overview ==== [[ Install MakeHuman™ How to install MH on Windows, Osx and Linux. ]] [[ The Interface and basic functions. The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help. ]] [[ Zoom, pan and rotate using the orbital camera Navigating the scene using the orbital camera. ]] [[ Load Save and Export Describe file actions for MakeHuman ]] ==== Define Human Characteristics ==== [[ Parametric Modelling A quick introduction to the parametric modelling and sliders usage. ]] [[ Using MakeHuman Hairstyles and Clothes Hair in the MakeHuman Geometries group ]] [[ Skin and other materials How to change skin and materials for hair and clothes. ]] [[ Gender, Random, Measure and Custom Special modifiers. ]] [[ Makehuman alternative topologies MakeHuman provides a smart alternative topologies library ]] ==== Rendering Your Work ==== [[ Quick rendering and advanced rendering This section explains how render the character in MakeHuman ]] [[ Scene and Viewer How to set lights and how to see and save the rendering ]] ==== Settings ==== [[ General How to set the general preferences ]] [[ Background How to use backgrounds for reference. ]] [[ Mouse Explanation of mouse settings ]] [[ Shortcuts Configuration of shortcuts in Makehuman ]] [[ Plugins Management of Makehuman plugins ]] ==== Tools and contributing methods ==== [[ MHBlenderTools: Download and installation How to download and install the addons for Blender ]] [[MHBlenderTools: MakeTarget Description of MakeTarget™ tool, to create custom morphings for MakeHuman. ]] [[ MHBlenderTools: MakeClothes Description of MakeClothes and its user interface. ]] [[ MHBlenderTools: MakeWalk basic workflow MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ]] [[ MHBlenderTools: MakeWalk user interface Description of the GUI integrated in Blender. ]] [[ MHBlenderTools: MakeWalk armatures Explain the meaning and use of source and target armature. ]] [[ MHBlenderTools: MakeWalk utilities Utilities: save and restore the defaults, manage actions, t-pose, etc. ]] [[ MHBlenderTools: MakeWalk troubleshooting. This document will describe common errors and corrective actions. ]] [[ MHBlenderTools: MHX importer basic usage. MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. ]] [[ MHBlenderTools: MHX default rigging If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. ]] [[ MHBlenderTools: MHX other rigging systems The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender devoped by Nathan Vegdahl). ]] [[ MHBlenderTools: MHX Layers and masks The mhx importer creates objects on the first four layers. ]] [[ MakeTarget standalone Converting files produced with the most common modelling software, without Blender. ]] [[ GUI languages and translations. MakeHuman support a variety of languages. It's very easy to add translations. ]] ==== Reporting a Bug ==== [[ Using the Makehuman bug tracker Introduction to the new Makehuman bug tracker ]] [[ Using the Makehuman log files for error reporting How to report bugs using the log files. ]] ==== Developers' note ==== [[ Getting started The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. ]] [[ Development infrastructure A description of the MakeHuman development infrastructure. ]] [[ OpenGL Notes Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. ]] [[ Development organization The organization of distributed development. ]] [[ Libraries and build procedures Describes the details of creating installable packages on major platforms ]] [[ Directory structure and core modules Summary of the MH API reference. ]] [[ File formats and extensions Describes the formats used internally for data and object storage. [CRUDE NOTES] ]] [[ Makehuman Plugin System How to make a new plugin and use it in MakeHuman ]] ==== Packager's notes ==== [[ Packaging RPM's for Suse/Fedora using Open Build Service (OBS) Packaging procedure and setup. ]] ==== Tutorials ==== [[ Tutorial MH1.0 alpha8 ]] [[ [Alpha8] Making diapers for a baby. A tutorial illustrating the MakeClothes workflow. ]] [[ MakeClothes: Making a simple dress The basic MakeClothes workflow. ]] [[ MakeClothes: Controlling the result with vertex groups The output of the clothes-making process depends on how vertex groups are assigned. ]] [[ Creating a Custom Target with MakeTarget Standalone A practical example of custom target ]] [[ MakeWalk: The making of Running feet MakeWalk tutorial, focusing on the Edit Action panel. ]] [[ MakeWalk: Running feet scene 1 Making an extended run on a plane. ]] [[ MakeWalk: Running feet scene 2 High heels and slopes. ]] [[ MakeWalk: Running feet scene 3 The race. ]] [[ MakeWalk: Running feet scene 4 Rough terrain. ]] [[ MakeWalk: Automatic animation Tutorial on using the editing tools in MakeWalk. ]] [[ Advertisement ]] |} __NOTOC__ == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) 248f5f5d3fdfa4a04b4518cadf6575a8311261c1 17 12 2015-06-29T20:16:49Z Aiena1 3 /* Instructions */ wikitext text/x-wiki Start page for documentation Start page for documentation == Introduction == == MakeHuman™ and its Purpose MakeHuman definition and vision. == === Short and Long Pipeline The goal of Makehuman is to see it used in 2 different professional pipelines. === === Professional mesh topology An overview of the professional topology provided by MakeHuman === === Legal The various licenses that apply to MakeHuman and External tools === == General overview == === Install MakeHuman™ How to install MH on Windows, Osx and Linux. === The Interface and basic functions. The MakeHuman GUI: Load, save, undo and redo, reset, view, symmetry, help.=== === Zoom, pan and rotate using the orbital camera Navigating the scene using the orbital camera.=== === Load Save and Export Describe file actions for MakeHuman=== == Define Human Characteristics == Parametric Modelling A quick introduction to the parametric modelling and sliders usage.=== Using MakeHuman Hairstyles and Clothes Hair in the MakeHuman Geometries group === Skin and other materials How to change skin and materials for hair and clothes.=== Gender, Random, Measure and Custom Special modifiers.=== Makehuman alternative topologies MakeHuman provides a smart alternative topologies library === == Rendering Your Work == Quick rendering and advanced rendering This section explains how render the character in MakeHuman === Scene and Viewer How to set lights and how to see and save the rendering === == Settings == General How to set the general preferences === Background How to use backgrounds for reference.=== Mouse Explanation of mouse settings === Shortcuts Configuration of shortcuts in Makehuman === Plugins Management of Makehuman plugins === == Tools and contributing methods == MHBlenderTools: Download and installation How to download and install the addons for Blender === MHBlenderTools: MakeTarget Description of MakeTarget™ tool, to create custom morphings for MakeHuman. === MHBlenderTools: MakeClothes Description of MakeClothes and its user interface.=== MHBlenderTools: MakeWalk basic workflow MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. === MHBlenderTools: MakeWalk user interface Description of the GUI integrated in Blender. === MHBlenderTools: MakeWalk armatures Explain the meaning and use of source and target armature. === MHBlenderTools: MakeWalk utilities Utilities: save and restore the defaults, manage actions, t-pose, etc. === MHBlenderTools: MakeWalk troubleshooting. This document will describe common errors and corrective actions. === MHBlenderTools: MHX importer basic usage. MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. === MHBlenderTools: MHX default rigging If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .mhx format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. MHBlenderTools: MHX other rigging systems The character can be rigged with alternatives and ligher armature or the rigify one (The rigging system for Blender devoped by Nathan Vegdahl). === MHBlenderTools: MHX Layers and masks The mhx importer creates objects on the first four layers. === MakeTarget standalone Converting files produced with the most common modelling software, without Blender.=== GUI languages and translations. MakeHuman support a variety of languages. It's very easy to add translations.=== == Reporting a Bug == Using the Makehuman bug tracker Introduction to the new Makehuman bug tracker === Using the Makehuman log files for error reporting How to report bugs using the log files. === == Developers' note == Getting started The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. === Development infrastructure A description of the MakeHuman development infrastructure. === OpenGL Notes Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. === Development organization The organization of distributed development. === Libraries and build procedures Describes the details of creating installable packages on major platforms === Directory structure and core modules Summary of the MH API reference. === File formats and extensions Describes the formats used internally for data and object storage. [CRUDE NOTES} === Makehuman Plugin System How to make a new plugin and use it in MakeHuman === == Packager's notes == Packaging RPM's for Suse/Fedora using Open Build Service (OBS) Packaging procedure and setup. === == Tutorials == Tutorial MH1.0 alpha8 === [Alpha8] Making diapers for a baby. A tutorial illustrating the MakeClothes workflow. === MakeClothes: Making a simple dress The basic MakeClothes workflow. === MakeClothes: Controlling the result with vertex groups The output of the clothes-making process depends on how vertex groups are assigned. === Creating a Custom Target with MakeTarget Standalone A practical example of custom target === MakeWalk: The making of Running feet MakeWalk tutorial, focusing on the Edit Action panel. === MakeWalk: Running feet scene 1 Making an extended run on a plane. === MakeWalk: Running feet scene 2 High heels and slopes. === MakeWalk: Running feet scene 3 The race. === MakeWalk: Running feet scene 4 Rough terrain. === MakeWalk: Automatic animation Tutorial on using the editing tools in MakeWalk. === == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) a7c02ecdeec6cd56f73bd764caf203f077dd7ae2 12 10 2015-06-28T11:46:58Z Aiena1 3 wikitext text/x-wiki Start page for documentation == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) e613bb25d6d4a2767577e9914f0dee12620bdafd 10 9 2015-06-27T18:41:31Z Joepal1 1 wikitext text/x-wiki Start page for documentation [[:Category:Help]] == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) 6e033c236f9d68ee2b305424f55b1eb980472b5c 9 4 2015-06-27T18:41:03Z Joepal1 1 wikitext text/x-wiki Start page for documentation [[:Category:Documentation]] == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) e585ac76063cfe8e20d27155e9564d5118072744 4 2015-06-27T14:26:57Z Joepal1 1 Start page for documentation. wikitext text/x-wiki Start page for documentation == Instructions == Please put all documentation nodes in namespace "Documentation", like <nowiki>[[Documentation:Introduction to the interface|Introduction to the interface]]</nowiki> (which would resolve as [[Documentation:Introduction to the interface|Introduction to the interface]]) e613bb25d6d4a2767577e9914f0dee12620bdafd Documentation:Installing MHX2 3000 254 766 2016-05-24T11:34:34Z Joepal 14 Created page with "(placeholder, decide if specific instructions should be written here or if we should simply link to Thomas' bitbucket page)" wikitext text/x-wiki (placeholder, decide if specific instructions should be written here or if we should simply link to Thomas' bitbucket page) 5385ac0ee94ea413af7623991342a4e509b5967b Documentation:Installing MakeHuman 3000 223 2142 2141 2022-04-23T17:02:13Z Robbaer 12 wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehumancommunity.org/content/downloads.html]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest developmental updates and are not guaranteed to be stable. Currently, the latest release is MakeHuman 1.2.0. For version 1.2.0, you can go directly to [http://www.makehumancommunity.org/content/makehuman_120.html] where you can find links for the release notes, the downloads for various platforms, and a list of know issues. If you are also a Blender user, the tools in this MakeHuman version are designed to to work with Blender 2.83 or later. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows 10/11 == Download the zip file from the from the download page [http://download.tuxfamily.org/makehuman/releases/makehuman-community-1.2.0-windows.zip download page]. From within Windows Explorer, double click the downloaded zip file, and click "Extract All" to extract the compressed files. When the extracted folder opens, double click "makehuman-community-1.2.0-windows.exe" to install the program. Allow installation on the dialog that pops up. Click Next. Choose "Install for anyone using the computer" if you want all users of your computer to have access to MakeHuman; otherwise, choose "install for just me" and click Next. This choice will affect where MakeHuman assets are saved. If you choose "Install for just me", the default program location is: C:\Users\%USERNAME%\AppData\Local\makehuman-community. If you choose "Install for all users", the default program location is: C:\Program Files\makehuman-community. Click Finish. There should be a shortcut to start MakeHuman on both the desktop and within the startup folder. In all cases, MakeHuman related assets should by default be found in: C:\Users\%USERNAME%\Documents\makehuman\v1py3. Or, if you have OneDrive enabled, this may be" "C:\Users\%USERNAME%\OneDrive\Documents\makehuman\v1py3", instead. If you are using Blender 2.83 or beyond, you may also wish to install some helpful plugins for using MakeHuman with Blender. Start Blender and choose, Edit | Preferences | Add-ons and click the Install button at the top. Navigate to the folder where you extracted the downloaded MakeHuman and go into the folder addons_for_blender_28x, click to select makehuman-plugins-for-blender.zip, makeclothes2.zip, makeskin.zip, and maketarget2.zip. Click Install Add-on. Click the check box to make this plugin available from within Blender. As desired, repeat the process for the makeclothes2.zip, the makeskin.zip, and the maketarget2.zip plugins. With the cursor over the Blender 3D viewport, press "N" to reveal tabs on the right side of the viewport for accessing these tools. == Mac OS X == Download the DMG file from the [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from [https://github.com/makehumancommunity/makehuman GitHub]. This requires that you have installed python 3. and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. 0d046ab5c89d879ba48852fecf8b1b0ce89b25aa 2141 2140 2022-04-23T16:53:29Z Robbaer 12 /* Windows 10/11 */ wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehumancommunity.org/content/downloads.html]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest developmental updates and are not guaranteed to be stable. Currently, the latest release is MakeHuman 1.2.0. For version 1.2.0, you can go directly to [http://www.makehumancommunity.org/content/makehuman_120.html] where you can find links for the release notes, the downloads for various platforms, and a list of know issues. If you are also a Blender user, the tools in this MakeHuman version are designed to to work with Blender 2.83 or later. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows 10/11 == Download the zip file from the from the download page [http://download.tuxfamily.org/makehuman/releases/makehuman-community-1.2.0-windows.zip download page]. From within Windows Explorer, double click the downloaded zip file, and click "Extract All" to extract the compressed files. When the extracted folder opens, double click "makehuman-community-1.2.0-windows.exe" to install the program. Allow installation on the dialog that pops up. Click Next. Choose "Install for anyone using the computer" if you want all users of your computer to have access to MakeHuman; otherwise, choose "install for just me" and click Next. This choice will affect where MakeHuman assets are saved. If you choose "Install for just me", the default program location is: C:\Users\%USERNAME%\AppData\Local\makehuman-community. If you choose "Install for all users", the default program location is: C:\Program Files\makehuman-community. Click Finish. There should be a shortcut to start MakeHuman on both the desktop and within the startup folder. In all cases, MakeHuman related assets should by default be found in: C:\Users\%USERNAME%\Documents\makehuman\v1py3. Or, if you have OneDrive enabled, this may be" "C:\Users\%USERNAME%\OneDrive\Documents\makehuman\v1py3", instead. If you are using Blender 2.83 or beyond, you may also wish to install some helpful plugins for using MakeHuman with Blender. Start Blender and choose, Edit | Preferences | Add Ons and click the Install button at the top. Navigate to the folder where you extracted the downloaded MakeHuman and go into the folder addons_for_blender_28x, click to select makehuman-plugins-for-blender.zip, makeclothes2.zip, makeskin.zip, and maketarget2.zip. Click Install Add-on. Click the check box to make this plugin available from within Blender. As desired, repeat the process for the makeclothes2.zip, makeskin.zip, and maketarget2.zip plugins. == Mac OS X == Download the DMG file from the [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. 87693f57da5ce543c077ebca6a0a4cb8a9edde75 2140 2139 2022-04-23T16:43:31Z Robbaer 12 /* Windows 10/11 */ wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehumancommunity.org/content/downloads.html]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest developmental updates and are not guaranteed to be stable. Currently, the latest release is MakeHuman 1.2.0. For version 1.2.0, you can go directly to [http://www.makehumancommunity.org/content/makehuman_120.html] where you can find links for the release notes, the downloads for various platforms, and a list of know issues. If you are also a Blender user, the tools in this MakeHuman version are designed to to work with Blender 2.83 or later. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows 10/11 == Download the zip file from the from the download page [http://download.tuxfamily.org/makehuman/releases/makehuman-community-1.2.0-windows.zip download page]. From within Windows Explorer, double click the downloaded zip file, and click "Extract All" to extract the compressed files. When the extracted folder opens, double click "makehuman-community-1.2.0-windows.exe" to install the program. Allow installation on the dialog that pops up. Click Next. Choose "Install for anyone using the computer" if you want all users of your computer to have access to MakeHuman; otherwise, choose "install for just me" and click Next. This choice will affect where MakeHuman assets are saved. If you choose "Install for just me", the default program location is: C:\Users\%USERNAME%\AppData\Local\makehuman-community. If you choose "Install for all users", the default program location is: C:\Program Files\makehuman-community. Click Finish. There should be a shortcut to start MakeHuman on both the desktop and within the startup folder. In all cases, MakeHuman related assets should by default be found in: C:\Users\%USERNAME%\Documents\makehuman\v1py3. Or, if you have OneDrive enabled, this may be" "C:\Users\%USERNAME%\OneDrive\Documents\makehuman\v1py3", instead. == Mac OS X == Download the DMG file from the [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. ece1f32dfb1d69db271d81f3be25b383141ed603 2139 2138 2022-04-23T16:24:25Z Robbaer 12 wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehumancommunity.org/content/downloads.html]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest developmental updates and are not guaranteed to be stable. Currently, the latest release is MakeHuman 1.2.0. For version 1.2.0, you can go directly to [http://www.makehumancommunity.org/content/makehuman_120.html] where you can find links for the release notes, the downloads for various platforms, and a list of know issues. If you are also a Blender user, the tools in this MakeHuman version are designed to to work with Blender 2.83 or later. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows 10/11 == Download the zip file from the from the download page [http://download.tuxfamily.org/makehuman/releases/makehuman-community-1.2.0-windows.zip download page]. From within Windows Explorer, double click the downloaded zip file, and click "Extract All" to extract the compressed files. When the extracted folder opens, double click "makehuman-community-1.2.0-windows.exe" to install the program. Allow installation on the dialog that pops up. Click Next. Choose "Install for anyone using the computer" if you want all users of your computer to have access to MakeHuman; otherwise, choose "install for just me" and click Next. This choice will affect where MakeHuman assets are saved. If you choose "Install for just me", the default program location is: C:\Users\%USERNAME%\AppData\Local\makehuman-community. If you choose "Install for all users", the default program location is: C:\Program Files\makehuman-community. Click Finish. There should be a shortcut to start MakeHuman on both the desktop and within the startup folder. In all cases, MakeHuman related assets should by default be found in: C:\Users\%USERNAME%\Documents\makehuman\v1py3. [If you have OneDrive enabled, this may be "C:\Users\%USERNAME%\OneDrive\Documents\makehuman\v1py3" instead.] == Mac OS X == Download the DMG file from the [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. b1c2d4b2905ebfc03d22cd35cc9efe7e5b33cacd 2138 2137 2022-04-23T16:23:55Z Robbaer 12 wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehumancommunity.org/content/downloads.html]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest developmental updates and are not guaranteed to be stable. Currently, the latest release is MakeHuman 1.2.0. For version 1.2.0, you can go directly to [http://www.makehumancommunity.org/content/makehuman_120.html] where you can find links for the release notes, the downloads for various platforms, and a list of know issues. If you are also a Blender user, the tools in this MakeHuman version are designed to to work with Blender 2.83 or later. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows 10/11 == Download the zip file from the from the download page [http://download.tuxfamily.org/makehuman/releases/makehuman-community-1.2.0-windows.zip download page]. From within Windows Explorer, double click the downloaded zip file, and click "Extract All" to extract the compressed files. When the extracted folder opens, double click "makehuman-community-1.2.0-windows.exe" to install the program. Allow installation on the dialog that pops up. Click Next. Choose "Install for anyone using the computer" if you want all users of your computer to have access to MakeHuman; otherwise, choose "install for just me" and click Next. This choice will affect where MakeHuman assets are saved. If you choose "Install for just me", the default program location is: C:\Users\%USERNAME%\AppData\Local\makehuman-community. If you choose "Install for all users", the default program location is: C:\Program Files\makehuman-community. Click Finish. There should be a shortcut to MakeHuman on both the desktop and within the startup folder. In all cases, MakeHuman related assets should by default be found in: C:\Users\%USERNAME%\Documents\makehuman\v1py3. [If you have OneDrive enabled, this may be "C:\Users\%USERNAME%\OneDrive\Documents\makehuman\v1py3" instead.] == Mac OS X == Download the DMG file from the [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. 3766496212d937b16934a4573fe10cadc44583f3 2137 2136 2022-04-23T16:11:23Z Robbaer 12 wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehumancommunity.org/content/downloads.html]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest developmental updates and are not guaranteed to be stable. Currently, the latest release is MakeHuman 1.2.0. For version 1.2.0, you can go directly to [http://www.makehumancommunity.org/content/makehuman_120.html] where you can find links for the release notes, the downloads for various platforms, and a list of know issues. If you are also a Blender user, the tools in this MakeHuman version are designed to to work with Blender 2.83 or later. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows 10/11 == Download the zip file from the from the download page [http://download.tuxfamily.org/makehuman/releases/makehuman-community-1.2.0-windows.zip download page]. From within Windows Explorer, double click the downloaded zip file, and click "Extract All" to extract the compressed files. When the extracted folder opens, double click "makehuman-community-1.2.0-windows.exe" to install the program. Allow installation on the dialog that pops up. Click Next. Choose "Install for anyone using the computer" if you want all users of your computer to have access to MakeHuman; otherwise, choose "install for just me" and click Next. This choice will affect where MakeHuman assets are saved. If you choose "Install for just me", the default program location is: C:\Users\%USERNAME%\AppData\Local\makehuman-community . If you choose "Install for all users", the default program location is: C:\Program Files\makehuman-community. == Mac OS X == Download the DMG file from the [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. 0996b0f2740819de9ba1aedc0ac3be1aca9cac72 2136 2135 2022-04-23T16:06:51Z Robbaer 12 wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehumancommunity.org/content/downloads.html]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest developmental updates and are not guaranteed to be stable. Currently, the latest release is MakeHuman 1.2.0. For version 1.2.0, you can go directly to [http://www.makehumancommunity.org/content/makehuman_120.html] where you can find links for the release notes, the downloads for various platforms, and a list of know issues. If you are also a Blender user, the tools in this MakeHuman version are designed to to work with Blender 2.83 or later. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows 10/11 == Download the zip file from the from the download page [http://download.tuxfamily.org/makehuman/releases/makehuman-community-1.2.0-windows.zip download page]. From within Windows Explorer, double click the downloaded zip file, and click "Extract All" to extract the compressed files. When the extracted folder opens, double click "makehuman-community-1.2.0-windows.exe" to install the program. Allow installation on the dialog that pops up. Click Next. Choose "Install for anyone using the computer" if you want all users of your computer to have access to MakeHuman; otherwise, choose "install for just me" and click Next. This choice will affect where MakeHuman assets are saved. == Mac OS X == Download the DMG file from the [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. 9f65acd48610d827b065b6a8c6d68bc9b595d01a 2135 2134 2022-04-23T16:01:19Z Robbaer 12 /* Windows 10/11 */ wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehumancommunity.org/content/downloads.html]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest developmental updates and are not guaranteed to be stable. Currently, the latest release is MakeHuman 1.2.0. For version 1.2.0, you can go directly to [http://www.makehumancommunity.org/content/makehuman_120.html] where you can find links for the release notes, the downloads for various platforms, and a list of know issues. If you are also a Blender user, the tools in this MakeHuman version are designed to to work with Blender 2.83 or later. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows 10/11 == Download the zip file from the from the download page [http://download.tuxfamily.org/makehuman/releases/makehuman-community-1.2.0-windows.zip download page]. From within Windows Explorer, double click the downloaded zip file, and click "Extract All" to extract the compressed files. When the extracted folder opens, double click "makehuman-community-1.2.0-windows.exe" to install the program. == Mac OS X == Download the DMG file from the [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. 393389b521a731831e90f17f5e1fc119b9cd7bbf 2134 2133 2022-04-23T15:56:49Z Robbaer 12 /* Mac OS X */ wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehumancommunity.org/content/downloads.html]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest developmental updates and are not guaranteed to be stable. Currently, the latest release is MakeHuman 1.2.0. For version 1.2.0, you can go directly to [http://www.makehumancommunity.org/content/makehuman_120.html] where you can find links for the release notes, the downloads for various platforms, and a list of know issues. If you are also a Blender user, the tools in this MakeHuman version are designed to to work with Blender 2.83 or later. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows 10/11 == Download the zip file from the from the download page [http://download.tuxfamily.org/makehuman/releases/makehuman-community-1.2.0-windows.zip download page]. Then simply unzip it where you prefer, and double click on makehuman.exe to start the application. No installation is needed. == Mac OS X == Download the DMG file from the [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. cb80d3b3f80798abf244db446fd539a9df1c229c 2133 2132 2022-04-23T15:56:07Z Robbaer 12 wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehumancommunity.org/content/downloads.html]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest developmental updates and are not guaranteed to be stable. Currently, the latest release is MakeHuman 1.2.0. For version 1.2.0, you can go directly to [http://www.makehumancommunity.org/content/makehuman_120.html] where you can find links for the release notes, the downloads for various platforms, and a list of know issues. If you are also a Blender user, the tools in this MakeHuman version are designed to to work with Blender 2.83 or later. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows 10/11 == Download the zip file from the from the download page [http://download.tuxfamily.org/makehuman/releases/makehuman-community-1.2.0-windows.zip download page]. Then simply unzip it where you prefer, and double click on makehuman.exe to start the application. No installation is needed. == Mac OS X == Download the DMG file from the download page [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. 19af93d2ce3741e2c67bea9ec1efd2bf65500a18 2132 2131 2022-04-23T15:55:25Z Robbaer 12 wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehumancommunity.org/content/downloads.html]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest developmental updates and are not guaranteed to be stable. Currently, the latest release is MakeHuman 1.2.0. For version 1.2.0, you can go directly to [http://www.makehumancommunity.org/content/makehuman_120.html] where you can find links for the release notes, the downloads for various platforms, and a list of know issues. If you are also a Blender user, the tools in this MakeHuman version are designed to to work with Blender 2.83 or later. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows 10/11 == Download the zip file from the from the download page [http://www.makehuman.org/download.php download page]. Then simply unzip it where you prefer, and double click on makehuman.exe to start the application. No installation is needed. == Mac OS X == Download the DMG file from the download page [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. 411002f44053d7bdbe4f06cf745b51724dfc0843 2131 2130 2022-04-23T15:43:37Z Robbaer 12 wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehumancommunity.org/content/downloads.html]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest developmental updates and are not guaranteed to be stable. Currently, the latest release is MakeHuman 1.2.0. For version 1.2.0, you can go directly to [http://www.makehumancommunity.org/content/makehuman_120.html] where you can find links for the release notes, the downloads for various platforms, and a list of know issues. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows 10/11 == Download the zip file from the from the download page [http://www.makehuman.org/download.php download page]. Then simply unzip it where you prefer, and double click on makehuman.exe to start the application. No installation is needed. == Mac OS X == Download the DMG file from the download page [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. 528bc08c298ccb9a5826312a3c977e34aad1db42 2130 2129 2022-04-23T15:42:16Z Robbaer 12 wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehumancommunity.org/content/downloads.html]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest developmental updates and are not guaranteed to be stable. Currently, the latest release is MakeHuman 1.2.0. For version 1.2.0, you can go directly to [http://www.makehumancommunity.org/content/makehuman_120.html] where you can find links for the release notes, the downloads for various platforms, and a list of know issues. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows == Download the zip file from the from the download page [http://www.makehuman.org/download.php download page]. Then simply unzip it where you prefer, and double click on makehuman.exe to start the application. No installation is needed. == Mac OS X == Download the DMG file from the download page [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. 20e5a6016277e4ab4d80bd7497c4cd85d2b5da2b 2129 2128 2022-04-23T15:41:17Z Robbaer 12 wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehumancommunity.org/content/downloads.html]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest developmental updates and are not guaranteed to be stable. Currently, the latest release is MakeHuman 1.2.0. For version 1.2.0, you can go directly to [http://www.makehumancommunity.org/content/makehuman_120.html] where there links for release notes, downloads for various platforms, and a list of know issues. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows == Download the zip file from the from the download page [http://www.makehuman.org/download.php download page]. Then simply unzip it where you prefer, and double click on makehuman.exe to start the application. No installation is needed. == Mac OS X == Download the DMG file from the download page [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. f75730f1584ec83e5c2020304f6a9234aeefe1b2 2128 2127 2022-04-23T15:39:17Z Robbaer 12 /* Windows */ wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehumancommunity.org/content/downloads.html]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest developmental updates and are not guaranteed to be stable. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows == Download the zip file from the from the download page [http://www.makehuman.org/download.php download page]. Then simply unzip it where you prefer, and double click on makehuman.exe to start the application. No installation is needed. == Mac OS X == Download the DMG file from the download page [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. 32944c8fe812d4522130e7aea71c4dbe6164ecf2 2127 2126 2022-04-23T15:29:12Z Robbaer 12 wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehumancommunity.org/content/downloads.html]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest developmental updates and are not guaranteed to be stable. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows == Download the zip file from the from the download page [http://www.makehuman.org/download.php download page]. For version 1.2.0, you can go directly to [http://www.makehumancommunity.org/content/makehuman_120.html]. Then simply unzip it where you prefer, and double click on makehuman.exe to start the application. No installation is needed. == Mac OS X == Download the DMG file from the download page [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. f7a3a71bc6f9d39b9429f57b34dba6f5829977a8 2126 1126 2022-04-23T15:19:46Z Robbaer 12 wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehumancommunity.org/content/downloads.html]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest developmental updates and are not guaranteed to be stable. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows == Download the zip file from the from the download page [http://www.makehuman.org/download.php download page]. Then simply unzip it where you prefer, and double click on makehuman.exe to start the application. No installation is needed. == Mac OS X == Download the DMG file from the download page [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. 32944c8fe812d4522130e7aea71c4dbe6164ecf2 1126 1125 2016-07-11T10:12:19Z Sobbayi 32 wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehuman.org/download.php]. Later in the development life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest deveopmental updates and are not guaranteed to be stable. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows == Download the zip file from the from the download page [http://www.makehuman.org/download.php download page]. Then simply unzip it where you prefer, and double click on makehuman.exe to start the application. No installation is needed. == Mac OS X == Download the DMG file from the download page [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivatives. Other Linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. c031ff40dd6101d875e04a2a0895ebd690f22779 1125 1124 2016-07-11T10:11:27Z Sobbayi 32 wikitext text/x-wiki MakeHuman can be downloaded here [http://www.makehuman.org/download.php]. Later in the developent life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest deveopmental updates and are not guaranteed to be stable. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows == Download the zip file from the from the download page [http://www.makehuman.org/download.php download page]. Then simply unzip it where you prefer, and double click on makehuman.exe to start the application. No installation is needed. == Mac OS X == Download the DMG file from the download page [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivates. Other linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. 351a49d1de7670bfe303a94855a5dbefeddb7d1b 1124 1123 2016-07-11T10:10:25Z Sobbayi 32 /* Mac OS X */ wikitext text/x-wiki MakeHuman can be downloaded here [http://http://www.makehuman.org/download.php]. Later in the developent life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest deveopmental updates and are not guaranteed to be stable. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows == Download the zip file from the from the download page [http://www.makehuman.org/download.php download page]. Then simply unzip it where you prefer, and double click on makehuman.exe to start the application. No installation is needed. == Mac OS X == Download the DMG file from the download page [http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivates. Other linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. 58fc31508a1b027967381b7d2e0effd1fdb3a4d2 1123 992 2016-07-11T10:09:50Z Sobbayi 32 /* Windows */ wikitext text/x-wiki MakeHuman can be downloaded here [http://http://www.makehuman.org/download.php]. Later in the developent life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest deveopmental updates and are not guaranteed to be stable. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows == Download the zip file from the from the download page [http://www.makehuman.org/download.php download page]. Then simply unzip it where you prefer, and double click on makehuman.exe to start the application. No installation is needed. == Mac OS X == Download the DMG file from the download page [http://http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivates. Other linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. 6c7909b9e7c94e4992716148e613f63eedc13a5a 992 774 2016-05-31T08:38:38Z Joepal 14 /* Installing from source */ wikitext text/x-wiki MakeHuman can be downloaded here [http://http://www.makehuman.org/download.php]. Later in the developent life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest deveopmental updates and are not guaranteed to be stable. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows == Download the zip file from the from the download page [http://http://www.makehuman.org/download.php download page]. Then simply unzip it where you prefer, and double click on makehuman.exe to start the application. No installation is needed. == Mac OS X == Download the DMG file from the download page [http://http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivates. Other linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Running_MakeHuman_from_source]] for more information. faa765f67b6c53b937cfcc6f48c7bbd399b7d2ca 774 745 2016-05-24T11:58:06Z Joepal 14 wikitext text/x-wiki MakeHuman can be downloaded here [http://http://www.makehuman.org/download.php]. Later in the developent life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest deveopmental updates and are not guaranteed to be stable. == System Requirements == You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == Windows == Download the zip file from the from the download page [http://http://www.makehuman.org/download.php download page]. Then simply unzip it where you prefer, and double click on makehuman.exe to start the application. No installation is needed. == Mac OS X == Download the DMG file from the download page [http://http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. == Linux == At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivates. Other linux distributions will need to run from source. == Installing from source == If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Libraries and build procedures]] for more information. 7648c5a59799606ad69f0a9085e17e61bea988b9 745 744 2016-05-20T13:11:17Z Joepal 14 wikitext text/x-wiki MakeHuman can be downloaded here [http://http://www.makehuman.org/download.php]. Later in the developent life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest deveopmental updates and are not guaranteed to be stable. ==== System Requirements ==== You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] ==== Windows ==== Download the zip file from the from the download page [http://http://www.makehuman.org/download.php download page]. Then simply unzip it where you prefer, and double click on makehuman.exe to start the application. No installation is needed. ==== Mac OS X ==== Download the DMG file from the download page [http://http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. ==== Linux ==== At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivates. Other linux distributions will need to run from source. ==== Installing from source ==== If you want to play around with the code, follow the latest development, or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Libraries and build procedures]] for more information. 3ab137f716992cdbff945b9e710ec93c7a6b72f8 744 679 2016-05-20T13:09:53Z Joepal 14 wikitext text/x-wiki MakeHuman can be downloaded here [http://http://www.makehuman.org/download.php]. Later in the developent life cycle, it might make sense to download nightly builds, which are found here: [http://download.tuxfamily.org/makehuman/nightly/]. Nightly represent the latest deveopmental updates and are not guaranteed to be stable. ==== System Requirements ==== You will need about half a gigabyte of free disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "--noshaders" command line switch. On Windows, this switch can be added to your shortcut. See also [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] ==== Windows ==== Download the zip file from the from the download page [http://http://www.makehuman.org/download.php download page]. Then simply unzip it where you prefer, and double click on makehuman.exe to start the application. No installation is needed. ==== Mac OS X ==== Download the DMG file from the download page [http://http://www.makehuman.org/download.php download page]. Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman supports Snow Leopard and newer. ==== Linux ==== At the point of writing this, the newest stable release is only available via PPA, see [https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x]. This should work on all debian derivates. Other linux distributions will need to run from source. ==== Installing from source ==== If you want to install from source or are having trouble with the prepackaged binaries you can run from a source clone from BitBucket. This requires that you have installed python 2.7 and a set of other dependencies. See [[Documentation:Libraries and build procedures]] for more information. e3dd537a6554ceefe6f79db948a513239da59dd4 679 2016-05-20T08:28:04Z Joepal 14 Created page with "==== Installable versions of MakeHuman™ are available for Windows, Mac OS X and Linux. ==== The installable versions of the current!LINK!http://www.makehuman.org/content/do..." wikitext text/x-wiki ==== Installable versions of MakeHuman™ are available for Windows, Mac OS X and Linux. ==== The installable versions of the current!LINK!http://www.makehuman.org/content/download_makehuman_102.html -- stable !/LINK!!LINK!http://www.makehuman.org/content/download_makehuman_102.html -- release!/LINK!of MakeHuman are available for downlaod, as are!LINK!http://www.makehuman.org/content/download_nightlybuild.html -- nightly builds!/LINK! representing the latest deveopmental updates (not guaranteed stable) for the same platforms. ==== System Requirements ==== You will need about 250 MB of disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "-noshaders" command line switch. On Windows, this switch can be added to your shortcut. ==== Choice of Installation Directory ==== The preferred install location location for MakeHuman is a directory simply named "MakeHuman", but in practice you can use another meaningful name. if it is constructed of ASCII characters. On Windows, C:\Makehuman would make a good choice, and on Linux-alike OS's ~/MakeHuman would make a good choice. Program data is written to the user's home directory by default, and not to the program install directory. Thus, it is not essential that users have write privledges to the program install directory. One caution on Windows systems is that the installation directory should not contain non-ASCII characters as this has been reported to cause problems for some users. This also implies that if your username includes non-ASCII letters that the desktop and Docuemts folders will not be appropriate places for installation because they would result in a path containing non-ASCII cahracters [e.g., C:\users\Åke\MakeHuman or C:\users\Desktop\Åke\MakeHuman are likely to cause problems). ==== Windows ==== Download the zip file (or the installer, if available) from the from the download page (!LINK!http://makehuman.org/content/download.html -- http://makehuman.org/content/download.html!/LINK!). * Installer (not available yet): just run it. The application will be accessible from the Start menu. * Zip arhive: just to unzip it where you prefer, and double click on makehuman.exe to start the application. ==== Mac OS X ==== Download and run the installer (or the zip file) from the from the download page (!LINK!http://makehuman.org/content/download.html -- http://makehuman.org/content/download.html!/LINK!). Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman™ supports Snow Leopard and newer. ==== Linux ==== Installers are avaiaible for debian (E.g Ubuntu, Debian etc.) and rpm based distributions (E.g Red-hat, Suse etc.). Please use the appropriate package for your distribution. If you do not want to use the prebuilt packages or are having trouble with the packages refer to "Installing from source" below. ==== Installing from source ==== If you want to install from source or are having trouble with the prepackaged binaries; Makehuman provides compressed source packages. These will work on all supported platforms provided all dependencies are satisfied. To execute MakeHuman simply run makehuman.py located in your unzipped makehuman source directory. For dependencies and libraries, please read the section "!LINK!http://www.makehuman.org/doc/node/libraries_and_build_procedures.html -- Libraries and build procedures!/LINK!". 9513ea89c904c95ba0a33da8a08a4f3e6762165c Documentation:Legal 3000 50 2151 743 2024-07-04T17:15:21Z Stefano.ferrari 128 The urls to the license where out-of-date. I put the url of the github repository and the new site page with the explanation. wikitext text/x-wiki === The MakeHuman License === The MakeHuman license is a split AGPL/CC0 setup.[https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md The full text of the license can be found here]. There is also a [http://www.makehumancommunity.org/content/license_explanation.html license explanation page.] === External Tools Licenses === From time to time the MakeHuman™ Team may release new external tools in various forms. Unless otherwise explicitly stated they are covered by the GNU AGPL 3. ===== Current tools are: ===== * The MakeTarget addon for Blender is distributed under the GNU AGPL 3. * The MakeTarget standalone application is distributed under the GNU AGPL 3. * The MakeClothes addon for Blender is distributed under the GNU AGPL 3. * The MakeWalk addon for Blender is distributed under the GNU GPL 2. Its primary copyright holder is Thomas Larsson. See the [http://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License] and [http://www.gnu.org/licenses/gpl-2.0.html General Public License] for more details === Copyright and primary legal contact === In spring 2016, the copyright of the code files and the assets were consolidated and standardized. Some members of the core dev team explicitly asked to ''not'' be assigned any copyright or responsibility for the code. After this, most of what now constitutes MakeHuman is jointly copyrighted by the remaining members of the team. See the headers of the individual code or asset files for more details. While doing this, copyright was also assigned to [https://www.datacollection.se Data Collection AB] (which is a limited liability company owned by Joel Palmius), and this company was given the responsibility of working as primary legal contact for MakeHuman. d49cec35f5e7ef5253da738e497fbfc457b2779c 743 742 2016-05-20T13:00:45Z Joepal 14 wikitext text/x-wiki === The MakeHuman License === The MakeHuman license is a split AGPL/CC0 setup.[http://www.makehuman.org/license.php The full text of the license can be found here]. There is also a [http://www.makehuman.org/license_explanation.php license explanation page.] === External Tools Licenses === From time to time the MakeHuman™ Team may release new external tools in various forms. Unless otherwise explicitly stated they are covered by the GNU AGPL 3. ===== Current tools are: ===== * The MakeTarget addon for Blender is distributed under the GNU AGPL 3. * The MakeTarget standalone application is distributed under the GNU AGPL 3. * The MakeClothes addon for Blender is distributed under the GNU AGPL 3. * The MakeWalk addon for Blender is distributed under the GNU GPL 2. Its primary copyright holder is Thomas Larsson. See the [http://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License] and [http://www.gnu.org/licenses/gpl-2.0.html General Public License] for more details === Copyright and primary legal contact === In spring 2016, the copyright of the code files and the assets were consolidated and standardized. Some members of the core dev team explicitly asked to ''not'' be assigned any copyright or responsibility for the code. After this, most of what now constitutes MakeHuman is jointly copyrighted by the remaining members of the team. See the headers of the individual code or asset files for more details. While doing this, copyright was also assigned to [https://www.datacollection.se Data Collection AB] (which is a limited liability company owned by Joel Palmius), and this company was given the responsibility of working as primary legal contact for MakeHuman. 292c148fd1ac8fa835dc10fb14748c6a5a4692a5 742 741 2016-05-20T12:59:54Z Joepal 14 wikitext text/x-wiki === The MakeHuman License === The MakeHuman license is a split AGPL/CC0 setup.[http://www.makehuman.org/license.php The full text of the license can be found here]. There is also a [http://www.makehuman.org/license_explanation.php license explanation page.] === External Tools Licenses === From time to time the MakeHuman™ Team may release new external tools in various forms. Unless otherwise explicitly stated they are covered by the GNU AGPL 3. ===== Current tools are: ===== * The MakeTarget addon for Blender is distributed under the GNU AGPL 3. * The MakeTarget standalone application is distributed under the GNU AGPL 3. * The MakeClothes addon for Blender is distributed under the GNU AGPL 3. * The MakeWalk addon for Blender is distributed under the GNU GPL 2. Its primary copyright holder is Thomas Larsson. See the [http://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License] and [http://www.gnu.org/licenses/gpl-2.0.html General Public License] for more details === Copyright and primary legal contact === In spring 2016, the copyright of the code files and the assets were consolidated and standardized. Some members of the core dev team explicitly asked to ''not'' be assigned any copyright or responsibility for the code. After this, most of what now constitutes MakeHuman is jointly copyrighted by the remaining members of the team. While doing this, copyright was also assigned to [https://www.datacollection.se Data Collection AB] (which is a limited liability company owned by Joel Palmius), and this company was given the responsibility of working as primary legal contact for MakeHuman. 8f93f59b13af6b021c5b2e98abdc42330a865682 741 740 2016-05-20T12:59:07Z Joepal 14 wikitext text/x-wiki === The MakeHuman License === The MakeHuman license is a split AGPL/CC0 setup.[http://www.makehuman.org/license.php The full text of the license can be found here]. There is also a [http://www.makehuman.org/license_explanation.php license explanation page.] === External Tools Licenses === From time to time the MakeHuman™ Team may release new external tools in various forms. Unless otherwise explicitly stated they are covered by the GNU AGPL 3. ===== Current tools are: ===== * The MakeTarget addon for Blender is distributed under the GNU AGPL 3. * The MakeTarget standalone application is distributed under the GNU AGPL 3. * The MakeClothes addon for Blender is distributed under the GNU AGPL 3. * The MakeWalk addon for Blender is distributed under the GNU GPL 2. Its primary copyright holder is Thomas Larsson. See the [http://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License] and [http://www.gnu.org/licenses/gpl-2.0.html General Public License] for more details === Copyright and primary legal contact === In spring 2016, the copyright of the code files and the assets were consolidated and standardized. Some members of the core dev team explicitly asked to ''not'' be assigned any copyright or responsibility for the code. Most of what now constitutes MakeHuman is thus now jointly copyrighted by the other members of the team. While doing this, copyright was also assigned to [https://www.datacollection.se Data Collection AB] (which is a limited liability company owned by Joel Palmius), and this company was given the responsibility of working as primary legal contact for MakeHuman. c0f8e7864d110a5caeda1a1f5ce6679a632a75ff 740 739 2016-05-20T12:58:38Z Joepal 14 wikitext text/x-wiki === The MakeHuman License === The MakeHuman license is a split AGPL/CC0 setup.[http://www.makehuman.org/license.php The full text of the license can be found here]. There is also a [http://www.makehuman.org/license_explanation.php license explanation page.] === External Tools Licenses === From time to time the MakeHuman™ Team may release new external tools in various forms. Unless otherwise explicitly stated they are covered by the GNU AGPL 3. ===== Current tools are: ===== * The MakeTarget addon for Blender is distributed under the GNU AGPL 3. * The MakeTarget standalone application is distributed under the GNU AGPL 3. * The MakeClothes addon for Blender is distributed under the GNU AGPL 3. * The MakeWalk addon for Blender is distributed under the GNU GPL 2. It's primary copyright holder is Thomas Larsson. See the [http://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License] and [http://www.gnu.org/licenses/gpl-2.0.html General Public License] for more details === Copyright and primary legal contact === In spring 2016, the copyright of the code files and the assets were consolidated and standardized. Some members of the core dev team explicitly asked to ''not'' be assigned any copyright or responsibility for the code. Most of what now constitutes MakeHuman is thus now jointly copyrighted by the other members of the team. While doing this, copyright was also assigned to [https://www.datacollection.se Data Collection AB] (which is a limited liability company owned by Joel Palmius), and this company was given the responsibility of working as primary legal contact for MakeHuman. 04a246bf51f28b25107d40cdedc2a5fe1a0ef312 739 117 2016-05-20T12:57:00Z Joepal 14 wikitext text/x-wiki === The MakeHuman License === The MakeHuman license is a split AGPL/CC0 setup.[http://www.makehuman.org/license.php The full text of the license can be found here]. There is also a [http://www.makehuman.org/license_explanation.php license explanation page.] === External Tools Licenses === From time to time the MakeHuman™ Team may release new external tools in various forms. Unless otherwise explicitly stated they are covered by the GNU AGPL 3. ===== Current tools are: ===== * MakeTarget scripts for Blender is distributed under the GNU AGPL 3. The MakeHuman morph target files that it generates are by default is not covered by any license, since they are designed by you. However, if you make a morph target based on another pre-existing morph target (or a combination of pre-existing morph targets) you must fulfill the license terms of the pre-existing morph target. Note: All targets in the MakeHuman base distribution are licensed AGPL. Also that any target derived from these must also be licensed AGPL unless you get written permission by the author of the target file you derive from. * MakeClothes script for Blender is distributed under the GNU AGPL 3. If the user is the original author of the clothes, he is free to choose any license for them. * MakeWalk script for Blender is distributed under the GNU GPL 2. The license of output files generated using it is free to determine by the user, except when mocap data was used that enforces a specific license. * MakeTarget standalone is distributed under the GNU AGPL 3. The MakeHuman morph target files that it generates are by default not covered by any license, since they are designed by you. However, if you make a morph target based on another pre-existing morph target (or a combination of pre-existing morph targets) you must fulfill the license terms of the pre-existing morph target. Note: All targets in the MakeHuman base distribution are licensed AGPL. Also that any target derived from these must also be licensed AGPL unless you get written permission by the author of the target file you derive from. See the [http://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License] and [http://www.gnu.org/licenses/gpl-2.0.html General Public License] for more details === Copyright and primary legal contact === In spring 2016, the copyright of the code files and the assets were consolidated and standardized. Some members of the core dev team explicitly asked to ''not'' be assigned any copyright or responsibility for the code. Most of what now constitutes MakeHuman is thus now jointly copyrighted by the other members of the team. While doing this, copyright was also assigned to [https://www.datacollection.se Data Collection AB] (which is a limited liability company owned by Joel Palmius), and this company was given the responsibility of working as primary legal contact for MakeHuman. 63776744a6d9c84e44d69210f3ffc05ce0ae947d 117 116 2015-07-10T15:23:09Z Aiena 15 fixed licensing TODO wikitext text/x-wiki ==== Legal ==== The MakeHuman License The MakeHuman license is a split AGPL/CC0 setup.[http://www.makehuman.org/license.php The full text of the license can be found here]. There is also a [http://www.makehuman.org/license_explanation.php license explanation page.] ==== External Tools Licenses ==== From time to time the MakeHuman™ Team may release new external tools in various forms. Unless otherwise explicitly stated they are covered by the GNU AGPL 3. ===== Current tools are: ===== * MakeTarget scripts for Blender is distributed under the GNU AGPL 3. The MakeHuman morph target files that it generates are by default is not covered by any license, since they are designed by you. However, if you make a morph target based on another pre-existing morph target (or a combination of pre-existing morph targets) you must fulfill the license terms of the pre-existing morph target. Note: All targets in the MakeHuman base distribution are licensed AGPL. Also that any target derived from these must also be licensed AGPL unless you get written permission by the author of the target file you derive from. * MakeClothes script for Blender is distributed under the GNU AGPL 3. If the user is the original author of the clothes, he is free to choose any license for them. * MakeWalk script for Blender is distributed under the GNU GPL 2. The license of output files generated using it is free to determine by the user, except when mocap data was used that enforces a specific license. * MHX Importer.It is distributed under the GNU GPL 2. * MakeTarget standalone is distributed under the GNU AGPL 3. The MakeHuman morph target files that it generates are by default not covered by any license, since they are designed by you. However, if you make a morph target based on another pre-existing morph target (or a combination of pre-existing morph targets) you must fulfill the license terms of the pre-existing morph target. Note: All targets in the MakeHuman base distribution are licensed AGPL. Also that any target derived from these must also be licensed AGPL unless you get written permission by the author of the target file you derive from. See the [http://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License!]and [http://www.gnu.org/licenses/gpl-2.0.html General Public License!] for more details e7a439bc07f218008f370cd086bde78a86bcfa4b 116 115 2015-07-10T14:27:16Z Aiena 15 /* Legal */ wikitext text/x-wiki ==== Legal ==== The MakeHuman License The MakeHuman license is a split AGPL/CC0 setup.[/content/license.html The full text of the license can be found here]. There is also a [/content/license_explanation.html license explanation page.] ==== External Tools Licenses ==== From time to time the MakeHuman™ Team may release new external tools in various forms. Unless otherwise explicitly stated they are covered by the GNU AGPL 3. ===== Current tools are: ===== * MakeTarget scripts for Blender is distributed under the GNU AGPL 3. The MakeHuman morph target files that it generates are by default is not covered by any license, since they are designed by you. However, if you make a morph target based on another pre-existing morph target (or a combination of pre-existing morph targets) you must fulfill the license terms of the pre-existing morph target. Note: All targets in the MakeHuman base distribution are licensed AGPL. Also that any target derived from these must also be licensed AGPL unless you get written permission by the author of the target file you derive from. * MakeClothes script for Blender is distributed under the GNU AGPL 3. If the user is the original author of the clothes, he is free to choose any license for them. * MakeWalk script for Blender is distributed under the GNU GPL 2. The license of output files generated using it is free to determine by the user, except when mocap data was used that enforces a specific license. * MHX Importer.It is distributed under the GNU GPL 2. * MakeTarget standalone is distributed under the GNU AGPL 3. The MakeHuman morph target files that it generates are by default not covered by any license, since they are designed by you. However, if you make a morph target based on another pre-existing morph target (or a combination of pre-existing morph targets) you must fulfill the license terms of the pre-existing morph target. Note: All targets in the MakeHuman base distribution are licensed AGPL. Also that any target derived from these must also be licensed AGPL unless you get written permission by the author of the target file you derive from. See the [http://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License!]and [http://www.gnu.org/licenses/gpl-2.0.html General Public License!] for more details f05f9a253f324c42d6a6776dcff4b4a08cdf6e37 115 2015-07-10T14:10:47Z Aiena 15 Add initial updated Legal page (TODO: make a local /content/license.html) wikitext text/x-wiki ==== Legal ==== The MakeHuman License The MakeHuman license is a split AGPL/CC0 setup.[/content/license.html The full text of the license can be found here]. There is also a [/content/license_explanation.html license explanation page. ==== External Tools Licenses ==== From time to time the MakeHuman™ Team may release new external tools in various forms. Unless otherwise explicitly stated they are covered by the GNU AGPL 3. ===== Current tools are: ===== * MakeTarget scripts for Blender is distributed under the GNU AGPL 3. The MakeHuman morph target files that it generates are by default is not covered by any license, since they are designed by you. However, if you make a morph target based on another pre-existing morph target (or a combination of pre-existing morph targets) you must fulfill the license terms of the pre-existing morph target. Note: All targets in the MakeHuman base distribution are licensed AGPL. Also that any target derived from these must also be licensed AGPL unless you get written permission by the author of the target file you derive from. * MakeClothes script for Blender is distributed under the GNU AGPL 3. If the user is the original author of the clothes, he is free to choose any license for them. * MakeWalk script for Blender is distributed under the GNU GPL 2. The license of output files generated using it is free to determine by the user, except when mocap data was used that enforces a specific license. * MHX Importer.It is distributed under the GNU GPL 2. * MakeTarget standalone is distributed under the GNU AGPL 3. The MakeHuman morph target files that it generates are by default not covered by any license, since they are designed by you. However, if you make a morph target based on another pre-existing morph target (or a combination of pre-existing morph targets) you must fulfill the license terms of the pre-existing morph target. Note: All targets in the MakeHuman base distribution are licensed AGPL. Also that any target derived from these must also be licensed AGPL unless you get written permission by the author of the target file you derive from. See the [http://www.gnu.org/licenses/agpl-3.0.html GNU Affero General Public License!]and [http://www.gnu.org/licenses/gpl-2.0.html General Public License!] for more details 1e196583f3d5c3a92a24b5b93326b495c2feab05 Documentation:Libraries and build procedures 3000 246 1149 1117 2016-08-29T14:10:00Z Aranuvir 17 wikitext text/x-wiki With each MakeHuman release, packages are created for MS Windows, Mac OS X, and Debian derivatives for linux. At present there is not an operating system independent package (although the raw repository will work on all platforms). Each platform has special considerations that are addressed by the designated mainainter for that platform. === Dependencies === In order to run makehuman and/or build packages the following need to be installed on the system: * Python (Python 2.7 (python 3.x will not work).!LINK!http://www.python.org/download/ -- http://www.python.org/download/!/LINK!) * Python-numpy (!LINK!http://sourceforge.net/projects/numpy/files/NumPy/ -- http://sourceforge.net/projects/numpy/files/NumPy/!/LINK!) * Python-opengl (!LINK!http://pyopengl.sourceforge.net/ -- http://pyopengl.sourceforge.net/!/LINK!) * Python-qt4 (!LINK!http://www.riverbankcomputing.com/software/pyqt -- http://www.riverbankcomputing.com/software/pyqt!/LINK!) * Python-qt4-gl (Package required by some linux distributions only) For linux there are scripts (buildscripts/deb/install_deb_dependencies.bash and buildscripts/rpm/install_rpm_dependencies.bash) which will install all the necessary dependencies but please note that these scripts may not agree with all debian and rpm based distros so it may be worth reading the bash script contents prior to running them. === Assets === For obvious reasons, the binary assets (characters, textures, clothes, etc..) are not stored on Mercurial repository, but in two different places: * * Immutable single archive files of the assets of finished versions of MH are stored (disregarding patch version token) on bitbucket (!LINK!https://bitbucket.org/MakeHuman/makehuman/downloads -- https://bitbucket.org/MakeHuman/makehuman/downloads!/LINK!) * Assets still under development are store on Tuxfamily ftp:!LINK!http://download.tuxfamily.org/makehuman/assets/ -- http://download.tuxfamily.org/makehuman/assets/!/LINK! When a new version is released, the current ftp asset tree gets zipped and uploaded to bitbucket. In the tuxfamily asset store, the folder for that version's contents are replaced with an archive_url.txt file that points the download script to the right url. A new folder gets created on the tuxfamily host containing the assets to be included in the next release. For a released version, assets will usually not change, unless to fix bugs (in which case the previous archive is best kept, and a new one is created alongside it with a slightly different name), and the archive_url.txt file is updated. To download automatically the assets and place them in the correct folder on a local repository, it's sufficient to run the python script with the command: === Other scripts === In the makehuman root, there are a few scripts which need to be run: * cleannpz.sh (cleannpz.bat) * cleanpyc.sh (cleanpyc.bat) * compile_targets.py * compile_models.py * compile_proxies.py Note that all these are called automatically in the correct order by the "build_prepare.py" script in "buildscripts" when running one of the pre-existing package building routines below. However, when running makehuman from a source checkout, you will need to run these scripts in the above order. === General proceedings for making a package === On all platforms the following steps should be taken when making the package: * Update from HG repository (!LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK!) * Run the scripts in the makehuman root directory. These will for example compile target files to npz files * Copy all that's relevant to a work directory, excluding at least *.target, the utils directory and the tools directory (strictly speaking there are more that is not necessary, but it will have a minor influence) * Do platform-dependent stuff to the work directory * Zip the directory into a suitable installable format for the platform. ==== Linux ==== === Debian === In order for makehuman to work on Debian the following dependencies are needed. * python * python-qt4 * python-numpy * python-opengl * python-qt4-gl These can be installed by running the command below: On Debian/derivatives (Ubuntu kubuntu etc.) the whole package building is automated through the buildDeb.py script found in the "deb" folder. For Deb script see:!LINK!https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=default -- https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=d...!/LINK! To build a deb file, create an empty directory (for example /tmp/deb) and run: When the script has finished, the deb file will be available in /tmp/deb/output.There are some settings in the head of the buildDeb.py script for tweaking the output. === Fedora 19 64-biit RPM Packaging === These instruction have been written for and tested on Fedora 19 64-bit. You will never be able to run the MakeHuman HG version on distros such as RHEL/CentOS 6.4 or earlier, since they do not support python 2.7, not even if you enable RPMForge. The instructions may or may not work on other RPM-based distros. * * Install a Mercurial client (Hg) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- Makehuman BitBucket Repository!/LINK!. * Install required dependencies. As root, run the bash script for installing the required dependencies. buildscripts/rpm/install_rpm_dependencies.bash This script also installs optional but recommended dependencies. If you only want the really required dependencies, run * Run MakeHuman. Change working directory to the root of the makehuman tree: Then run: You will most likely want to do this as your normal desktop user, not as root. ==== Windows ==== * * Install an Mercurial client!LINK!http://tortoisehg.bitbucket.org/download/ -- (Tortoise HG client!/LINK!is a good choice on Windows) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- MakeHuman repository!/LINK!(see!LINK!http://www.makehuman.org/doc/node/development_infrastructure.html -- http://www.makehuman.org/doc/node/development_infrastructure.html!/LINK!) * Install required dependencies If you are using a 64bit Windows version (only applies to 64-bit computers), you can choose to use either 32-bit python or 64-bit python. Howver it is important that your library dependencies (NumPy, PyOpenGL, and pyQT4) are 32-bit if you use 32-bit Python and 64-bit if you use 64-bit Python. * Run MakeHuman. Start a command console (cmd.exe), change directory to the makehuman folder. Then run: ==== Mac OSX ==== To build MakeHuman for Mac OS X, you should: * * Download the MakeHuman OSX Builder from: !LINK!https://bitbucket.org/MakeHuman/makehuman-osx-builder -- https://bitbucket.org/MakeHuman/makehuman-osx-builder!/LINK! * Follow the included instructions (Instructions.rtf) == Packager's notes == Notes for packagers of Makehuman stables and nightlies. === Packaging RPM's for Suse/Fedora using Open Build Service (OBS) === The Open Build Service is a service formerly known as the Opensuse build service. OBS allows packagers to build packages for several targets. Here a target is a particular OS version E.g. Suse 13.1, Suse 12.3, Fedora 20 , Ubuntu 14.04 and so on. OBS being a build system by itself can be hosted anywhere even on local infrastructure. For MakeHuman packages we use the OBS instance hosted by Novell at build.opensuse.org This document will briefly outline the typical packaging workflow for Suse and Fedora. Both distributions use the RPM format and subsequently adhere to RPM's packaging rules. [[File:obs-flow-chart-scaled.png]] === 1) Prepare source tarball: === OBS does not allow pulling from the internet once the rpm is being processed into a package so. When creating the source tarball you should assemble it either on your own computer or a server online (even a VPS will do). There are several Important files and scripts which are of interest to us. One is build_prepare.py this assembles the main folder and all the common data which is needed by all OSes be it Mac or LInux distros or windows. This script is essential to run. Then there is build_rpm.py. We borrow some of the initial code in this and use it on our bash script but we do not build the whole RPM because OBS does that. Another third inportant file is build.conf (this stores the configuration used by build_prepare.py to make the source tarball). Using the above scripts/files I prepared a Bash script which is shown below. The above script assumes the following: * You have cloned MakeHuman's Mercurial (Hg) repo into your home directory and it is located at ~/makehuman (cloning into ~/ automatically makes the makehuman folder) * You have python , numpy and pyQt4 installed (package names may vary from distribution to distribution) * You are running on a LInux distribution. * You want to prepare a source tarball from Hg tags. * $VERS is the latest user specified stable tagged version * makehuman-$VERS is your destination folder where all files are copied * the final tarball uses bzip compression. How the tarball is compressed is significant as RPM accepts only certain compression algorithms. The resultant file is makehuman-$VERS.tar.bz2 (E.g. makehuman-1.0.2.tar.bz2) * You use an FTP server whose file path is located at /var/ftp you can skip this step if the script is run locally by commenting the lines out. ​Explanation of the above script: In the first section we use Hg and extract available tags and ask the user for input on which stable tag he/she wants to build against. In the second section we automatically create the build.conf file which is used to specify if we want a release or development folder. Here we set isRelease=True In the third section we use build.conf along with build_prepare.py this creates a basic non-OS specific folder in home (~/). In the fourth section we copy extra files such as the .desktop file and the makehuman icon file, the shell wrapper for MakeHuman and remove the .bat file which is not needed in linux. Currently there is a bug where command line arguments are not passed by the shell wrapper to the python executable. We fix this by manually editing the file automatically in our bash script before copying it into the target folder to be tarballed. This is moved into the folder created earlier by build_prepare.py . With this we now have have a folder with all the basic requirements needed for packaging. FInally the folder is then tarballed and it is ready for upload to OBS. If you are not using an FTP server then comment out the “mv” command which moves the tarball to /var/ftp in the shell script above. IN some distributions the FTP directory is /srv/ftp === 2) Upload the tarball to OBS === The next step is to upload the tarball to OBS. Firstly you need to create a username and password. Then login to build.opensuse.org and create a project. On account creation you get your own home directory. Two interfaces exist to OBS. One is the command-line interface which is available by installing the package "osc" it is available in most distributions. The other one is the Web User interface. Both are equally useful the command line interface is better for doing certain tasks however. OBS also has a feature called “ services”. Several services are available such as services to pull from various sources e.g. FTP servers online, services to tarball the version controlled sources directly (tar_scm). You can make use of these _services (they are defined using XML notation in "_service" files). Read!LINK!”http://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService” -- Source Services!/LINK!; or you can manually upload your tarball through the Web UI or use the "osc" command line utility. To learn how to use the "osc" utility use "man osc" or view the manpage online. I would not recommend using _service files to pull the tarball as they can stop working. It is better to manually push the tarball to OBS. Either by pressing the upload button on the Web UI or placing the tarball in your project home directory created by using the “osc checkout” command. Then typing “osc ar” (add /remove) and finally “ osc commit -m ”put commit description here” “ to push and commit the changes you just made. You can also automate the above process by adding lines to the shell script but It is better to administer osc separately and manually to allow for more control. === 3) Prepare the spec file: === A .spec file is a special file which is used to build RPM's. It “contains information required by RPM to build the package, as well as instructions telling RPM to build it. The spec file also dictates exactly what files are a part of the package, and where they should be installed. The RPM specification is very well defined and it is fundamental than any packager develop a strong base in the fundamentals.” (taken from “Maximum RPM”) A very important book detailing the various capabilities of RPM is!LINK!”http://www.rpm.org/max-rpm/” -- Maximum RPM!/LINK!. This is a must read for any packager and will help in understanding the spec file shown below. If you have not read it please bookmark the page and give the book a read. I cannot stress how important it is. In OBS we have 2 main OS's which use RPM's as build targets Fedora and Suse. RPM provides macros to make packaging more standardised and easy. Most Macros are common however some are distribution specific. Below is the spec file used by the Makehuman project. For version 1.0.2. The above .spec file follows the general structure and format of spec files as per the RPM specification. The spec file has been formatted for for OBS by running “osc service localrun format_spec_file” then reading the contents to ensure that nothing went wrong and committing the changes back to OBS. In the above spec file we have split MakeHuman into 2 subpackages and made them depend upon each other to ensure consistency. As you can see there are 2 sources one is the tarball we created with our bash script earlier and there is another file called "makehuman.1" this is a manpage. In the spec file instructions are issued to gzip it and put into the manual directory on install. The manpage (Source101 in the .spec file) is shown below. How man pages are created is out of scope of this document. Man pages use gtroff. There are however ample resources online which can help with this. The .spec file has been commented to provide you with a better understanding of what is done at various stages. Once the .spec file has been updated on OBS it automatically triggers a rebuild duribg that time you can monitor the status of the build process and correct errors in your spec file or sources as they arise. === 4)Pushing changes to the official repositories === Once you are satisfied that your package is stable you can make a submit request to submit the package from the Web User Interface or run the command below. In the above command we submit the “makehuman” package to the OpenSuse “graphics” project. After this the package is reviewed by the maintainer of the graphics project and approved or rejected with comments given. You will receive an email after the project has been reviewed. Notes: * The .spec file and the manual page will change over time. The above is there for illustration purposes only. * You can find copies of the most recent stable .spec file and makehuman.1 manpage!LINK!:https://build.opensuse.org/package/show/graphics/makehuman: -- here!/LINK!. This is the stable version after a "submit request" to the official Suse repositories. 35483da1d8520de3ec1c07587885ca5bbb25f653 1117 725 2016-07-05T17:32:37Z Aranuvir 17 /* Packaging RPM's for Suse/Fedora using Open Build Service (OBS) */ wikitext text/x-wiki With each MakeHuman release, packages are created for MS Windows, Mac OS X, and Debian derivatives for linux. At present there is not an operating system independent package (although the raw repository will work on all platforms). Each platform has special considerations that are addressed by the designated mainainter for that platform. === Dependencies === In order to run makehuman and/or build packages the following need to be installed on the system: * Python (Python 2.7 (python 3.x will not work).!LINK!http://www.python.org/download/ -- http://www.python.org/download/!/LINK!) * Python-numpy (!LINK!http://sourceforge.net/projects/numpy/files/NumPy/ -- http://sourceforge.net/projects/numpy/files/NumPy/!/LINK!) * Python-opengl (!LINK!http://pyopengl.sourceforge.net/ -- http://pyopengl.sourceforge.net/!/LINK!) * Python-qt4 (!LINK!http://www.riverbankcomputing.com/software/pyqt -- http://www.riverbankcomputing.com/software/pyqt!/LINK!) * Python-qt4-gl (Package required by some linux distributions only) For linux there are scripts (buildscripts/deb/install_deb_dependencies.bash and buildscripts/rpm/install_rpm_dependencies.bash) which will install all the necessary dependencies but please note that these scripts may not agree with all debian and rpm based distros so it may be worth reading the bash script contents prior to running them. === Assets === For obvious reasons, the binary assets (characters, textures, clothes, etc..) are not stored on Mercurial repository, but in two different places: * * Immutable single archive files of the assets of finished versions of MH are stored (disregarding patch version token) on bitbucket (!LINK!https://bitbucket.org/MakeHuman/makehuman/downloads -- https://bitbucket.org/MakeHuman/makehuman/downloads!/LINK!) * Assets still under development are store on Tuxfamily ftp:!LINK!http://download.tuxfamily.org/makehuman/assets/ -- http://download.tuxfamily.org/makehuman/assets/!/LINK! When a new version is released, the current ftp asset tree gets zipped and uploaded to bitbucket. In the tuxfamily asset store, the folder for that version's contents are replaced with an archive_url.txt file that points the download script to the right url. A new folder gets created on the tuxfamily host containing the assets to be included in the next release. For a released version, assets will usually not change, unless to fix bugs (in which case the previous archive is best kept, and a new one is created alongside it with a slightly different name), and the archive_url.txt file is updated. To download automatically the assets and place them in the correct folder on a local repository, it's sufficient to run the python script with the command: === Other scripts === In the makehuman root, there are a few scripts which need to be run: * cleannpz.sh (cleannpz.bat) * cleanpyc.sh (cleanpyc.bat) * compile_targets.py * compile_models.py * compile_proxies.py Note that all these are called automatically in the correct order by the "build_prepare.py" script in "buildscripts" when running one of the pre-existing package building routines below. However, when running makehuman from a source checkout, you will need to run these scripts in the above order. === General proceedings for making a package === On all platforms the following steps should be taken when making the package: * Update from HG repository (!LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK!) * Run the scripts in the makehuman root directory. These will for example compile target files to npz files * Copy all that's relevant to a work directory, excluding at least *.target, the utils directory and the tools directory (strictly speaking there are more that is not necessary, but it will have a minor influence) * Do platform-dependent stuff to the work directory * Zip the directory into a suitable installable format for the platform. ==== Linux ==== === Debian === In order for makehuman to work on Debian the following dependencies are needed. * python * python-qt4 * python-numpy * python-opengl * python-qt4-gl These can be installed by running the command below: On Debian/derivatives (Ubuntu kubuntu etc.) the whole package building is automated through the buildDeb.py script found in the "deb" folder. For Deb script see:!LINK!https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=default -- https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=d...!/LINK! To build a deb file, create an empty directory (for example /tmp/deb) and run: When the script has finished, the deb file will be available in /tmp/deb/output.There are some settings in the head of the buildDeb.py script for tweaking the output. === Fedora 19 64-biit RPM Packaging === These instruction have been written for and tested on Fedora 19 64-bit. You will never be able to run the MakeHuman HG version on distros such as RHEL/CentOS 6.4 or earlier, since they do not support python 2.7, not even if you enable RPMForge. The instructions may or may not work on other RPM-based distros. * * Install a Mercurial client (Hg) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- Makehuman BitBucket Repository!/LINK!. * Install required dependencies. As root, run the bash script for installing the required dependencies. buildscripts/rpm/install_rpm_dependencies.bash This script also installs optional but recommended dependencies. If you only want the really required dependencies, run * Run MakeHuman. Change working directory to the root of the makehuman tree: Then run: You will most likely want to do this as your normal desktop user, not as root. ==== Windows ==== * * Install an Mercurial client!LINK!http://tortoisehg.bitbucket.org/download/ -- (Tortoise HG client!/LINK!is a good choice on Windows) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- MakeHuman repository!/LINK!(see!LINK!http://www.makehuman.org/doc/node/development_infrastructure.html -- http://www.makehuman.org/doc/node/development_infrastructure.html!/LINK!) * Install required dependencies If you are using a 64bit Windows version (only applies to 64-bit computers), you can choose to use either 32-bit python or 64-bit python. Howver it is important that your library dependencies (NumPy, PyOpenGL, and pyQT4) are 32-bit if you use 32-bit Python and 64-bit if you use 64-bit Python. * Run MakeHuman. Start a command console (cmd.exe), change directory to the makehuman folder. Then run: ==== Mac OSX ==== To build MakeHuman for Mac OS X, you should: * * Download the MakeHuman OSX Builder from: !LINK!https://bitbucket.org/MakeHuman/makehuman-osx-builder -- https://bitbucket.org/MakeHuman/makehuman-osx-builder!/LINK! * Follow the included instructions (Instructions.rtf) == Packager's notes == Notes for packagers of Makehuman stables and nightlies. === Packaging RPM's for Suse/Fedora using Open Build Service (OBS) === The Open Build Service is a service formerly known as the Opensuse build service. OBS allows packagers to build packages for several targets. Here a target is a particular OS version E.g. Suse 13.1, Suse 12.3, Fedora 20 , Ubuntu 14.04 and so on. OBS being a build system by itself can be hosted anywhere even on local infrastructure. For MakeHuman packages we use the OBS instance hosted by Novell at build.opensuse.org This document will briefly outline the typical packaging workflow for Suse and Fedora. Both distributions use the RPM format and subsequently adhere to RPM's packaging rules. [[File:obs-flow-chart-scaled.png]] === 1) Prepare source tarball: === OBS does not allow pulling from the internet once the rpm is being processed into a package so. When creating the source tarball you should assemble it either on your own computer or a server online (even a VPS will do). There are several Important files and scripts which are of interest to us. One is build_prepare.py this assembles the main folder and all the common data which is needed by all OSes be it Mac or LInux distros or windows. This script is essential to run. Then there is build_rpm.py. We borrow some of the initial code in this and use it on our bash script but we do not build the whole RPM because OBS does that. Another third inportant file is build.conf (this stores the configuration used by build_prepare.py to make the source tarball). Using the above scripts/files I prepared a Bash script which is shown below. The above script assumes the following: * You have cloned MakeHuman's Mercurial (Hg) repo into your home directory and it is located at ~/makehuman (cloning into ~/ automatically makes the makehuman folder) * You have python , numpy and pyQt4 installed (package names may vary from distribution to distribution) * You are running on a LInux distribution. * You want to prepare a source tarball from Hg tags. * $VERS is the latest user specified stable tagged version * makehuman-$VERS is your destination folder where all files are copied * the final tarball uses bzip compression. How the tarball is compressed is significant as RPM accepts only certain compression algorithms. The resultant file is makehuman-$VERS.tar.bz2 (E.g. makehuman-1.0.2.tar.bz2) * You use an FTP server whose file path is located at /var/ftp you can skip this step if the script is run locally by commenting the lines out. ​Explanation of the above script: In the first section we use Hg and extract available tags and ask the user for input on which stable tag he/she wants to build against. In the second section we automatically create the build.conf file which is used to specify if we want a release or development folder. Here we set isRelease=True In the third section we use build.conf along with build_prepare.py this creates a basic non-OS specific folder in home (~/). In the fourth section we copy extra files such as the .desktop file and the makehuman icon file, the shell wrapper for MakeHuman and remove the .bat file which is not needed in linux. Currently there is a bug where command line arguments are not passed by the shell wrapper to the python executable. We fix this by manually editing the file automatically in our bash script before copying it into the target folder to be tarballed. This is moved into the folder created earlier by build_prepare.py . With this we now have have a folder with all the basic requirements needed for packaging. FInally the folder is then tarballed and it is ready for upload to OBS. If you are not using an FTP server then comment out the “mv” command which moves the tarball to /var/ftp in the shell script above. IN some distributions the FTP directory is /srv/ftp === 2) Upload the tarball to OBS === The next step is to upload the tarball to OBS. Firstly you need to create a username and password. Then login to build.opensuse.org and create a project. On account creation you get your own home directory. Two interfaces exist to OBS. One is the command-line interface which is available by installing the package "osc" it is available in most distributions. The other one is the Web User interface. Both are equally useful the command line interface is better for doing certain tasks however. OBS also has a feature called “ services”. Several services are available such as services to pull from various sources e.g. FTP servers online, services to tarball the version controlled sources directly (tar_scm). You can make use of these _services (they are defined using XML notation in "_service" files). Read!LINK!”http://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService” -- Source Services!/LINK!; or you can manually upload your tarball through the Web UI or use the "osc" command line utility. To learn how to use the "osc" utility use "man osc" or view the manpage online. I would not recommend using _service files to pull the tarball as they can stop working. It is better to manually push the tarball to OBS. Either by pressing the upload button on the Web UI or placing the tarball in your project home directory created by using the “osc checkout” command. Then typing “osc ar” (add /remove) and finally “ osc commit -m ”put commit description here” “ to push and commit the changes you just made. You can also automate the above process by adding lines to the shell script but It is better to administer osc separately and manually to allow for more control. === 3) Prepare the spec file: === A .spec file is a special file which is used to build RPM's. It “contains information required by RPM to build the package, as well as instructions telling RPM to build it. The spec file also dictates exactly what files are a part of the package, and where they should be installed. The RPM specification is very well defined and it is fundamental than any packager develop a strong base in the fundamentals.” (taken from “Maximum RPM”) A very important book detailing the various capabilities of RPM is!LINK!”http://www.rpm.org/max-rpm/” -- Maximum RPM!/LINK!. This is a must read for any packager and will help in understanding the spec file shown below. If you have not read it please bookmark the page and give the book a read. I cannot stress how important it is. In OBS we have 2 main OS's which use RPM's as build targets Fedora and Suse. RPM provides macros to make packaging more standardised and easy. Most Macros are common however some are distribution specific. Below is the spec file used by the Makehuman project. For version 1.0.2. The above .spec file follows the general structure and format of spec files as per the RPM specification. The spec file has been formatted for for OBS by running “osc service localrun format_spec_file” then reading the contents to ensure that nothing went wrong and committing the changes back to OBS. In the above spec file we have split MakeHuman into 2 subpackages and made them depend upon each other to ensure consistency. As you can see there are 2 sources one is the tarball we created with our bash script earlier and there is another file called "makehuman.1" this is a manpage. In the spec file instructions are issued to gzip it and put into the manual directory on install. The manpage (Source101 in the .spec file) is shown below. How man pages are created is out of scope of this document. Man pages use gtroff. There are however ample resources online which can help with this. The .spec file has been commented to provide you with a better understanding of what is done at various stages. Once the .spec file has been updated on OBS it automatically triggers a rebuild duribg that time you can monitor the status of the build process and correct errors in your spec file or sources as they arise. === 4)Pushing changes to the official repositories === Once you are satisfied that your package is stable you can make a submit request to submit the package from the Web User Interface or run the command below. In the above command we submit the “makehuman” package to the OpenSuse “graphics” project. After this the package is reviewed by the maintainer of the graphics project and approved or rejected with comments given. You will receive an email after the project has been reviewed. Notes: * The .spec file and the manual page will change over time. The above is there for illustration purposes only. * You can find copies of the most recent stable .spec file and makehuman.1 manpage!LINK!:https://build.opensuse.org/package/show/graphics/makehuman: -- here!/LINK!. This is the stable version after a "submit request" to the official Suse repositories. ad4790b486d3ec2ce837f6236d7188a4406143bb 725 720 2016-05-20T11:34:44Z Joepal 14 wikitext text/x-wiki With each MakeHuman release, packages are created for MS Windows, Mac OS X, and Debian derivatives for linux. At present there is not an operating system independent package (although the raw repository will work on all platforms). Each platform has special considerations that are addressed by the designated mainainter for that platform. === Dependencies === In order to run makehuman and/or build packages the following need to be installed on the system: * Python (Python 2.7 (python 3.x will not work).!LINK!http://www.python.org/download/ -- http://www.python.org/download/!/LINK!) * Python-numpy (!LINK!http://sourceforge.net/projects/numpy/files/NumPy/ -- http://sourceforge.net/projects/numpy/files/NumPy/!/LINK!) * Python-opengl (!LINK!http://pyopengl.sourceforge.net/ -- http://pyopengl.sourceforge.net/!/LINK!) * Python-qt4 (!LINK!http://www.riverbankcomputing.com/software/pyqt -- http://www.riverbankcomputing.com/software/pyqt!/LINK!) * Python-qt4-gl (Package required by some linux distributions only) For linux there are scripts (buildscripts/deb/install_deb_dependencies.bash and buildscripts/rpm/install_rpm_dependencies.bash) which will install all the necessary dependencies but please note that these scripts may not agree with all debian and rpm based distros so it may be worth reading the bash script contents prior to running them. === Assets === For obvious reasons, the binary assets (characters, textures, clothes, etc..) are not stored on Mercurial repository, but in two different places: * * Immutable single archive files of the assets of finished versions of MH are stored (disregarding patch version token) on bitbucket (!LINK!https://bitbucket.org/MakeHuman/makehuman/downloads -- https://bitbucket.org/MakeHuman/makehuman/downloads!/LINK!) * Assets still under development are store on Tuxfamily ftp:!LINK!http://download.tuxfamily.org/makehuman/assets/ -- http://download.tuxfamily.org/makehuman/assets/!/LINK! When a new version is released, the current ftp asset tree gets zipped and uploaded to bitbucket. In the tuxfamily asset store, the folder for that version's contents are replaced with an archive_url.txt file that points the download script to the right url. A new folder gets created on the tuxfamily host containing the assets to be included in the next release. For a released version, assets will usually not change, unless to fix bugs (in which case the previous archive is best kept, and a new one is created alongside it with a slightly different name), and the archive_url.txt file is updated. To download automatically the assets and place them in the correct folder on a local repository, it's sufficient to run the python script with the command: === Other scripts === In the makehuman root, there are a few scripts which need to be run: * cleannpz.sh (cleannpz.bat) * cleanpyc.sh (cleanpyc.bat) * compile_targets.py * compile_models.py * compile_proxies.py Note that all these are called automatically in the correct order by the "build_prepare.py" script in "buildscripts" when running one of the pre-existing package building routines below. However, when running makehuman from a source checkout, you will need to run these scripts in the above order. === General proceedings for making a package === On all platforms the following steps should be taken when making the package: * Update from HG repository (!LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK!) * Run the scripts in the makehuman root directory. These will for example compile target files to npz files * Copy all that's relevant to a work directory, excluding at least *.target, the utils directory and the tools directory (strictly speaking there are more that is not necessary, but it will have a minor influence) * Do platform-dependent stuff to the work directory * Zip the directory into a suitable installable format for the platform. ==== Linux ==== === Debian === In order for makehuman to work on Debian the following dependencies are needed. * python * python-qt4 * python-numpy * python-opengl * python-qt4-gl These can be installed by running the command below: On Debian/derivatives (Ubuntu kubuntu etc.) the whole package building is automated through the buildDeb.py script found in the "deb" folder. For Deb script see:!LINK!https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=default -- https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=d...!/LINK! To build a deb file, create an empty directory (for example /tmp/deb) and run: When the script has finished, the deb file will be available in /tmp/deb/output.There are some settings in the head of the buildDeb.py script for tweaking the output. === Fedora 19 64-biit RPM Packaging === These instruction have been written for and tested on Fedora 19 64-bit. You will never be able to run the MakeHuman HG version on distros such as RHEL/CentOS 6.4 or earlier, since they do not support python 2.7, not even if you enable RPMForge. The instructions may or may not work on other RPM-based distros. * * Install a Mercurial client (Hg) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- Makehuman BitBucket Repository!/LINK!. * Install required dependencies. As root, run the bash script for installing the required dependencies. buildscripts/rpm/install_rpm_dependencies.bash This script also installs optional but recommended dependencies. If you only want the really required dependencies, run * Run MakeHuman. Change working directory to the root of the makehuman tree: Then run: You will most likely want to do this as your normal desktop user, not as root. ==== Windows ==== * * Install an Mercurial client!LINK!http://tortoisehg.bitbucket.org/download/ -- (Tortoise HG client!/LINK!is a good choice on Windows) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- MakeHuman repository!/LINK!(see!LINK!http://www.makehuman.org/doc/node/development_infrastructure.html -- http://www.makehuman.org/doc/node/development_infrastructure.html!/LINK!) * Install required dependencies If you are using a 64bit Windows version (only applies to 64-bit computers), you can choose to use either 32-bit python or 64-bit python. Howver it is important that your library dependencies (NumPy, PyOpenGL, and pyQT4) are 32-bit if you use 32-bit Python and 64-bit if you use 64-bit Python. * Run MakeHuman. Start a command console (cmd.exe), change directory to the makehuman folder. Then run: ==== Mac OSX ==== To build MakeHuman for Mac OS X, you should: * * Download the MakeHuman OSX Builder from: !LINK!https://bitbucket.org/MakeHuman/makehuman-osx-builder -- https://bitbucket.org/MakeHuman/makehuman-osx-builder!/LINK! * Follow the included instructions (Instructions.rtf) == Packager's notes == Notes for packagers of Makehuman stables and nightlies. === Packaging RPM's for Suse/Fedora using Open Build Service (OBS) === The Open Build Service is a service formerly known as the Opensuse build service. OBS allows packagers to build packages for several targets. Here a target is a particular OS version E.g. Suse 13.1, Suse 12.3, Fedora 20 , Ubuntu 14.04 and so on. OBS being a build system by itself can be hosted anywhere even on local infrastructure. For MakeHuman packages we use the OBS instance hosted by Novell at build.opensuse.org This document will briefly outline the typical packaging workflow for Suse and Fedora. Both distributions use the RPM format and subsequently adhere to RPM's packaging rules. !IMAGE!Pictures/obs-flow-chart-scaled.png!/IMAGE! === 1) Prepare source tarball: === OBS does not allow pulling from the internet once the rpm is being processed into a package so. When creating the source tarball you should assemble it either on your own computer or a server online (even a VPS will do). There are several Important files and scripts which are of interest to us. One is build_prepare.py this assembles the main folder and all the common data which is needed by all OSes be it Mac or LInux distros or windows. This script is essential to run. Then there is build_rpm.py. We borrow some of the initial code in this and use it on our bash script but we do not build the whole RPM because OBS does that. Another third inportant file is build.conf (this stores the configuration used by build_prepare.py to make the source tarball). Using the above scripts/files I prepared a Bash script which is shown below. The above script assumes the following: * You have cloned MakeHuman's Mercurial (Hg) repo into your home directory and it is located at ~/makehuman (cloning into ~/ automatically makes the makehuman folder) * You have python , numpy and pyQt4 installed (package names may vary from distribution to distribution) * You are running on a LInux distribution. * You want to prepare a source tarball from Hg tags. * $VERS is the latest user specified stable tagged version * makehuman-$VERS is your destination folder where all files are copied * the final tarball uses bzip compression. How the tarball is compressed is significant as RPM accepts only certain compression algorithms. The resultant file is makehuman-$VERS.tar.bz2 (E.g. makehuman-1.0.2.tar.bz2) * You use an FTP server whose file path is located at /var/ftp you can skip this step if the script is run locally by commenting the lines out. ​Explanation of the above script: In the first section we use Hg and extract available tags and ask the user for input on which stable tag he/she wants to build against. In the second section we automatically create the build.conf file which is used to specify if we want a release or development folder. Here we set isRelease=True In the third section we use build.conf along with build_prepare.py this creates a basic non-OS specific folder in home (~/). In the fourth section we copy extra files such as the .desktop file and the makehuman icon file, the shell wrapper for MakeHuman and remove the .bat file which is not needed in linux. Currently there is a bug where command line arguments are not passed by the shell wrapper to the python executable. We fix this by manually editing the file automatically in our bash script before copying it into the target folder to be tarballed. This is moved into the folder created earlier by build_prepare.py . With this we now have have a folder with all the basic requirements needed for packaging. FInally the folder is then tarballed and it is ready for upload to OBS. If you are not using an FTP server then comment out the “mv” command which moves the tarball to /var/ftp in the shell script above. IN some distributions the FTP directory is /srv/ftp === 2) Upload the tarball to OBS === The next step is to upload the tarball to OBS. Firstly you need to create a username and password. Then login to build.opensuse.org and create a project. On account creation you get your own home directory. Two interfaces exist to OBS. One is the command-line interface which is available by installing the package "osc" it is available in most distributions. The other one is the Web User interface. Both are equally useful the command line interface is better for doing certain tasks however. OBS also has a feature called “ services”. Several services are available such as services to pull from various sources e.g. FTP servers online, services to tarball the version controlled sources directly (tar_scm). You can make use of these _services (they are defined using XML notation in "_service" files). Read!LINK!”http://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService” -- Source Services!/LINK!; or you can manually upload your tarball through the Web UI or use the "osc" command line utility. To learn how to use the "osc" utility use "man osc" or view the manpage online. I would not recommend using _service files to pull the tarball as they can stop working. It is better to manually push the tarball to OBS. Either by pressing the upload button on the Web UI or placing the tarball in your project home directory created by using the “osc checkout” command. Then typing “osc ar” (add /remove) and finally “ osc commit -m ”put commit description here” “ to push and commit the changes you just made. You can also automate the above process by adding lines to the shell script but It is better to administer osc separately and manually to allow for more control. === 3) Prepare the spec file: === A .spec file is a special file which is used to build RPM's. It “contains information required by RPM to build the package, as well as instructions telling RPM to build it. The spec file also dictates exactly what files are a part of the package, and where they should be installed. The RPM specification is very well defined and it is fundamental than any packager develop a strong base in the fundamentals.” (taken from “Maximum RPM”) A very important book detailing the various capabilities of RPM is!LINK!”http://www.rpm.org/max-rpm/” -- Maximum RPM!/LINK!. This is a must read for any packager and will help in understanding the spec file shown below. If you have not read it please bookmark the page and give the book a read. I cannot stress how important it is. In OBS we have 2 main OS's which use RPM's as build targets Fedora and Suse. RPM provides macros to make packaging more standardised and easy. Most Macros are common however some are distribution specific. Below is the spec file used by the Makehuman project. For version 1.0.2. The above .spec file follows the general structure and format of spec files as per the RPM specification. The spec file has been formatted for for OBS by running “osc service localrun format_spec_file” then reading the contents to ensure that nothing went wrong and committing the changes back to OBS. In the above spec file we have split MakeHuman into 2 subpackages and made them depend upon each other to ensure consistency. As you can see there are 2 sources one is the tarball we created with our bash script earlier and there is another file called "makehuman.1" this is a manpage. In the spec file instructions are issued to gzip it and put into the manual directory on install. The manpage (Source101 in the .spec file) is shown below. How man pages are created is out of scope of this document. Man pages use gtroff. There are however ample resources online which can help with this. The .spec file has been commented to provide you with a better understanding of what is done at various stages. Once the .spec file has been updated on OBS it automatically triggers a rebuild duribg that time you can monitor the status of the build process and correct errors in your spec file or sources as they arise. === 4)Pushing changes to the official repositories === Once you are satisfied that your package is stable you can make a submit request to submit the package from the Web User Interface or run the command below. In the above command we submit the “makehuman” package to the OpenSuse “graphics” project. After this the package is reviewed by the maintainer of the graphics project and approved or rejected with comments given. You will receive an email after the project has been reviewed. Notes: * The .spec file and the manual page will change over time. The above is there for illustration purposes only. * You can find copies of the most recent stable .spec file and makehuman.1 manpage!LINK!:https://build.opensuse.org/package/show/graphics/makehuman: -- here!/LINK!. This is the stable version after a "submit request" to the official Suse repositories. c96f9936280ede1025ea839be9a381f7528d863c 720 717 2016-05-20T11:30:46Z Joepal 14 wikitext text/x-wiki With each MakeHuman release, packages are created for MS Windows, Mac OS X, and Debian derivatives for linux. At present there is not an operating system independent package (although the raw repository will work on all platforms). Each platform has special considerations that are addressed by the designated mainainter for that platform. === Dependencies === In order to run makehuman and/or build packages the following need to be installed on the system: * Python (Python 2.7 (python 3.x will not work).!LINK!http://www.python.org/download/ -- http://www.python.org/download/!/LINK!) * Python-numpy (!LINK!http://sourceforge.net/projects/numpy/files/NumPy/ -- http://sourceforge.net/projects/numpy/files/NumPy/!/LINK!) * Python-opengl (!LINK!http://pyopengl.sourceforge.net/ -- http://pyopengl.sourceforge.net/!/LINK!) * Python-qt4 (!LINK!http://www.riverbankcomputing.com/software/pyqt -- http://www.riverbankcomputing.com/software/pyqt!/LINK!) * Python-qt4-gl (Package required by some linux distributions only) For linux there are scripts (buildscripts/deb/install_deb_dependencies.bash and buildscripts/rpm/install_rpm_dependencies.bash) which will install all the necessary dependencies but please note that these scripts may not agree with all debian and rpm based distros so it may be worth reading the bash script contents prior to running them. === Assets === For obvious reasons, the binary assets (characters, textures, clothes, etc..) are not stored on Mercurial repository, but in two different places: * * Immutable single archive files of the assets of finished versions of MH are stored (disregarding patch version token) on bitbucket (!LINK!https://bitbucket.org/MakeHuman/makehuman/downloads -- https://bitbucket.org/MakeHuman/makehuman/downloads!/LINK!) * Assets still under development are store on Tuxfamily ftp:!LINK!http://download.tuxfamily.org/makehuman/assets/ -- http://download.tuxfamily.org/makehuman/assets/!/LINK! When a new version is released, the current ftp asset tree gets zipped and uploaded to bitbucket. In the tuxfamily asset store, the folder for that version's contents are replaced with an archive_url.txt file that points the download script to the right url. A new folder gets created on the tuxfamily host containing the assets to be included in the next release. For a released version, assets will usually not change, unless to fix bugs (in which case the previous archive is best kept, and a new one is created alongside it with a slightly different name), and the archive_url.txt file is updated. To download automatically the assets and place them in the correct folder on a local repository, it's sufficient to run the python script with the command: === Other scripts === In the makehuman root, there are a few scripts which need to be run: * cleannpz.sh (cleannpz.bat) * cleanpyc.sh (cleanpyc.bat) * compile_targets.py * compile_models.py * compile_proxies.py Note that all these are called automatically in the correct order by the "build_prepare.py" script in "buildscripts" when running one of the pre-existing package building routines below. However, when running makehuman from a source checkout, you will need to run these scripts in the above order. === General proceedings for making a package === On all platforms the following steps should be taken when making the package: * Update from HG repository (!LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK!) * Run the scripts in the makehuman root directory. These will for example compile target files to npz files * Copy all that's relevant to a work directory, excluding at least *.target, the utils directory and the tools directory (strictly speaking there are more that is not necessary, but it will have a minor influence) * Do platform-dependent stuff to the work directory * Zip the directory into a suitable installable format for the platform. ==== Linux ==== === Debian === In order for makehuman to work on Debian the following dependencies are needed. * python * python-qt4 * python-numpy * python-opengl * python-qt4-gl These can be installed by running the command below: On Debian/derivatives (Ubuntu kubuntu etc.) the whole package building is automated through the buildDeb.py script found in the "deb" folder. For Deb script see:!LINK!https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=default -- https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=d...!/LINK! To build a deb file, create an empty directory (for example /tmp/deb) and run: When the script has finished, the deb file will be available in /tmp/deb/output.There are some settings in the head of the buildDeb.py script for tweaking the output. === Fedora 19 64-biit RPM Packaging === These instruction have been written for and tested on Fedora 19 64-bit. You will never be able to run the MakeHuman HG version on distros such as RHEL/CentOS 6.4 or earlier, since they do not support python 2.7, not even if you enable RPMForge. The instructions may or may not work on other RPM-based distros. * * Install a Mercurial client (Hg) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- Makehuman BitBucket Repository!/LINK!. * Install required dependencies. As root, run the bash script for installing the required dependencies. buildscripts/rpm/install_rpm_dependencies.bash This script also installs optional but recommended dependencies. If you only want the really required dependencies, run * Run MakeHuman. Change working directory to the root of the makehuman tree: Then run: You will most likely want to do this as your normal desktop user, not as root. ==== Windows ==== * * Install an Mercurial client!LINK!http://tortoisehg.bitbucket.org/download/ -- (Tortoise HG client!/LINK!is a good choice on Windows) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- MakeHuman repository!/LINK!(see!LINK!http://www.makehuman.org/doc/node/development_infrastructure.html -- http://www.makehuman.org/doc/node/development_infrastructure.html!/LINK!) * Install required dependencies If you are using a 64bit Windows version (only applies to 64-bit computers), you can choose to use either 32-bit python or 64-bit python. Howver it is important that your library dependencies (NumPy, PyOpenGL, and pyQT4) are 32-bit if you use 32-bit Python and 64-bit if you use 64-bit Python. * Run MakeHuman. Start a command console (cmd.exe), change directory to the makehuman folder. Then run: ==== Mac OSX ==== To build MakeHuman for Mac OS X, you should: * * Download the MakeHuman OSX Builder from: !LINK!https://bitbucket.org/MakeHuman/makehuman-osx-builder -- https://bitbucket.org/MakeHuman/makehuman-osx-builder!/LINK! * Follow the included instructions (Instructions.rtf) f544f6a09458ee54c57ac82d4c8c1d05a1f08889 717 2016-05-20T11:27:48Z Joepal 14 Created page with "With each MakeHuman release, packages are created for MS Windows, Mac OS X, and Debian derivatives for linux. At present there is not an operating system independent package (..." wikitext text/x-wiki With each MakeHuman release, packages are created for MS Windows, Mac OS X, and Debian derivatives for linux. At present there is not an operating system independent package (although the raw repository will work on all platforms). Each platform has special considerations that are addressed by the designated mainainter for that platform. === Dependencies === In order to run makehuman and/or build packages the following need to be installed on the system: * Python (Python 2.7 (python 3.x will not work).!LINK!http://www.python.org/download/ -- http://www.python.org/download/!/LINK!) * Python-numpy (!LINK!http://sourceforge.net/projects/numpy/files/NumPy/ -- http://sourceforge.net/projects/numpy/files/NumPy/!/LINK!) * Python-opengl (!LINK!http://pyopengl.sourceforge.net/ -- http://pyopengl.sourceforge.net/!/LINK!) * Python-qt4 (!LINK!http://www.riverbankcomputing.com/software/pyqt -- http://www.riverbankcomputing.com/software/pyqt!/LINK!) * Python-qt4-gl (Package required by some linux distributions only) For linux there are scripts (buildscripts/deb/install_deb_dependencies.bash and buildscripts/rpm/install_rpm_dependencies.bash) which will install all the necessary dependencies but please note that these scripts may not agree with all debian and rpm based distros so it may be worth reading the bash script contents prior to running them. === Assets === For obvious reasons, the binary assets (characters, textures, clothes, etc..) are not stored on Mercurial repository, but in two different places: * * Immutable single archive files of the assets of finished versions of MH are stored (disregarding patch version token) on bitbucket (!LINK!https://bitbucket.org/MakeHuman/makehuman/downloads -- https://bitbucket.org/MakeHuman/makehuman/downloads!/LINK!) * Assets still under development are store on Tuxfamily ftp:!LINK!http://download.tuxfamily.org/makehuman/assets/ -- http://download.tuxfamily.org/makehuman/assets/!/LINK! When a new version is released, the current ftp asset tree gets zipped and uploaded to bitbucket. In the tuxfamily asset store, the folder for that version's contents are replaced with an archive_url.txt file that points the download script to the right url. A new folder gets created on the tuxfamily host containing the assets to be included in the next release. For a released version, assets will usually not change, unless to fix bugs (in which case the previous archive is best kept, and a new one is created alongside it with a slightly different name), and the archive_url.txt file is updated. To download automatically the assets and place them in the correct folder on a local repository, it's sufficient to run the python script with the command: === Other scripts === In the makehuman root, there are a few scripts which need to be run: * cleannpz.sh (cleannpz.bat) * cleanpyc.sh (cleanpyc.bat) * compile_targets.py * compile_models.py * compile_proxies.py Note that all these are called automatically in the correct order by the "build_prepare.py" script in "buildscripts" when running one of the pre-existing package building routines below. However, when running makehuman from a source checkout, you will need to run these scripts in the above order. === General proceedings for making a package === On all platforms the following steps should be taken when making the package: * Update from HG repository (!LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK!) * Run the scripts in the makehuman root directory. These will for example compile target files to npz files * Copy all that's relevant to a work directory, excluding at least *.target, the utils directory and the tools directory (strictly speaking there are more that is not necessary, but it will have a minor influence) * Do platform-dependent stuff to the work directory * Zip the directory into a suitable installable format for the platform. ==== Linux ==== === Debian === In order for makehuman to work on Debian the following dependencies are needed. * python * python-qt4 * python-numpy * python-opengl * python-qt4-gl These can be installed by running the command below: On Debian/derivatives (Ubuntu kubuntu etc.) the whole package building is automated through the buildDeb.py script found in the "deb" folder. For Deb script see:!LINK!https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=default -- https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=d...!/LINK! To build a deb file, create an empty directory (for example /tmp/deb) and run: When the script has finished, the deb file will be available in /tmp/deb/output.There are some settings in the head of the buildDeb.py script for tweaking the output. === Fedora 19 64-biit RPM Packaging === These instruction have been written for and tested on Fedora 19 64-bit. You will never be able to run the MakeHuman HG version on distros such as RHEL/CentOS 6.4 or earlier, since they do not support python 2.7, not even if you enable RPMForge. The instructions may or may not work on other RPM-based distros. * * Install a Mercurial client (Hg) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- Makehuman BitBucket Repository!/LINK!. * Install required dependencies. As root, run the bash script for installing the required dependencies. buildscripts/rpm/install_rpm_dependencies.bash This script also installs optional but recommended dependencies. If you only want the really required dependencies, run * Run MakeHuman. Change working directory to the root of the makehuman tree: Then run: You will most likely want to do this as your normal desktop user, not as root. ==== Windows ==== * * Install an Mercurial client!LINK!http://tortoisehg.bitbucket.org/download/ -- (Tortoise HG client!/LINK!is a good choice on Windows) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- MakeHuman repository!/LINK!(see!LINK!http://www.makehuman.org/doc/node/development_infrastructure.html -- http://www.makehuman.org/doc/node/development_infrastructure.html!/LINK!) * Install required dependencies If you are using a 64bit Windows version (only applies to 64-bit computers), you can choose to use either 32-bit python or 64-bit python. Howver it is important that your library dependencies (NumPy, PyOpenGL, and pyQT4) are 32-bit if you use 32-bit Python and 64-bit if you use 64-bit Python. * Run MakeHuman. Start a command console (cmd.exe), change directory to the makehuman folder. Then run: ==== Mac OSX ==== To build MakeHuman for Mac OS X, you should: * * Download the MakeHuman OSX Builder from: !LINK!https://bitbucket.org/MakeHuman/makehuman-osx-builder -- https://bitbucket.org/MakeHuman/makehuman-osx-builder!/LINK! * Follow the included instructions (Instructions.rtf) === Development infrastructure === The development of MakeHuman is based on two fundamental tools: * Mercurial (HG), a stable and robust platform for distributed revision control, with the main repo hosted on!LINK!https://bitbucket.org/MakeHuman/makehuman -- Bitbucket!/LINK! * A collaborative software!LINK!http://bugtracker.makehuman.org -- development platform!/LINK!, based on!LINK!http://www.redmine.org/ -- Redmine!/LINK!. ==== Get the code from BitBucket. ==== Obtain the code from BitBucket repository is very simple, but you need to have Mercurial installed on your system. It's natively present on Linux systems, while for Microsoft Windows, a good software is TortoiseHG (!LINK!http://tortoisehg.bitbucket.org/ -- http://tortoisehg.bitbucket.org/!/LINK!). To clone the repository to your PC, just use this command: hg clone!LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK! With tortoiseHG, you can do it visually, with: right-click --> TortoiseHG --> clone ==== Using Redmine in MakeHuman development ==== Redmine is a very powerful tool. [To expand with technical information about the roadmap organizations, the subprojects, and how to use it to accept experimental features] 321b5bbe39cb0bfaecf7c3146b7f05c4e53150cb Documentation:Load, save and export 3000 251 755 2016-05-24T11:05:43Z Joepal 14 Joepal moved page [[Documentation:Load, save and export]] to [[Documentation:Loading and saving]]: Breaking out export stuff wikitext text/x-wiki #REDIRECT [[Documentation:Loading and saving]] 1b8962daf3aaecdfb4873e483b672682e2ab3cb6 Documentation:Loading and saving 3000 228 1310 1105 2017-02-11T13:38:52Z Aranuvir 17 /* Loading Files */ wikitext text/x-wiki The leftmost section of the Toolbar includes 3 quick action icons: 1) for loading models from native .mhm files; 2) for saving the model as a native .mhm file; and 3) for exporting the model in various formats used by other 3D programs (this is discussed on another page). [[File:lse_quick.png]] For more complete file access support (Load, Save, Export), the Files Tab options provides access to the controls that manage saving, loading, and exporting the MakeHuman project to or from files. [[File:lse_tabs.png]] == Loading Files == Files are loaded using either the Quick Load icon or by directly choosing the File tab and the Load subtab. [[File:load1.png]] By default, models that have beem saved in MHM format are retrieved from the user directory %HOMEPATH%/makehuman/v1/models/. ([[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]) In the event that you have stored your MHM files in a different directory/folder, you can navigate to that directory/folder using the ellipsis at the top of the center panel. The right hand panel will be populated with thumbnail images of all the MHM files found in the path specified in the path at the top of the center panel. Simply click on the icon for the model you wish to load in the right panel. The model will load and refresh to its completed state in the center panel. You can load different models sequentially, if you wish. They will simply replace the previous model in the center panel. MakeHuman™ is designed so that all loaded models are loaded without changing the camera location. Thus, you can zoom in on a particular area of the body and compare multiple saved models from a single camera perspective. == Saving Files (.mhm format) == Files are saved using either the Quick Save icon or by directly choosing the File tab and the Save sub tab. The native file format for saving MakeHuman™ files is the .mhm format. It is important to understand that this format does not save a pixel by pixel representation of your model nor does it save program objects like the actual clothes or hair. Rather, it saves the necessary information for the program to reconstruct your model from its internally defined assets. This means that if you move a .mhm file to another computer that lacks a piece of custom clothing, custom hair, or other custom object, the MakeHuman™ program on the new computer will be unable to provide a complete representation of your model unless you also move the custom asset(s) to the second computer. By default, model files (in.mhm format) are saved to the user directory %HOMEPATH%/Documents/makehuman/v1/models/. If you wish to save your files in a different location, you can use the ellipsis at the top of the center panel to navigate to the directory/folder of interest. In addtion to the .mhm file, the save operation will generate a thumbnail image of the model as it appears in the viewport at save time. Thus, you will want to move the camera to a meaningful and unique view of the model before saving so that the thumbnail image will be easy to identify visually. CAUTIONARY NOTE:On windows OS (and perhaps on other OS's) there is a small gliche with saving to non-standard directories in MH 1.0.1 and MH 1.0.2. If you hit the ellipsis with a blank file name, use the system dialog to navigate to your directory of choice, enter a file name without extension in the system dialog, hit save, and watch the dialog close, the file will have been saved using the directory name rather than the filename you provided in the save box of the system dialog. This directory name will now appear to the right of the ellipsis in the center panel. It seems that you can avoid this problem by providing a full file name to the right of the ellipsis before you begin the save procedure, then using the system dialog to navigate to the desired directory, and supplying the same file name a second time in the filename blank of the save dialog. This irratic behavior has been reported, and when fixed, this cautionary note should be removed. (Refer to bug 506 - RWB) 881185e9576d38c58e5d56502a4a62ed28403931 1105 757 2016-07-05T17:13:51Z Aranuvir 17 wikitext text/x-wiki The leftmost section of the Toolbar includes 3 quick action icons: 1) for loading models from native .mhm files; 2) for saving the model as a native .mhm file; and 3) for exporting the model in various formats used by other 3D programs (this is discussed on another page). [[File:lse_quick.png]] For more complete file access support (Load, Save, Export), the Files Tab options provides access to the controls that manage saving, loading, and exporting the MakeHuman project to or from files. [[File:lse_tabs.png]] == Loading Files == Files are loaded using either the Quick Load icon or by directly choosing the File tab and the Load subtab. [[File:load1.png]] By default, models that have beem saved in MHM format are retrieved from the user directory%HOMEPATH%/makehuman/v1/models/. In the event that you have stored your MHM files in a different directory/folder, you can navigate to that directory/folder using the ellipsis at the top of the center panel. The right hand panel will be populated with thumbnail images of all the MHM files found in the path specified in the path at the top of the center panel. Simply click on the icon for the model you wish to load in the right panel. The model will load and refresh to its completed state in the center panel. You can load different models sequentially, if you wish. They will simply replace the previous model in the center panel. MakeHuman™ is designed so that all loaded models are loaded without changing the camera location. Thus, you can zoom in on a particular area of the body and compare multiple saved models from a single camera perspective. == Saving Files (.mhm format) == Files are saved using either the Quick Save icon or by directly choosing the File tab and the Save sub tab. The native file format for saving MakeHuman™ files is the .mhm format. It is important to understand that this format does not save a pixel by pixel representation of your model nor does it save program objects like the actual clothes or hair. Rather, it saves the necessary information for the program to reconstruct your model from its internally defined assets. This means that if you move a .mhm file to another computer that lacks a piece of custom clothing, custom hair, or other custom object, the MakeHuman™ program on the new computer will be unable to provide a complete representation of your model unless you also move the custom asset(s) to the second computer. By default, model files (in.mhm format) are saved to the user directory %HOMEPATH%/Documents/makehuman/v1/models/. If you wish to save your files in a different location, you can use the ellipsis at the top of the center panel to navigate to the directory/folder of interest. In addtion to the .mhm file, the save operation will generate a thumbnail image of the model as it appears in the viewport at save time. Thus, you will want to move the camera to a meaningful and unique view of the model before saving so that the thumbnail image will be easy to identify visually. CAUTIONARY NOTE:On windows OS (and perhaps on other OS's) there is a small gliche with saving to non-standard directories in MH 1.0.1 and MH 1.0.2. If you hit the ellipsis with a blank file name, use the system dialog to navigate to your directory of choice, enter a file name without extension in the system dialog, hit save, and watch the dialog close, the file will have been saved using the directory name rather than the filename you provided in the save box of the system dialog. This directory name will now appear to the right of the ellipsis in the center panel. It seems that you can avoid this problem by providing a full file name to the right of the ellipsis before you begin the save procedure, then using the system dialog to navigate to the desired directory, and supplying the same file name a second time in the filename blank of the save dialog. This irratic behavior has been reported, and when fixed, this cautionary note should be removed. (Refer to bug 506 - RWB) 35f75a46e2f32996e56e9af47b28b5d9bd65b12f 757 754 2016-05-24T11:10:46Z Joepal 14 wikitext text/x-wiki The leftmost section of the Toolbar includes 3 quick action icons: 1) for loading models from native .mhm files; 2) for saving the model as a native .mhm file; and 3) for exporting the model in various formats used by other 3D programs (this is discussed on another page). !IMAGE!Pictures/lse_quick.png!/IMAGE! For more complete file access support (Load, Save, Export), the Files Tab options provides access to the controls that manage saving, loading, and exporting the MakeHuman project to or from files. !IMAGE!Pictures/lse_tabs.png!/IMAGE! == Loading Files == Files are loaded using either the Quick Load icon or by directly choosing the File tab and the Load subtab. !IMAGE!Pictures/load1.png!/IMAGE! By default, models that have beem saved in MHM format are retrieved from the user directory%HOMEPATH%/makehuman/v1/models/. In the event that you have stored your MHM files in a different directory/folder, you can navigate to that directory/folder using the ellipsis at the top of the center panel. The right hand panel will be populated with thumbnail images of all the MHM files found in the path specified in the path at the top of the center panel. Simply click on the icon for the model you wish to load in the right panel. The model will load and refresh to its completed state in the center panel. You can load different models sequentially, if you wish. They will simply replace the previous model in the center panel. MakeHuman™ is designed so that all loaded models are loaded without changing the camera location. Thus, you can zoom in on a particular area of the body and compare multiple saved models from a single camera perspective. == Saving Files (.mhm format) == Files are saved using either the Quick Save icon or by directly choosing the File tab and the Save sub tab. The native file format for saving MakeHuman™ files is the .mhm format. It is important to understand that this format does not save a pixel by pixel representation of your model nor does it save program objects like the actual clothes or hair. Rather, it saves the necessary information for the program to reconstruct your model from its internally defined assets. This means that if you move a .mhm file to another computer that lacks a piece of custom clothing, custom hair, or other custom object, the MakeHuman™ program on the new computer will be unable to provide a complete representation of your model unless you also move the custom asset(s) to the second computer. By default, model files (in.mhm format) are saved to the user directory %HOMEPATH%/Documents/makehuman/v1/models/. If you wish to save your files in a different location, you can use the ellipsis at the top of the center panel to navigate to the directory/folder of interest. In addtion to the .mhm file, the save operation will generate a thumbnail image of the model as it appears in the viewport at save time. Thus, you will want to move the camera to a meaningful and unique view of the model before saving so that the thumbnail image will be easy to identify visually. CAUTIONARY NOTE:On windows OS (and perhaps on other OS's) there is a small gliche with saving to non-standard directories in MH 1.0.1 and MH 1.0.2. If you hit the ellipsis with a blank file name, use the system dialog to navigate to your directory of choice, enter a file name without extension in the system dialog, hit save, and watch the dialog close, the file will have been saved using the directory name rather than the filename you provided in the save box of the system dialog. This directory name will now appear to the right of the ellipsis in the center panel. It seems that you can avoid this problem by providing a full file name to the right of the ellipsis before you begin the save procedure, then using the system dialog to navigate to the desired directory, and supplying the same file name a second time in the filename blank of the save dialog. This irratic behavior has been reported, and when fixed, this cautionary note should be removed. (Refer to bug 506 - RWB) 091ff025c5a8c4193858776b553e921e595d9215 754 684 2016-05-24T11:05:33Z Joepal 14 Joepal moved page [[Documentation:Load, save and export]] to [[Documentation:Loading and saving]]: Breaking out export stuff wikitext text/x-wiki The leftmost section of the Toolbar includes 3 quick action icons: 1) for loading models from native .mhm files; 2) for saving the model as a native .mhm file; and 3) for exporting the model in various formats used by other 3D programs (e.g., dae, .fbx, .stl, .obj). !IMAGE!Pictures/lse_quick.png!/IMAGE! For more complete file access support (Load, Save, Export), the Files Tab options provides access to the controls that manage saving, loading, and exporting the MakeHuman™ project to or from files. !IMAGE!Pictures/lse_tabs.png!/IMAGE! ==== Loading Files ==== Files are loaded using either the Quick Load icon or by directly choosing the File tab and the Load subtab. !IMAGE!Pictures/load1.png!/IMAGE! By default, models that have beem saved in MHM format are retrieved from the user directory%HOMEPATH%/makehuman/v1/models/. In the event that you have stored your MHM files in a different directory/folder, you can navigate to that directory/folder using the ellipsis at the top of the center panel. The right hand panel will be populated with thumbnail images of all the MHM files found in the path specified in the path at the top of the center panel. Simply click on the icon for the model you wish to load in the right panel. The model will load and refresh to its completed state in the center panel. You can load different models sequentially, if you wish. They will simply replace the previous model in the center panel. MakeHuman™ is designed so that all loaded models are loaded without changing the camera location. Thus, you can zoom in on a particular area of the body and compare multiple saved models from a single camera perspective. ==== Saving Files (.mhm format) ==== Files are saved using either the Quick Save icon or by directly choosing the File tab and the Save sub tab. The native file format for saving MakeHuman™ files is the .mhm format. It is important to understand that this format does not save a pixel by pixel representation of your model nor does it save program objects like the actual clothes or hair. Rather, it saves the necessary information for the program to reconstruct your model from its internally defined assets. This means that if you move a .mhm file to another computer that lacks a piece of custom clothing, custom hair, or other custom object, the MakeHuman™ program on the new computer will be unable to provide a complete representation of your model unless you also move the custom asset(s) to the second computer. By default, model files (in.mhm format) are saved to the user directory %HOMEPATH%/Documents/makehuman/v1/models/. If you wish to save your files in a different location, you can use the ellipsis at the top of the center panel to navigate to the directory/folder of interest. In addtion to the .mhm file, the save operation will generate a thumbnail image of the model as it appears in the viewport at save time. Thus, you will want to move the camera to a meaningful and unique view of the model before saving so that the thumbnail image will be easy to identify visually. CAUTIONARY NOTE:On windows OS (and perhaps on other OS's) there is a small gliche with saving to non-standard directories in MH 1.0.1 and MH 1.0.2. If you hit the ellipsis with a blank file name, use the system dialog to navigate to your directory of choice, enter a file name without extension in the system dialog, hit save, and watch the dialog close, the file will have been saved using the directory name rather than the filename you provided in the save box of the system dialog. This directory name will now appear to the right of the ellipsis in the center panel. It seems that you can avoid this problem by providing a full file name to the right of the ellipsis before you begin the save procedure, then using the system dialog to navigate to the desired directory, and supplying the same file name a second time in the filename blank of the save dialog. This irratic behavior has been reported, and when fixed, this cautionary note should be removed. (Refer to bug 506 - RWB) ==== Exporting Files ==== !IMAGE!Pictures/export_labelled.png!/IMAGE! The above illustration explains the typical user interface components of the Export tab. On the right you get to choose what to export be in the mesh, the rig or the maps. In the center you have the 3D preview to preview your model. On the right you have options which keep changing based on what format you have selected in the left panel. On the top below the tabs panel is the “Ellipsis” button which opens a file dialog, a text box to enter the file name of the file and an “Export” button to do the actual export and save the file in the desired format. Below we outline the three main options in more detail i.e. Mesh formats, rig formats and Maps. === Mesh Formats (.dae, .fbx, obj, Ogre3D, .MD5, .stl) === Files are Exported using either the Quick Export icon or by directly choosing the File tab and the Export subtab. The Export window allows you to export your current MakeHuman project to one of a variety of export formats. Supported formats including Collada (DAE) Filmbox (fbx),Wavefront (obj), Id Software (MD5), and Sterolithography (stl). By default, exported files (regardless of export format) are saved to the user directory%HOMEPATH%/makehuman/v1/exports/(to know yourHOMEPATHon your platform refer to this!LINK!http://www.makehuman.org/doc/faq/where_are_my_makehuman_files_found_ie_where_is_my_home_directory.html -- faq!/LINK!). As is true for the load and save tabs, the ellipsis can be used to export to a non-standard directory/folder. After selecting a format and export options, type the name of your project in the input box at the center of the Export window and then click theExportbutton at the right hand side of the input box. MakeHuman, itself, can not read any of the exported formats, so exporting is a one way transfer of information. If you expect to do further refinement of your model, make sure you also save it in .mhm format. The various export formats differ in the richness of the assets exported: * Collada Dae (.dae):COLLADA™ is owned by the not-for-profit, open standards!LINK!http://www.khronos.org/ -- Khronos group!/LINK!. It defines an!LINK!https://www.khronos.org/collada/ -- XML-based schema!/LINK!standard for exporting 3D assets. MakeHuman™ is meant to adhere to version 1.4 of the standard. The resulting ASCII format files can become quite large which occassionally limits the use of this format with other programs. By default, MakeHuman™ exports DAE files with y-up, face-z and the decimeter scale chosen. When importing MakeHuman dae files into Blender, be sure to check "import units" at the bottom of the Blender left tool panel if you have not changed the units to meters. * Wavefront Obj (.obj):OBJ is a very simple format to export the mesh, with vertices, faces and UV coordinates. Originally invented by Alias/Wavefront, all major 3D packages have OBJ importers, so this format allows you to export to the greatest range of applications. However, the character is not rigged but rather a static prop. Wavefront OBJ is a good choice when you need a simple mesh for an external renderer. It comes with an mtl file defining the material. * Fbx:The default dialect currently used by the MakeHuman™ FBX exporter is FBX 2013 ASCII. Other FBX dialects exist, and if you need one of those dialects, you can use the AutoDesk™ FBX converter (!LINK!http://www.autodesk.com/products/fbx/overview -- http://www.autodesk.com/products/fbx/overview!/LINK!). For example, the Blender importer requires binary FBX files that can be generated in this fashion. TheOptionsbox contains several export options for each of the formats.The export options available for each format can be selected or deselected by ticking (displayed in orange) and un-ticking off the box in front of them. You can either use the default options for a format or select and deselect options according to your goals and needs. Once an option is changed, it will remain in the changed state until you restart MakeHuman or change it again. They are unaffected by the reset button on the Toolbar. A common option that is present for all formats isFeet on ground: the origin of the MakeHuman™ mesh is located in the hip area, but if this option is enabled, exported origin is moved to between the feet instead. Another common option present in almost all formats is the Scale unit: decimeter, meter, inch, centimeter. The internal MakeHuman™ unit is decimeters (the base mesh is 16.8 dm tall), but this is a rather unique choice not shared by other applications. Setting the unit is not essential if the file is exported to a 3D suit like Maya, 3DSMax or Blender, because the character can be rescaled after import. However, Collada files can also be read by other types of applications, where choosing the right scale may be important. In particular, select meters for export to SecondLife. === Rig formats (.bvh) === MakeHuman currently only supports one rig format. * Biovision (.bvh):If BVH is selected, it is anticipated that built in animations will be saved to the export directory. As of the MakeHuman™ 1.0.2, there is no offical support for model animation from within MakeHuman™. Thus, selecting this export type is of limited value. If you are interested in using BVH files created by other programs with the MakeHuman model, you may wish to read the documentation on the!LINK!http://www.makehuman.org/sectionview/975 -- MHBlenderTools MakeWalk!/LINK! Addon. A good place to start is the!LINK!http://www.makehuman.org/doc/node/blendertools_makewalk_basic_workflow.html -- MakeWalk Basic Workflow!/LINK!chapter. === Maps ( ligtmaps and UV maps) === * Lightmap:IfLightmapis checked, a grayscale image of the unwrapped A8 model is saved in the export directory as a 2048 x 2048 .png image. * UV Map:IfUV mapis checked, a black and white UV unwrapped image of the model mesh on a black background is saved in the export directory as a 2048 x 2048 .png image. a50e9b8b76ef0709700fb955b4dd2e4bd4bc3c11 684 2016-05-20T08:36:05Z Joepal 14 Created page with "The leftmost section of the Toolbar includes 3 quick action icons: 1) for loading models from native .mhm files; 2) for saving the model as a native .mhm file; and 3) for exp..." wikitext text/x-wiki The leftmost section of the Toolbar includes 3 quick action icons: 1) for loading models from native .mhm files; 2) for saving the model as a native .mhm file; and 3) for exporting the model in various formats used by other 3D programs (e.g., dae, .fbx, .stl, .obj). !IMAGE!Pictures/lse_quick.png!/IMAGE! For more complete file access support (Load, Save, Export), the Files Tab options provides access to the controls that manage saving, loading, and exporting the MakeHuman™ project to or from files. !IMAGE!Pictures/lse_tabs.png!/IMAGE! ==== Loading Files ==== Files are loaded using either the Quick Load icon or by directly choosing the File tab and the Load subtab. !IMAGE!Pictures/load1.png!/IMAGE! By default, models that have beem saved in MHM format are retrieved from the user directory%HOMEPATH%/makehuman/v1/models/. In the event that you have stored your MHM files in a different directory/folder, you can navigate to that directory/folder using the ellipsis at the top of the center panel. The right hand panel will be populated with thumbnail images of all the MHM files found in the path specified in the path at the top of the center panel. Simply click on the icon for the model you wish to load in the right panel. The model will load and refresh to its completed state in the center panel. You can load different models sequentially, if you wish. They will simply replace the previous model in the center panel. MakeHuman™ is designed so that all loaded models are loaded without changing the camera location. Thus, you can zoom in on a particular area of the body and compare multiple saved models from a single camera perspective. ==== Saving Files (.mhm format) ==== Files are saved using either the Quick Save icon or by directly choosing the File tab and the Save sub tab. The native file format for saving MakeHuman™ files is the .mhm format. It is important to understand that this format does not save a pixel by pixel representation of your model nor does it save program objects like the actual clothes or hair. Rather, it saves the necessary information for the program to reconstruct your model from its internally defined assets. This means that if you move a .mhm file to another computer that lacks a piece of custom clothing, custom hair, or other custom object, the MakeHuman™ program on the new computer will be unable to provide a complete representation of your model unless you also move the custom asset(s) to the second computer. By default, model files (in.mhm format) are saved to the user directory %HOMEPATH%/Documents/makehuman/v1/models/. If you wish to save your files in a different location, you can use the ellipsis at the top of the center panel to navigate to the directory/folder of interest. In addtion to the .mhm file, the save operation will generate a thumbnail image of the model as it appears in the viewport at save time. Thus, you will want to move the camera to a meaningful and unique view of the model before saving so that the thumbnail image will be easy to identify visually. CAUTIONARY NOTE:On windows OS (and perhaps on other OS's) there is a small gliche with saving to non-standard directories in MH 1.0.1 and MH 1.0.2. If you hit the ellipsis with a blank file name, use the system dialog to navigate to your directory of choice, enter a file name without extension in the system dialog, hit save, and watch the dialog close, the file will have been saved using the directory name rather than the filename you provided in the save box of the system dialog. This directory name will now appear to the right of the ellipsis in the center panel. It seems that you can avoid this problem by providing a full file name to the right of the ellipsis before you begin the save procedure, then using the system dialog to navigate to the desired directory, and supplying the same file name a second time in the filename blank of the save dialog. This irratic behavior has been reported, and when fixed, this cautionary note should be removed. (Refer to bug 506 - RWB) ==== Exporting Files ==== !IMAGE!Pictures/export_labelled.png!/IMAGE! The above illustration explains the typical user interface components of the Export tab. On the right you get to choose what to export be in the mesh, the rig or the maps. In the center you have the 3D preview to preview your model. On the right you have options which keep changing based on what format you have selected in the left panel. On the top below the tabs panel is the “Ellipsis” button which opens a file dialog, a text box to enter the file name of the file and an “Export” button to do the actual export and save the file in the desired format. Below we outline the three main options in more detail i.e. Mesh formats, rig formats and Maps. === Mesh Formats (.dae, .fbx, obj, Ogre3D, .MD5, .stl) === Files are Exported using either the Quick Export icon or by directly choosing the File tab and the Export subtab. The Export window allows you to export your current MakeHuman project to one of a variety of export formats. Supported formats including Collada (DAE) Filmbox (fbx),Wavefront (obj), Id Software (MD5), and Sterolithography (stl). By default, exported files (regardless of export format) are saved to the user directory%HOMEPATH%/makehuman/v1/exports/(to know yourHOMEPATHon your platform refer to this!LINK!http://www.makehuman.org/doc/faq/where_are_my_makehuman_files_found_ie_where_is_my_home_directory.html -- faq!/LINK!). As is true for the load and save tabs, the ellipsis can be used to export to a non-standard directory/folder. After selecting a format and export options, type the name of your project in the input box at the center of the Export window and then click theExportbutton at the right hand side of the input box. MakeHuman, itself, can not read any of the exported formats, so exporting is a one way transfer of information. If you expect to do further refinement of your model, make sure you also save it in .mhm format. The various export formats differ in the richness of the assets exported: * Collada Dae (.dae):COLLADA™ is owned by the not-for-profit, open standards!LINK!http://www.khronos.org/ -- Khronos group!/LINK!. It defines an!LINK!https://www.khronos.org/collada/ -- XML-based schema!/LINK!standard for exporting 3D assets. MakeHuman™ is meant to adhere to version 1.4 of the standard. The resulting ASCII format files can become quite large which occassionally limits the use of this format with other programs. By default, MakeHuman™ exports DAE files with y-up, face-z and the decimeter scale chosen. When importing MakeHuman dae files into Blender, be sure to check "import units" at the bottom of the Blender left tool panel if you have not changed the units to meters. * Wavefront Obj (.obj):OBJ is a very simple format to export the mesh, with vertices, faces and UV coordinates. Originally invented by Alias/Wavefront, all major 3D packages have OBJ importers, so this format allows you to export to the greatest range of applications. However, the character is not rigged but rather a static prop. Wavefront OBJ is a good choice when you need a simple mesh for an external renderer. It comes with an mtl file defining the material. * Fbx:The default dialect currently used by the MakeHuman™ FBX exporter is FBX 2013 ASCII. Other FBX dialects exist, and if you need one of those dialects, you can use the AutoDesk™ FBX converter (!LINK!http://www.autodesk.com/products/fbx/overview -- http://www.autodesk.com/products/fbx/overview!/LINK!). For example, the Blender importer requires binary FBX files that can be generated in this fashion. TheOptionsbox contains several export options for each of the formats.The export options available for each format can be selected or deselected by ticking (displayed in orange) and un-ticking off the box in front of them. You can either use the default options for a format or select and deselect options according to your goals and needs. Once an option is changed, it will remain in the changed state until you restart MakeHuman or change it again. They are unaffected by the reset button on the Toolbar. A common option that is present for all formats isFeet on ground: the origin of the MakeHuman™ mesh is located in the hip area, but if this option is enabled, exported origin is moved to between the feet instead. Another common option present in almost all formats is the Scale unit: decimeter, meter, inch, centimeter. The internal MakeHuman™ unit is decimeters (the base mesh is 16.8 dm tall), but this is a rather unique choice not shared by other applications. Setting the unit is not essential if the file is exported to a 3D suit like Maya, 3DSMax or Blender, because the character can be rescaled after import. However, Collada files can also be read by other types of applications, where choosing the right scale may be important. In particular, select meters for export to SecondLife. === Rig formats (.bvh) === MakeHuman currently only supports one rig format. * Biovision (.bvh):If BVH is selected, it is anticipated that built in animations will be saved to the export directory. As of the MakeHuman™ 1.0.2, there is no offical support for model animation from within MakeHuman™. Thus, selecting this export type is of limited value. If you are interested in using BVH files created by other programs with the MakeHuman model, you may wish to read the documentation on the!LINK!http://www.makehuman.org/sectionview/975 -- MHBlenderTools MakeWalk!/LINK! Addon. A good place to start is the!LINK!http://www.makehuman.org/doc/node/blendertools_makewalk_basic_workflow.html -- MakeWalk Basic Workflow!/LINK!chapter. === Maps ( ligtmaps and UV maps) === * Lightmap:IfLightmapis checked, a grayscale image of the unwrapped A8 model is saved in the export directory as a 2048 x 2048 .png image. * UV Map:IfUV mapis checked, a black and white UV unwrapped image of the model mesh on a black background is saved in the export directory as a 2048 x 2048 .png image. a50e9b8b76ef0709700fb955b4dd2e4bd4bc3c11 Documentation:MH4UE 3000 690 2052 2038 2021-03-14T18:24:47Z Assetdk 89 /* Into Blender and Unreal */ wikitext text/x-wiki On this page you will find links to various things you will need when you want to use Makehuman characters in Unreal engine! Please add your own pages, comments and tips where ever you find it is needed! ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' (or higher?) - these are the tree you will need to have and initially know about to full use of blender: * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget|MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. ===Into Blender and Unreal=== When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. There are, currently, two pages for this, one describing the process of getting MH to Blender and then into Unreal. And one describing the addon that will add more "shape keys" to your characters (while in blender). * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there|Saving models for Unreal Engine and how to import them there]]. * [[Documentation:Saving_models_for_Unreal_Engine_Materials|How to setup Unreal materials]]. * [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. * [[Documentation:MHBlenderTools: MakeShapes|MakeShapes - getting more shape keys/morph targets]] ===Inside Unreal=== When your character(s) are inside Unreal you want to take full advantage of all the options. For this I am working on some character customize tools that will allow you to set up your characters either as "hand customized" or randomized. ==Additional resources== And I also made these pages: * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ec81d232218fd8e80dfe4a345c756a917e336a82 2038 1975 2021-02-21T10:22:24Z Assetdk 89 /* Introduction */ wikitext text/x-wiki On this page you will find links to various things you will need when you want to use Makehuman characters in Unreal engine! Please add your own pages, comments and tips where ever you find it is needed! ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' (or higher?) - these are the tree you will need to have and initially know about to full use of blender: * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget|MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. ===Into Blender and Unreal=== When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. There are, currently, two pages for this, one describing the process of getting MH to Blender and then into Unreal. And one describing the addon that will add more "shape keys" to your characters (while in blender). * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there|Saving models for Unreal Engine and how to import them there]]. * [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. * [[Documentation:MHBlenderTools: MakeShapes|MakeShapes - getting more shape keys/morph targetss]] ===Inside Unreal=== When your character(s) are inside Unreal you want to take full advantage of all the options. For this I am working on some character customize tools that will allow you to set up your characters either as "hand customized" or randomized. ==Additional resources== And I also made these pages: * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] 8a2736ce10532efc7fdecc717043db47b76c15dd 1975 1974 2021-01-16T07:56:30Z Assetdk 89 /* Into Blender and Unreal */ wikitext text/x-wiki On this page you will find links to various things you will need when you want to use Makehuman characters in Unreal engine! Please add your own pages, comments and tips where ever you find it is needed! ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' (or higher?) - these are the tree you will need to have and initially know about to full use of blender: * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget|MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. ===Into Blender and Unreal=== When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. There are, currently, two pages for this, one describing the process of getting MH to Blender and then into Unreal. And one describing the addon that will add more "shape keys" to your characters (while in blender). * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there|Saving models for Unreal Engine and how to import them there]]. * [[Documentation:MHBlenderTools: MakeShapes|MakeShapes - getting more shape keys/morph targetss]] ===Inside Unreal=== When your character(s) are inside Unreal you want to take full advantage of all the options. For this I am working on some character customize tools that will allow you to set up your characters either as "hand customized" or randomized. ==Additional resources== And I also made these pages: * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] 55fd7fc953f4af2176389b14766e639b8e8bebb3 1974 1973 2021-01-16T07:55:59Z Assetdk 89 /* Into Blender and Unreal */ wikitext text/x-wiki On this page you will find links to various things you will need when you want to use Makehuman characters in Unreal engine! Please add your own pages, comments and tips where ever you find it is needed! ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' (or higher?) - these are the tree you will need to have and initially know about to full use of blender: * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget|MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. ===Into Blender and Unreal=== When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. There are, currently, two pages for this, one describing the process of getting MH to Blender and then into Unreal. And one describing the addon that will add more "shape keys" to your characters (while in blender). * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there|Saving models for Unreal Engine and how to import them there]]. * [[Documentation:MHBlenderTools: MakeShapes|MakeShapes getting more shape keys/morph targetss]] ===Inside Unreal=== When your character(s) are inside Unreal you want to take full advantage of all the options. For this I am working on some character customize tools that will allow you to set up your characters either as "hand customized" or randomized. ==Additional resources== And I also made these pages: * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] 9ab345d511213347d9fcb938d1b7c710a938fee1 1973 1969 2021-01-16T07:27:36Z Assetdk 89 /* Introduction */ wikitext text/x-wiki On this page you will find links to various things you will need when you want to use Makehuman characters in Unreal engine! Please add your own pages, comments and tips where ever you find it is needed! ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' (or higher?) - these are the tree you will need to have and initially know about to full use of blender: * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget|MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. ===Into Blender and Unreal=== When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. There are, currently, two pages for this, one describing the process of getting MH to Blender and then into Unreal. And one describing the addon that will add more "shape keys" to your characters (while in blender). * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:MHBlenderTools: MakeShapes]] ===Inside Unreal=== When your character(s) are inside Unreal you want to take full advantage of all the options. For this I am working on some character customize tools that will allow you to set up your characters either as "hand customized" or randomized. ==Additional resources== And I also made these pages: * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] e309c4885f9384c7619f3335dd903077da4d6c36 1969 1968 2021-01-16T07:07:13Z Assetdk 89 /* Introduction */ wikitext text/x-wiki On this page you will find links to various things you will need when you want to use Makehuman characters in Unreal engine! Please add your own pages, comments and tips where ever you find it is needed! ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' (or higher?) - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. ===Into Blender and Unreal=== When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. There are, currently, two pages for this, one describing the process of getting MH to Blender and then into Unreal. And one describing the addon that will add more "shape keys" to your characters (while in blender). * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:MHBlenderTools: MakeShapes]] ===Inside Unreal=== When your character(s) are inside Unreal you want to take full advantage of all the options. For this I am working on some character customize tools that will allow you to set up your characters either as "hand customized" or randomized. ==Additional resources== And I also made these pages: * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] 2a359f6c85f993ae9d67f21459d7e37a8a1ae41f 1968 1967 2021-01-16T06:54:34Z Assetdk 89 wikitext text/x-wiki On this page you will find links to various things you will need when you want to use Makehuman characters in Unreal engine! Please add your own pages, comments and tips where ever you find it is needed! ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:MHBlenderTools: MakeShapes]] * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] e3aabd242f49600b08ab33ff2fa6489fe7ef1429 1967 2021-01-16T06:50:07Z Assetdk 89 Created page with "==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot...." wikitext text/x-wiki ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:MHBlenderTools: MakeShapes]] * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ed9c9a11f436e478f08a501c17a545429f5e79b7 Documentation:MHBlenderTools:MakeClothes 3000 195 1214 501 2016-11-04T08:27:37Z Robbaer 12 wikitext text/x-wiki == Introduction == MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that the clothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within your HOME/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. == Standard Tools == === Using MakeClothes addon === [[File:Btmc01.png|left]] MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. <br style="clear:both" /> <hr> [[File:Btmc02.png|500px|right]] The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: ** Base Mesh: The MakeHuman mesh without any targets applied. ** Average Male: A caucasian young male. ** Average Female: A caucasian young female. ** Average Child: A caucasian young child. ** Average Baby: A caucasian young baby. ** Base Mesh with Helpers: The MakeHuman mesh without any targets applied. ** Average Male with Helpers: A caucasian young male. ** Average Female with Helpers: A caucasian young female. ** Average Childwith Helpers: A caucasian young child. ** Average Baby with Helpers: A caucasian young baby. *Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights, etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The image (right) shows the result of pressing "Load Human Mesh", with type set to Base Mesh. <br style="clear:both" /> [[File:Btmc03.png|500px|right]] A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and incorrectly detected). * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. <br style="clear:both" /> === Glue clothes to the body === The clothes are meshes that can be modelled directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, the next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with the same name must exist in the human mesh as well. Only human vertices in the correct vertex group will be considered when making clothes. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient to let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === [[File:Btmc04.png|500px|right]] If vertex groups need to be reassigned, for example because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image (above right), called "Create Vertex Groups From Selection". Selecting a cloth, the button changes to "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human it is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate only a part of the human vertices with all vertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. <br style="clear:both" /> [[File:Btmc05.png|500px|right]] Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the images (right), we can see the vertices assigned to the Mid and Left groups for a nude human. <br style="clear:both" /> === Generate the clothes file === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/v1/data/clothes, in order to be inbcluded automatically in MakeHuman. == Advanced tools == Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === [[File:Btmc06.png|right]] *Show selection. This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go to edit mode, move the mouse on a vertex and press Lkey to select the linked vertices), you can just press these buttons. <br style="clear:both" /> [[File:Btmc07.png|right]] * Show Materials. This shows a button to export the materials only. This is useful when there are no changes to the geometry, but only to the material, in order to avoid recalculating everything. * Show UV projection. This section is useful mainly for making proxy meshes. ** Recover seams. Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be a reference for marking seams for the clothing. ** Auto seams. ** Project UVs. Automatically create a UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. ** Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. <br style="clear:both" /> === Show ZDepth, Show Offset scaling === [[File:Btmc08.png|right]] * Show ZDepth. This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). ** Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and Lingerie, Socks and Stockings, Shirt and Trousers, Sweater, Indoor Jacket, Shoes and Boots, Coat, Backpack. ** Set Z depth.Set the Z depth depending on the selected depth name. ** Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be set manually for fine-tuning. <br style="clear:both" /> [[File:Btmc09.png|right]] * Show Offset scaling. The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. ** Body Part. Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. ** Examine Boundary. Select the boundary vertices with Set boundary is invoked. ** Set Boundary. Set the boundary to vertices determined by the selected body part. ** Custom Boundary. To manually set the bounday box. ** X1, X2, Y1, Y2, Z1, Z2. The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. <br style="clear:both" /> === Show Settings, Show License === [[File:Btmc10.png|right]] * Show Setting. The settings include the author name and the export path. It's possible to save and restore the settings. <br style="clear:both" /> [[File:Btmc11.png|right]] * Show License.This set of options are to add the author name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. ** Author. Defaults to: Unknown. ** License. Defaults to: AGPL3 ** HomePage. Defaults to: <NOWIKI>http://www.makehuman.org/ -- http://www.makehuman.org/</NOWIKI> <br style="clear:both" /> 7f06cdb74c4f09b6a982d229083ac488cba3e2be 501 500 2015-08-29T14:37:15Z Fairytail 16 wikitext text/x-wiki {| cellspacing="11" style="width:100%;" |-style="vertical-align:top;" | style="width:33%;background-color: #EEE6E6; padding:0.5em;"| '''Note:''' This document relates to MakeHuman version 1.1.0, currently only available as a nightly build. |} MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that the clothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within your HOME/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. == Standard Tools == === Using MakeClothes addon === [[File:Btmc01.png|left]] MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. <br style="clear:both" /> <hr> [[File:Btmc02.png|500px|right]] The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: ** Base Mesh: The MakeHuman mesh without any targets applied. ** Average Male: A caucasian young male. ** Average Female: A caucasian young female. ** Average Child: A caucasian young child. ** Average Baby: A caucasian young baby. ** Base Mesh with Helpers: The MakeHuman mesh without any targets applied. ** Average Male with Helpers: A caucasian young male. ** Average Female with Helpers: A caucasian young female. ** Average Childwith Helpers: A caucasian young child. ** Average Baby with Helpers: A caucasian young baby. *Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights, etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The image (right) shows the result of pressing "Load Human Mesh", with type set to Base Mesh. <br style="clear:both" /> [[File:Btmc03.png|500px|right]] A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and incorrectly detected). * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. <br style="clear:both" /> === Glue clothes to the body === The clothes are meshes that can be modelled directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, the next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with the same name must exist in the human mesh as well. Only human vertices in the correct vertex group will be considered when making clothes. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient to let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === [[File:Btmc04.png|500px|right]] If vertex groups need to be reassigned, for example because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image (above right), called "Create Vertex Groups From Selection". Selecting a cloth, the button changes to "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human it is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate only a part of the human vertices with all vertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. <br style="clear:both" /> [[File:Btmc05.png|500px|right]] Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the images (right), we can see the vertices assigned to the Mid and Left groups for a nude human. <br style="clear:both" /> === Generate the clothes file === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/v1/data/clothes, in order to be inbcluded automatically in MakeHuman. == Advanced tools == Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === [[File:Btmc06.png|right]] *Show selection. This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go to edit mode, move the mouse on a vertex and press Lkey to select the linked vertices), you can just press these buttons. <br style="clear:both" /> [[File:Btmc07.png|right]] * Show Materials. This shows a button to export the materials only. This is useful when there are no changes to the geometry, but only to the material, in order to avoid recalculating everything. * Show UV projection. This section is useful mainly for making proxy meshes. ** Recover seams. Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be a reference for marking seams for the clothing. ** Auto seams. ** Project UVs. Automatically create a UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. ** Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. <br style="clear:both" /> === Show ZDepth, Show Offset scaling === [[File:Btmc08.png|right]] * Show ZDepth. This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). ** Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and Lingerie, Socks and Stockings, Shirt and Trousers, Sweater, Indoor Jacket, Shoes and Boots, Coat, Backpack. ** Set Z depth.Set the Z depth depending on the selected depth name. ** Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be set manually for fine-tuning. <br style="clear:both" /> [[File:Btmc09.png|right]] * Show Offset scaling. The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. ** Body Part. Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. ** Examine Boundary. Select the boundary vertices with Set boundary is invoked. ** Set Boundary. Set the boundary to vertices determined by the selected body part. ** Custom Boundary. To manually set the bounday box. ** X1, X2, Y1, Y2, Z1, Z2. The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. <br style="clear:both" /> === Show Settings, Show License === [[File:Btmc10.png|right]] * Show Setting. The settings include the author name and the export path. It's possible to save and restore the settings. <br style="clear:both" /> [[File:Btmc11.png|right]] * Show License.This set of options are to add the author name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. ** Author. Defaults to: Unknown. ** License. Defaults to: AGPL3 ** HomePage. Defaults to: <NOWIKI>http://www.makehuman.org/ -- http://www.makehuman.org/</NOWIKI> <br style="clear:both" /> a9666c726150ba13525d7dda6a4cc70afb8428e8 500 497 2015-08-29T14:18:52Z Fairytail 16 MHBlender Tools: MakeClothes wikitext text/x-wiki MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that the clothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within %USER%/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. == Standard Tools == === Using MakeClothes addon === [[File:Btmc01.png|left]] MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. <br style="clear:both" /> <hr> [[File:Btmc02.png|500px|right]] The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: ** Base Mesh: The MakeHuman mesh without any targets applied. ** Average Male: A caucasian young male. ** Average Female: A caucasian young female. ** Average Child: A caucasian young child. ** Average Baby: A caucasian young baby. ** Base Mesh with Helpers: The MakeHuman mesh without any targets applied. ** Average Male with Helpers: A caucasian young male. ** Average Female with Helpers: A caucasian young female. ** Average Childwith Helpers: A caucasian young child. ** Average Baby with Helpers: A caucasian young baby. *Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights, etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The image (right) shows the result of pressing "Load Human Mesh", with type set to Base Mesh. <br style="clear:both" /> [[File:Btmc03.png|500px|right]] A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and incorrectly detected). * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. <br style="clear:both" /> === Glue clothes to the body === The clothes are meshes that can be modelled directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, the next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with the same name must exist in the human mesh as well. Only human vertices in the correct vertex group will be considered when making clothes. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient to let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === [[File:Btmc04.png|500px|right]] If vertex groups need to be reassigned, for example because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image (above right), called "Create Vertex Groups From Selection". Selecting a cloth, the button changes to "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human it is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate only a part of the human vertices with all vertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. <br style="clear:both" /> [[File:Btmc05.png|500px|right]] Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the images (right), we can see the vertices assigned to the Mid and Left groups for a nude human. <br style="clear:both" /> === Generate the clothes file === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/v1/data/clothes, in order to be inbcluded automatically in MakeHuman. == Advanced tools == Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === [[File:Btmc06.png|right]] *Show selection. This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go to edit mode, move the mouse on a vertex and press Lkey to select the linked vertices), you can just press these buttons. <br style="clear:both" /> [[File:Btmc07.png|right]] * Show Materials. This shows a button to export the materials only. This is useful when there are no changes to the geometry, but only to the material, in order to avoid recalculating everything. * Show UV projection. This section is useful mainly for making proxy meshes. ** Recover seams. Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be a reference for marking seams for the clothing. ** Auto seams. ** Project UVs. Automatically create a UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. ** Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. <br style="clear:both" /> === Show ZDepth, Show Offset scaling === [[File:Btmc08.png|right]] * Show ZDepth. This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). ** Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and Lingerie, Socks and Stockings, Shirt and Trousers, Sweater, Indoor Jacket, Shoes and Boots, Coat, Backpack. ** Set Z depth.Set the Z depth depending on the selected depth name. ** Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be set manually for fine-tuning. <br style="clear:both" /> [[File:Btmc09.png|right]] * Show Offset scaling. The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. ** Body Part. Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. ** Examine Boundary. Select the boundary vertices with Set boundary is invoked. ** Set Boundary. Set the boundary to vertices determined by the selected body part. ** Custom Boundary. To manually set the bounday box. ** X1, X2, Y1, Y2, Z1, Z2. The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. <br style="clear:both" /> === Show Settings, Show License === [[File:Btmc10.png|right]] * Show Setting. The settings include the author name and the export path. It's possible to save and restore the settings. <br style="clear:both" /> [[File:Btmc11.png|right]] * Show License.This set of options are to add the author name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. ** Author. Defaults to: Unknown. ** License. Defaults to: AGPL3 ** HomePage. Defaults to: <NOWIKI>http://www.makehuman.org/ -- http://www.makehuman.org/</NOWIKI> <br style="clear:both" /> a057f75ad2415054f4e7c6a3f73876c54f33cabb 497 2015-08-29T12:12:05Z Fairytail 16 Created page with "MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique tha..." wikitext text/x-wiki MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that theclothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within %USER%/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. == Standard Tools == === Using MakeClothes addon === [[File:Btmc01.png|left]] MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. <br style="clear:both" /> [[File:Btmc02.png|right]] The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: ** Base Mesh: The MakeHuman mesh without any targets applied. ** Average Male: A caucasian young male. ** Average Female: A caucasian young female. ** Average Child: A caucasian young child. ** Average Baby: A caucasian young baby. ** Base Mesh with Helpers: The MakeHuman mesh without any targets applied. ** Average Male with Helpers: A caucasian young male. ** Average Female with Helpers: A caucasian young female. ** Average Childwith Helpers: A caucasian young child. ** Average Baby with Helpers: A caucasian young baby. *Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The picture left shows the result of pressing "Load Human Mesh", with type set to Base Mesh. <br style="clear:both" /> [[File:Btmc03.png|right]] A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and wrongly detected as a human item) * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. <br style="clear:both" /> === Glue clothes to the body === The clothes are meshes that be done directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with thesame namemust exist in the human mesh as well. Only human vertices in the correct vertex group will be considered when making clothes. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === [[File:Btmc04.png|right]] If vertex groups need to be reassigned, e.g. because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image above, called "Create Vertex Groups From Selection". Selecting a cloth, the button change in "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate onlya partof the human vertices withallvertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. <br style="clear:both" /> [[File:Btmc05.png|right]] Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the images right, vertices assigned to the Mid and Left groups for a nude human. <br style="clear:both" /> === Generate the clothes file === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/a8/data/clothes, in order to be inbcluded automatically in MakeHuman. == Advanced tools == Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === [[File:Btmc06.png|right]] *Show selection. This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go in edit mode, move the mous on a vert and press Lkey to select the linked vertices), you can just press these buttons. <br style="clear:both" /> [[File:Btmc07.png|right]] * Show Materials. This will show a button to export the materials only. It's useful in case there are not changes on geometry, but only on the material, in order to avoid to recompute all. * Show UV projection.This section is useful mainly for making proxy meshes. * Recover seams. Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be reference for marking seams for the clothing. * Auto seams. * Project UVs. Automatically create an UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. * Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. <br style="clear:both" /> === Show ZDepth, Show Offset scaling === [[File:Btmc08.png|right]] Show ZDepth. This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). * Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and lingerie, Socks and stockings, Shirt and trousers, Sweater, Indoor jacket, Shoes and boots, Coat, Backpack. * Set Z depth.Set the Z depth depending on the selected depth name. * Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be dialledmanually for fine-tuning. <br style="clear:both" /> [[File:Btmc09.png|right]] Show Offset scaling. The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. * Body part.Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. * Examine.Select the boundary vertices with Set boundary is invoked. * Set boundary.Set the boundary to vertices determined by the selected body part. * Custom Boundary.To manually set the bounday box. * X1, X2, Y1, Y2, Z1, Z2.The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. <br style="clear:both" /> === Show Setting, Show License === [[File:Btmc10.png|right]] Show Setting.The setting include the author name and the export path. It's possible to save and restore the settings. <br style="clear:both" /> [[File:Btmc11.png|right]] Show License.This set of options are to add theauthor name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. * Author. Defaults to: Unknown. * License. Defaults to: AGPL3 * HomePage. Defaults to: <NOWIKI>http://www.makehuman.org/ -- http://www.makehuman.org/</NOWIKI> <br style="clear:both" /> 63043aef69c518d694aa2c9f05a82472e14a873b Documentation:MHBlenderTools: Download and installation 3000 19 72 71 2015-07-08T07:42:02Z Joepal 14 wikitext text/x-wiki '''THIS PAGE IS OUTDATED''' The Blendertools package is available on the download page: http://www.makehuman.org/content/download.html The current version is 1.0.0, designed to work with MakeHuman 1.0.0 and with Blender 2.69. It's a zip package of four folders: * MakeTarget * MakeClothes * MakeWalk * mhx_importer To install the addons, these subfolders must first be copied to a location where Blender can find it. Depending on the operating system being used, the addons destination directory where Blender will look for user-defined add-ons, is * Windows 7: C:\Users\%username%\AppData\Roaming\Blender Foundation\Blender\2.6x\scripts\addons * Windows XP: C:\Documents and Settings\%username%\Application Data\Blender Foundation\Blender\2.6x\scripts\addons * Vista: C:\Program Files\Blender Foundation\Blender\%blenderversion%\scripts\addons (this is valid at least for blender 2.69) * Linux: /home/$user/.blender/$version/scripts/addons Note that the AppData folder in Windows 7 and the .blender folder in Linux are hidden folders. The location may also be different depending on your choices for setting up your operating system and Blender. For more information see the Blender documentation. To enable the MH addons, in Blender open the User Preferences window from the File > User Preferences menu, and go to the Addons tab. The Blendertools addons are located in the MakeHuman category. Enable them by checking the box in the upper-right corner, next to the running man symbol. If you want Blendertools to start every time Blender is restarted, press the "Save User Settings" button. !IMAGE!Pictures/mhx-pref.png!/IMAGE! f1d56e91671508ad5f277d70f2a4655a63d883c4 71 2015-07-08T07:41:05Z Joepal 14 Created page with "The Blendertools package is available on the download page: http://www.makehuman.org/content/download.html The current version is 1.0.0, designed to work with MakeHuman 1.0.0..." wikitext text/x-wiki The Blendertools package is available on the download page: http://www.makehuman.org/content/download.html The current version is 1.0.0, designed to work with MakeHuman 1.0.0 and with Blender 2.69. It's a zip package of four folders: * MakeTarget * MakeClothes * MakeWalk * mhx_importer To install the addons, these subfolders must first be copied to a location where Blender can find it. Depending on the operating system being used, the addons destination directory where Blender will look for user-defined add-ons, is * Windows 7: C:\Users\%username%\AppData\Roaming\Blender Foundation\Blender\2.6x\scripts\addons * Windows XP: C:\Documents and Settings\%username%\Application Data\Blender Foundation\Blender\2.6x\scripts\addons * Vista: C:\Program Files\Blender Foundation\Blender\%blenderversion%\scripts\addons (this is valid at least for blender 2.69) * Linux: /home/$user/.blender/$version/scripts/addons Note that the AppData folder in Windows 7 and the .blender folder in Linux are hidden folders. The location may also be different depending on your choices for setting up your operating system and Blender. For more information see the Blender documentation. To enable the MH addons, in Blender open the User Preferences window from the File > User Preferences menu, and go to the Addons tab. The Blendertools addons are located in the MakeHuman category. Enable them by checking the box in the upper-right corner, next to the running man symbol. If you want Blendertools to start every time Blender is restarted, press the "Save User Settings" button. !IMAGE!Pictures/mhx-pref.png!/IMAGE! f8192a8d3ee27df93beffd11bd3863c96b83c4c1 Documentation:MHBlenderTools: MakeShapes 3000 616 2026 2025 2021-01-31T13:36:58Z Assetdk 89 /* MakeShapes todo */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= '''It makes good sense to learn how to use MakeTarget2 first.''' In general this addon was made by ''Joel Palmius'', and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). ===BaseMesh - this paragraph is for later=== Now make your Basemesh human. The first time you used MH you probably made some very fancy model, as you can. However you now want a 'base' character, with as little customization as possible. You will want to be able to transfer parameters/attribures between characters when they are in Unreal, and for that reason they must share the same basic definitions. ===MakeTarget import=== The process is very simple, you load your basecharacter to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender/MakeHuman and run 'Import human'! You should probably use the MakeTarget preset for this. This could look something like this, remember to use the preset Load button. [[File:MH2Blender MakeTarget1.png|800px]] In the current version of MakeTarget2 you will have two options - when you select the 'Body' or 'BaseMesh' you imported. This all happens in Blender/Object mode. Select to view the shape keys: [[File:MH2Blender MakeTarget2.png|1000px]] When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via the Modelling/community "menu" - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ::However you also may have noticed that MakeTarget2 do not work on your entire base character it will "only" import the mesh and the shape keys can not be used as such if you moved it to Unreal. =Using '''MHX2 import'''= Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your needs are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. ::Now lets get started!! =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2. MakeShapes works exploits the fact that MHX2 import imports shape keys, so MakeShape will simply merge these shape keys with the targets. In order to not mess this up please follow the instructions. There is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (The version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\faceshapes <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\faceshapes\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that my faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where ever you want, and '''move''' the new file faceshapes_BASE.mxa there, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files (or you may prefer to do this with a few .target files at first) - add the selected files to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== '''Disclaimer - sadly I have found that the lager part of the .targets does not work properly. They seem to work, somewhat, inside Makehuman, but they do not work in Blender and they definitely do not work in Unreal. The problem seems to be that the shape keys only affect the body mesh, so shaping the face will not have any effect on the eyes (or indeed bones). ''' [[File:MakeShapes-buttons.png]] ===How to, make shapes=== MakeShapes installed, you should see the above. * You imported the standard character from the running Makehuman. Using the MakeTarget settings! * You locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. * You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! ::'''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the same folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Getting errors=== Some of the larger targets will probably give you errors. Remove the .target files from the import folder. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =Use in Unreal 4= Please view this page: [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there|Saving models for Unreal Engine and how to import them there]]. - your base character should be working fine and you probably already have the basic shape keys working in Unreal as-is? Your next step is to MHX2 import the proxy version of your base character and export it as FBX. You may want to re-import the FBX or perhaps you should first try to import the FBX as a new file? When you follow the prescription you should now have a solid character that have more morph targets than you can handle! Lucky for you I am working on the next version of MakeShapes, that version will enable you to export the morph target information in a format that can be used in '''a character customization widget.''' ===Different versions of faceshape.mxa file!!=== The MHX2 import can only use one faceshape.mxa file, but you can now start working with several versions. Primarily you would want the have a male and a female version, and perhaps even some variations. ===Skeletons=== When importing your characters you will find that you only need one skeleton, or perhaps a male and a female skeleton. Whit these you will only need to retarget these two - and your various characters will all be using the exact same animations. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github (done, but thre is a "new" version) * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * C:\Users\<user>\AppData\Local\makehuman-community\makehuman\data\expressions * I what to be able to process all expression builder targets 2b5fd587e76a10c3043a5b66506356b9f074d99a 2025 2024 2021-01-31T13:32:22Z Assetdk 89 /* MakeShapes progress */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= '''It makes good sense to learn how to use MakeTarget2 first.''' In general this addon was made by ''Joel Palmius'', and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). ===BaseMesh - this paragraph is for later=== Now make your Basemesh human. The first time you used MH you probably made some very fancy model, as you can. However you now want a 'base' character, with as little customization as possible. You will want to be able to transfer parameters/attribures between characters when they are in Unreal, and for that reason they must share the same basic definitions. ===MakeTarget import=== The process is very simple, you load your basecharacter to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender/MakeHuman and run 'Import human'! You should probably use the MakeTarget preset for this. This could look something like this, remember to use the preset Load button. [[File:MH2Blender MakeTarget1.png|800px]] In the current version of MakeTarget2 you will have two options - when you select the 'Body' or 'BaseMesh' you imported. This all happens in Blender/Object mode. Select to view the shape keys: [[File:MH2Blender MakeTarget2.png|1000px]] When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via the Modelling/community "menu" - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ::However you also may have noticed that MakeTarget2 do not work on your entire base character it will "only" import the mesh and the shape keys can not be used as such if you moved it to Unreal. =Using '''MHX2 import'''= Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your needs are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. ::Now lets get started!! =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2. MakeShapes works exploits the fact that MHX2 import imports shape keys, so MakeShape will simply merge these shape keys with the targets. In order to not mess this up please follow the instructions. There is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (The version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\faceshapes <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\faceshapes\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that my faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where ever you want, and '''move''' the new file faceshapes_BASE.mxa there, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files (or you may prefer to do this with a few .target files at first) - add the selected files to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== '''Disclaimer - sadly I have found that the lager part of the .targets does not work properly. They seem to work, somewhat, inside Makehuman, but they do not work in Blender and they definitely do not work in Unreal. The problem seems to be that the shape keys only affect the body mesh, so shaping the face will not have any effect on the eyes (or indeed bones). ''' [[File:MakeShapes-buttons.png]] ===How to, make shapes=== MakeShapes installed, you should see the above. * You imported the standard character from the running Makehuman. Using the MakeTarget settings! * You locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. * You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! ::'''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the same folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Getting errors=== Some of the larger targets will probably give you errors. Remove the .target files from the import folder. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =Use in Unreal 4= Please view this page: [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there|Saving models for Unreal Engine and how to import them there]]. - your base character should be working fine and you probably already have the basic shape keys working in Unreal as-is? Your next step is to MHX2 import the proxy version of your base character and export it as FBX. You may want to re-import the FBX or perhaps you should first try to import the FBX as a new file? When you follow the prescription you should now have a solid character that have more morph targets than you can handle! Lucky for you I am working on the next version of MakeShapes, that version will enable you to export the morph target information in a format that can be used in '''a character customization widget.''' ===Different versions of faceshape.mxa file!!=== The MHX2 import can only use one faceshape.mxa file, but you can now start working with several versions. Primarily you would want the have a male and a female version, and perhaps even some variations. ===Skeletons=== When importing your characters you will find that you only need one skeleton, or perhaps a male and a female skeleton. Whit these you will only need to retarget these two - and your various characters will all be using the exact same animations. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * C:\Users\<user>\AppData\Local\makehuman-community\makehuman\data\expressions * I what to be able to process all expression builder targets dc674de93e8f0fe8c69462fae1d90287dc6fc433 2024 2023 2021-01-31T13:15:57Z Assetdk 89 /* =How to */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= '''It makes good sense to learn how to use MakeTarget2 first.''' In general this addon was made by ''Joel Palmius'', and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). ===BaseMesh - this paragraph is for later=== Now make your Basemesh human. The first time you used MH you probably made some very fancy model, as you can. However you now want a 'base' character, with as little customization as possible. You will want to be able to transfer parameters/attribures between characters when they are in Unreal, and for that reason they must share the same basic definitions. ===MakeTarget import=== The process is very simple, you load your basecharacter to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender/MakeHuman and run 'Import human'! You should probably use the MakeTarget preset for this. This could look something like this, remember to use the preset Load button. [[File:MH2Blender MakeTarget1.png|800px]] In the current version of MakeTarget2 you will have two options - when you select the 'Body' or 'BaseMesh' you imported. This all happens in Blender/Object mode. Select to view the shape keys: [[File:MH2Blender MakeTarget2.png|1000px]] When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via the Modelling/community "menu" - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ::However you also may have noticed that MakeTarget2 do not work on your entire base character it will "only" import the mesh and the shape keys can not be used as such if you moved it to Unreal. =Using '''MHX2 import'''= Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your needs are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. ::Now lets get started!! =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2. MakeShapes works exploits the fact that MHX2 import imports shape keys, so MakeShape will simply merge these shape keys with the targets. In order to not mess this up please follow the instructions. There is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (The version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\faceshapes <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\faceshapes\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that my faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where ever you want, and '''move''' the new file faceshapes_BASE.mxa there, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files (or you may prefer to do this with a few .target files at first) - add the selected files to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== '''Disclaimer - sadly I have found that the lager part of the .targets does not work properly. They seem to work, somewhat, inside Makehuman, but they do not work in Blender and they definitely do not work in Unreal. The problem seems to be that the shape keys only affect the body mesh, so shaping the face will not have any effect on the eyes (or indeed bones). ''' [[File:MakeShapes-buttons.png]] ===How to, make shapes=== MakeShapes installed, you should see the above. * You imported the standard character from the running Makehuman. Using the MakeTarget settings! * You locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. * You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! ::'''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the same folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Getting errors=== Some of the larger targets will probably give you errors. Remove the .target files from the import folder. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * C:\Users\<user>\AppData\Local\makehuman-community\makehuman\data\expressions * I what to be able to process all expression builder targets fa2fc7d106c586ef59d692ea8e0bc2312c7f97ad 2023 2022 2021-01-31T13:15:31Z Assetdk 89 /* Using MakeShapes */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= '''It makes good sense to learn how to use MakeTarget2 first.''' In general this addon was made by ''Joel Palmius'', and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). ===BaseMesh - this paragraph is for later=== Now make your Basemesh human. The first time you used MH you probably made some very fancy model, as you can. However you now want a 'base' character, with as little customization as possible. You will want to be able to transfer parameters/attribures between characters when they are in Unreal, and for that reason they must share the same basic definitions. ===MakeTarget import=== The process is very simple, you load your basecharacter to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender/MakeHuman and run 'Import human'! You should probably use the MakeTarget preset for this. This could look something like this, remember to use the preset Load button. [[File:MH2Blender MakeTarget1.png|800px]] In the current version of MakeTarget2 you will have two options - when you select the 'Body' or 'BaseMesh' you imported. This all happens in Blender/Object mode. Select to view the shape keys: [[File:MH2Blender MakeTarget2.png|1000px]] When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via the Modelling/community "menu" - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ::However you also may have noticed that MakeTarget2 do not work on your entire base character it will "only" import the mesh and the shape keys can not be used as such if you moved it to Unreal. =Using '''MHX2 import'''= Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your needs are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. ::Now lets get started!! =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2. MakeShapes works exploits the fact that MHX2 import imports shape keys, so MakeShape will simply merge these shape keys with the targets. In order to not mess this up please follow the instructions. There is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (The version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\faceshapes <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\faceshapes\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that my faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where ever you want, and '''move''' the new file faceshapes_BASE.mxa there, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files (or you may prefer to do this with a few .target files at first) - add the selected files to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== '''Disclaimer - sadly I have found that the lager part of the .targets does not work properly. They seem to work, somewhat, inside Makehuman, but they do not work in Blender and they definitely do not work in Unreal. The problem seems to be that the shape keys only affect the body mesh, so shaping the face will not have any effect on the eyes (or indeed bones). ''' [[File:MakeShapes-buttons.png]] ===How to== MakeShapes installed, you should see the above. * You imported the standard character from the running Makehuman. Using the MakeTarget settings! * You locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. * You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! ::'''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the same folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Getting errors=== Some of the larger targets will probably give you errors. Remove the .target files from the import folder. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * C:\Users\<user>\AppData\Local\makehuman-community\makehuman\data\expressions * I what to be able to process all expression builder targets 65eb5300868aef69da749ff9e273105c754efa1e 2022 2021 2021-01-31T11:39:35Z Assetdk 89 /* MakeShapes todo */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= '''It makes good sense to learn how to use MakeTarget2 first.''' In general this addon was made by ''Joel Palmius'', and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). ===BaseMesh - this paragraph is for later=== Now make your Basemesh human. The first time you used MH you probably made some very fancy model, as you can. However you now want a 'base' character, with as little customization as possible. You will want to be able to transfer parameters/attribures between characters when they are in Unreal, and for that reason they must share the same basic definitions. ===MakeTarget import=== The process is very simple, you load your basecharacter to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender/MakeHuman and run 'Import human'! You should probably use the MakeTarget preset for this. This could look something like this, remember to use the preset Load button. [[File:MH2Blender MakeTarget1.png|800px]] In the current version of MakeTarget2 you will have two options - when you select the 'Body' or 'BaseMesh' you imported. This all happens in Blender/Object mode. Select to view the shape keys: [[File:MH2Blender MakeTarget2.png|1000px]] When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via the Modelling/community "menu" - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ::However you also may have noticed that MakeTarget2 do not work on your entire base character it will "only" import the mesh and the shape keys can not be used as such if you moved it to Unreal. =Using '''MHX2 import'''= Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your needs are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. ::Now lets get started!! =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2. MakeShapes works exploits the fact that MHX2 import imports shape keys, so MakeShape will simply merge these shape keys with the targets. In order to not mess this up please follow the instructions. There is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (The version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\faceshapes <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\faceshapes\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that my faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where ever you want, and '''move''' the new file faceshapes_BASE.mxa there, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files (or you may prefer to do this with a few .target files at first) - add the selected files to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== '''Disclaimer - sadly I have found that the lager part of the .targets does not work properly. They seem to work, somewhat, inside Makehuman, but they do not work in Blender and they definitely do not work in Unreal. The problem seems to be that the shape keys only affect the body mesh, so shaping the face will not have any effect on the eyes (or indeed bones). ''' [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Getting errors=== Some of the targets will probably give you errors. Remove the files from the import folder. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * C:\Users\<user>\AppData\Local\makehuman-community\makehuman\data\expressions * I what to be able to process all expression builder targets 1b521aa55120ab6e4cba5ceffad904ebc8c5b726 2021 2020 2021-01-31T09:20:58Z Assetdk 89 /* Using MakeShapes */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= '''It makes good sense to learn how to use MakeTarget2 first.''' In general this addon was made by ''Joel Palmius'', and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). ===BaseMesh - this paragraph is for later=== Now make your Basemesh human. The first time you used MH you probably made some very fancy model, as you can. However you now want a 'base' character, with as little customization as possible. You will want to be able to transfer parameters/attribures between characters when they are in Unreal, and for that reason they must share the same basic definitions. ===MakeTarget import=== The process is very simple, you load your basecharacter to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender/MakeHuman and run 'Import human'! You should probably use the MakeTarget preset for this. This could look something like this, remember to use the preset Load button. [[File:MH2Blender MakeTarget1.png|800px]] In the current version of MakeTarget2 you will have two options - when you select the 'Body' or 'BaseMesh' you imported. This all happens in Blender/Object mode. Select to view the shape keys: [[File:MH2Blender MakeTarget2.png|1000px]] When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via the Modelling/community "menu" - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ::However you also may have noticed that MakeTarget2 do not work on your entire base character it will "only" import the mesh and the shape keys can not be used as such if you moved it to Unreal. =Using '''MHX2 import'''= Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your needs are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. ::Now lets get started!! =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2. MakeShapes works exploits the fact that MHX2 import imports shape keys, so MakeShape will simply merge these shape keys with the targets. In order to not mess this up please follow the instructions. There is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (The version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\faceshapes <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\faceshapes\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that my faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where ever you want, and '''move''' the new file faceshapes_BASE.mxa there, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files (or you may prefer to do this with a few .target files at first) - add the selected files to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== '''Disclaimer - sadly I have found that the lager part of the .targets does not work properly. They seem to work, somewhat, inside Makehuman, but they do not work in Blender and they definitely do not work in Unreal. The problem seems to be that the shape keys only affect the body mesh, so shaping the face will not have any effect on the eyes (or indeed bones). ''' [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Getting errors=== Some of the targets will probably give you errors. Remove the files from the import folder. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets dc8c03d39cd3fb461be0137e6f86cc3dfc3c4ea5 2020 2019 2021-01-30T13:19:21Z Assetdk 89 /* Using MakeShapes */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= '''It makes good sense to learn how to use MakeTarget2 first.''' In general this addon was made by ''Joel Palmius'', and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). ===BaseMesh - this paragraph is for later=== Now make your Basemesh human. The first time you used MH you probably made some very fancy model, as you can. However you now want a 'base' character, with as little customization as possible. You will want to be able to transfer parameters/attribures between characters when they are in Unreal, and for that reason they must share the same basic definitions. ===MakeTarget import=== The process is very simple, you load your basecharacter to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender/MakeHuman and run 'Import human'! You should probably use the MakeTarget preset for this. This could look something like this, remember to use the preset Load button. [[File:MH2Blender MakeTarget1.png|800px]] In the current version of MakeTarget2 you will have two options - when you select the 'Body' or 'BaseMesh' you imported. This all happens in Blender/Object mode. Select to view the shape keys: [[File:MH2Blender MakeTarget2.png|1000px]] When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via the Modelling/community "menu" - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ::However you also may have noticed that MakeTarget2 do not work on your entire base character it will "only" import the mesh and the shape keys can not be used as such if you moved it to Unreal. =Using '''MHX2 import'''= Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your needs are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. ::Now lets get started!! =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2. MakeShapes works exploits the fact that MHX2 import imports shape keys, so MakeShape will simply merge these shape keys with the targets. In order to not mess this up please follow the instructions. There is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (The version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\faceshapes <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\faceshapes\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that my faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where ever you want, and '''move''' the new file faceshapes_BASE.mxa there, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files (or you may prefer to do this with a few .target files at first) - add the selected files to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Getting errors=== Some of the targets will probably give you errors. Remove the files from the import folder. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets fb270e8ccd34a805f4828f02c6bfcc15620fae26 2019 2018 2021-01-30T10:41:21Z Assetdk 89 /* Using MakeShapes */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= '''It makes good sense to learn how to use MakeTarget2 first.''' In general this addon was made by ''Joel Palmius'', and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). ===BaseMesh - this paragraph is for later=== Now make your Basemesh human. The first time you used MH you probably made some very fancy model, as you can. However you now want a 'base' character, with as little customization as possible. You will want to be able to transfer parameters/attribures between characters when they are in Unreal, and for that reason they must share the same basic definitions. ===MakeTarget import=== The process is very simple, you load your basecharacter to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender/MakeHuman and run 'Import human'! You should probably use the MakeTarget preset for this. This could look something like this, remember to use the preset Load button. [[File:MH2Blender MakeTarget1.png|800px]] In the current version of MakeTarget2 you will have two options - when you select the 'Body' or 'BaseMesh' you imported. This all happens in Blender/Object mode. Select to view the shape keys: [[File:MH2Blender MakeTarget2.png|1000px]] When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via the Modelling/community "menu" - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ::However you also may have noticed that MakeTarget2 do not work on your entire base character it will "only" import the mesh and the shape keys can not be used as such if you moved it to Unreal. =Using '''MHX2 import'''= Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your needs are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. ::Now lets get started!! =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2. MakeShapes works exploits the fact that MHX2 import imports shape keys, so MakeShape will simply merge these shape keys with the targets. In order to not mess this up please follow the instructions. There is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (The version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\faceshapes <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\faceshapes\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that my faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where ever you want, and '''move''' the new file faceshapes_BASE.mxa there, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files (or you may prefer to do this with a few .target files at first) - add the selected files to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets b67e454af302adc57383f78b12a41a171633823d 2018 2017 2021-01-30T10:21:56Z Assetdk 89 /* Using MHX2 import */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= '''It makes good sense to learn how to use MakeTarget2 first.''' In general this addon was made by ''Joel Palmius'', and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). ===BaseMesh - this paragraph is for later=== Now make your Basemesh human. The first time you used MH you probably made some very fancy model, as you can. However you now want a 'base' character, with as little customization as possible. You will want to be able to transfer parameters/attribures between characters when they are in Unreal, and for that reason they must share the same basic definitions. ===MakeTarget import=== The process is very simple, you load your basecharacter to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender/MakeHuman and run 'Import human'! You should probably use the MakeTarget preset for this. This could look something like this, remember to use the preset Load button. [[File:MH2Blender MakeTarget1.png|800px]] In the current version of MakeTarget2 you will have two options - when you select the 'Body' or 'BaseMesh' you imported. This all happens in Blender/Object mode. Select to view the shape keys: [[File:MH2Blender MakeTarget2.png|1000px]] When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via the Modelling/community "menu" - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ::However you also may have noticed that MakeTarget2 do not work on your entire base character it will "only" import the mesh and the shape keys can not be used as such if you moved it to Unreal. =Using '''MHX2 import'''= Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your needs are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. ::Now lets get started!! =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 4687a0131cc1f02c6c2efffca0924fc30c249184 2017 2016 2021-01-30T10:15:22Z Assetdk 89 /* Using MHX2 import */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= '''It makes good sense to learn how to use MakeTarget2 first.''' In general this addon was made by ''Joel Palmius'', and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). ===BaseMesh - this paragraph is for later=== Now make your Basemesh human. The first time you used MH you probably made some very fancy model, as you can. However you now want a 'base' character, with as little customization as possible. You will want to be able to transfer parameters/attribures between characters when they are in Unreal, and for that reason they must share the same basic definitions. ===MakeTarget import=== The process is very simple, you load your basecharacter to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender/MakeHuman and run 'Import human'! You should probably use the MakeTarget preset for this. This could look something like this, remember to use the preset Load button. [[File:MH2Blender MakeTarget1.png|800px]] In the current version of MakeTarget2 you will have two options - when you select the 'Body' or 'BaseMesh' you imported. This all happens in Blender/Object mode. Select to view the shape keys: [[File:MH2Blender MakeTarget2.png|1000px]] When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via the Modelling/community "menu" - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ::However you also may have noticed that MakeTarget2 do not work on your entire base character it will "only" import the mesh and the shape keys can not be used as such if you moved it to Unreal. =Using '''MHX2 import'''= Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your needs are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 5e9f2bd70556139dbc0570c6671921228b1e62d2 2016 2015 2021-01-30T10:08:51Z Assetdk 89 /* Using MHX2 import */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= '''It makes good sense to learn how to use MakeTarget2 first.''' In general this addon was made by ''Joel Palmius'', and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). ===BaseMesh - this paragraph is for later=== Now make your Basemesh human. The first time you used MH you probably made some very fancy model, as you can. However you now want a 'base' character, with as little customization as possible. You will want to be able to transfer parameters/attribures between characters when they are in Unreal, and for that reason they must share the same basic definitions. ===MakeTarget import=== The process is very simple, you load your basecharacter to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender/MakeHuman and run 'Import human'! You should probably use the MakeTarget preset for this. This could look something like this, remember to use the preset Load button. [[File:MH2Blender MakeTarget1.png|800px]] In the current version of MakeTarget2 you will have two options - when you select the 'Body' or 'BaseMesh' you imported. This all happens in Blender/Object mode. Select to view the shape keys: [[File:MH2Blender MakeTarget2.png|1000px]] When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via the Modelling/community "menu" - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ::However you also may have noticed that MakeTarget2 do not work on your entire base character it will "only" import the mesh and the shape keys can not be used as such if you moved it to Unreal. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your needs are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 1ee61288e6ffaa766cc0acb5e49c1718e8393252 2015 2014 2021-01-30T10:07:05Z Assetdk 89 /* MakeTarget import */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= '''It makes good sense to learn how to use MakeTarget2 first.''' In general this addon was made by ''Joel Palmius'', and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). ===BaseMesh - this paragraph is for later=== Now make your Basemesh human. The first time you used MH you probably made some very fancy model, as you can. However you now want a 'base' character, with as little customization as possible. You will want to be able to transfer parameters/attribures between characters when they are in Unreal, and for that reason they must share the same basic definitions. ===MakeTarget import=== The process is very simple, you load your basecharacter to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender/MakeHuman and run 'Import human'! You should probably use the MakeTarget preset for this. This could look something like this, remember to use the preset Load button. [[File:MH2Blender MakeTarget1.png|800px]] In the current version of MakeTarget2 you will have two options - when you select the 'Body' or 'BaseMesh' you imported. This all happens in Blender/Object mode. Select to view the shape keys: [[File:MH2Blender MakeTarget2.png|1000px]] When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via the Modelling/community "menu" - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ::However you also may have noticed that MakeTarget2 do not work on your entire base character it will "only" import the mesh and the shape keys can not be used as such if you moved it to Unreal. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 1ec2060297ded902f188b8876460cf0baf5991d0 2014 2013 2021-01-30T10:03:50Z Assetdk 89 /* MakeTarget import */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= '''It makes good sense to learn how to use MakeTarget2 first.''' In general this addon was made by ''Joel Palmius'', and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). ===BaseMesh - this paragraph is for later=== Now make your Basemesh human. The first time you used MH you probably made some very fancy model, as you can. However you now want a 'base' character, with as little customization as possible. You will want to be able to transfer parameters/attribures between characters when they are in Unreal, and for that reason they must share the same basic definitions. ===MakeTarget import=== The process is very simple, you load your basecharacter to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender/MakeHuman and run 'Import human'! You should probably use the MakeTarget preset for this. This could look something like this, remember to use the preset Load button. [[File:MH2Blender MakeTarget1.png|800px]] In the current version of MakeTarget2 you will have two options - when you select the 'Body' or 'BaseMesh' you imported. This all happens in Blender/Object mode. Select to view the shape keys: [[File:MH2Blender MakeTarget2.png|1000px]] When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via the Modelling/community "menu" - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets dfd2c413633f4a4795fbe554a1713ff010b1c7ef 2013 2012 2021-01-30T09:56:22Z Assetdk 89 /* MakeTarget import */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= '''It makes good sense to learn how to use MakeTarget2 first.''' In general this addon was made by ''Joel Palmius'', and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). ===BaseMesh - this paragraph is for later=== Now make your Basemesh human. The first time you used MH you probably made some very fancy model, as you can. However you now want a 'base' character, with as little customization as possible. You will want to be able to transfer parameters/attribures between characters when they are in Unreal, and for that reason they must share the same basic definitions. ===MakeTarget import=== The process is very simple, you load your basecharacter to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender/MakeHuman and run 'Import human'! You should probably use the MakeTarget preset for this. This could look something like this, remember to use the preset Load button. [[File:MH2Blender MakeTarget1.png]] In the current version of MakeTarget2 you will have two options - when you select the 'Body' or 'BaseMesh' you imported. This all happens in Blender/Object mode. Select to view the shape keys: [[File:MH2Blender MakeTarget2.png]] When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via the Modelling/community "menu" - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 36322297d0be8a530ce079fe8f628bac19b049ae 2012 2009 2021-01-30T09:55:31Z Assetdk 89 /* BaseMesh */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= '''It makes good sense to learn how to use MakeTarget2 first.''' In general this addon was made by ''Joel Palmius'', and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). ===BaseMesh - this paragraph is for later=== Now make your Basemesh human. The first time you used MH you probably made some very fancy model, as you can. However you now want a 'base' character, with as little customization as possible. You will want to be able to transfer parameters/attribures between characters when they are in Unreal, and for that reason they must share the same basic definitions. ===MakeTarget import=== The process is very simple, you load your basecharacter to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender/MakeHuman and run 'Import human'! You should probably use the MakeTarget preset for this. This could look something like this, remember to use the preset Load button. [[File:MH2Blender MakeTarget1.png]] In the current version of MakeTarget2 you will have two options - when you select the 'Body' or 'BaseMesh' you imported. This all happens in Blender/Object mode. Select to view the shape keys: [[File:MH2Blender MakeTarget1.png]] When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via the Modelling/community "menu" - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets aa6b01e3bd1fd819ae770fb97edb2797feb01454 2009 2008 2021-01-30T09:26:53Z Assetdk 89 /* Getting started with MakeTarget2 */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= '''It makes good sense to learn how to use MakeTarget2 first.''' In general this addon was made by ''Joel Palmius'', and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). ===BaseMesh=== Now make your Basemesh human. The first time you used MH you probably made some very fancy model, as you can. However you now want a 'base' character, with as little customization as possible. You will want to be able to transfer parameters/attribures between characters when they are in Unreal, and for that reason they must share the same basic definitions. The process is very simple, you load your basecharacter to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender/MakeHuman and run 'Import human'! You should probably use the MakeTarget preset for this. In the current version of MakeTarget2 you will have two options - when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets e36f4633158bcdf8ebbc2f8f00b6dfd8aae9091e 2008 2007 2021-01-30T09:13:14Z Assetdk 89 /* Getting started with MakeTarget2 */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= '''It makes good sense to learn how to use MakeTarget2 first.''' In general this addon was made by ''Joel Palmius'', and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 0f798da37b6e6953e62321bee6b57929d34d81e6 2007 1985 2021-01-30T08:09:57Z Assetdk 89 wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * I am currently updating this page and the addon - to make it useful. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 30 January 2021 (UTC) =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 65fb4bf13fff1ac967477e9b0c2f0e159d53b62a 1985 1984 2021-01-17T11:19:40Z Assetdk 89 /* Using MHX2 import */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format - from the MakeHuman application. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not visible when you look for them in MakeHuman! There are similar to targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets e901a333da51c0805afee83387df820692fb86a3 1984 1983 2021-01-16T18:48:03Z Assetdk 89 /* Initial setup for faceshapes.mxa */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. (- do not change or delete the original!) Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 3599bad1bdc63beb5b383e0478131181870a2293 1983 1978 2021-01-16T18:27:53Z Assetdk 89 /* Introduction */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 4fc15f33a98998fa5f5709540cf5f3d115c61497 1978 1785 2021-01-16T11:19:08Z Assetdk 89 wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets c9c2ab83d6fbc2be3f43463bd6f639c53a8280c9 1785 1783 2020-04-18T15:06:50Z Assetdk 89 /* Using MakeShapes */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. ===Limitations to shape keys and morph targets=== While working with Blender and Shape keys you will find that while they are just fine for Usage in Blender and rendering, but they are often useless for animations. That is shape keys will only work on the mesh and bones will not follow the shape of the mesh. The same apply to morph targets. Quite many of the Makehuman targets will work just fine for you in Blender. Most of them may also work fine even with animations, but a few of them can not be used in UE4. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets f701f6e49220f39a597f024f9d0aad353a9d5ba0 1783 1782 2020-04-18T14:36:05Z Assetdk 89 /* Using MakeShapes */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm Now when you import any Makehuman MHX2 file and check on the 'Face shapes' and 'Face shape drivers', all of the targets will be added to the character! You do not need to do anything else.. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 391cf8a2d76704650164169caa468a9d322d0c00 1782 1781 2020-04-18T14:33:00Z Assetdk 89 /* Using MakeShapes */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom If you do not uncheck the checkbox all .target files will be processed - now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. Next step is to press 'Save your faceshapes.mxa file' button, select the folder where you placed the faceshapes_BASE.mxa file. This will produce a new and bigger faceshapes.mxa file. Your final task will be to copy this file to the MHX2 directory: =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 0a1ff0fbe98393a28e1f086702334c1573a15cba 1781 1780 2020-04-18T13:14:42Z Assetdk 89 /* Using MakeShapes */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom Now the targets should appear in Blender, as shape keys, and they should be active and working! '''WARNING!!''' You should not use the 'Save Targets' buttons, it will save all of the .target files, but I think they are useless. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets d206cac8a52375c2e486640eb66007bc322097e6 1780 1779 2020-04-18T13:12:17Z Assetdk 89 /* Using MakeShapes */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: C:\Users\<user>\Documents\makehuman\v1py3\data\custom Now the targets should appear in Blender, as shape keys, and they should be active and working! =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 2b6e20cb55e44c24ba205c0cf2d8530fe8fd7d86 1779 1777 2020-04-18T13:09:37Z Assetdk 89 /* Using MakeShapes */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] MakeShapes installed, you should see the above. After you have imported a character from the running Makehuman, you can now locate the shape keys, under "object data", this icon: [[File:MakeShapes-icon.png]]. You can now press the 'Load shapes from targets' button (if you want to you can load a single target, this happens when you uncheck the corresponding checkbox). The target files you want to load are those you found before: =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 579709ba14659e362b2964385224cae979ff1b5b 1777 1775 2020-04-18T13:01:19Z Assetdk 89 /* MakeShapes progress */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! ==Using MakeShapes== [[File:MakeShapes-buttons.png]] =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 9b376a8dcae6c0614e1d9d1e77cab30f552a9380 1775 1773 2020-04-18T12:56:25Z Assetdk 89 /* Using MakeShapes */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 Now there is two manual steps to do before you can use MakeShapes: * find the faceshapes.mxa file, make a backup and make your faceshapes_BASE.mxa file * Find the community target files, that are used by Makehuman ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom of the file, but above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] Please note that you will not need to do this again, unless there is a new version of the MHX2 addon. ===Initial setup for target files=== Before you do this you should add all the targets you want to use to Makehuman. you find these under modelling/custom! And you can download even more from 'Community'/'Download assets' [[File:MakeShapes-custom-targets.png]] The '''.target''' files are located in the Makehuman directory, your setup may be different, but on my computer this looks like this: C:\Users\<user>\Documents\makehuman\v1py3\data\custom You take a copy of all the files, and add them to the MHX2 raw folder: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw You can simply add more .target files to the directory, as you need! To be on the safe side make a backup copy of the .target files! After this you should be good to go! =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 3935cde68ee6dc673ca8353d283d05aa8238834e 1773 1772 2020-04-18T12:27:01Z Assetdk 89 /* Initial setup for faceshapes.mxa */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 0950aecd3b9129c8f1825f6a25b991c7be96b115 1772 1770 2020-04-18T12:25:31Z Assetdk 89 /* Using MakeShapes */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 ===Initial setup for faceshapes.mxa=== You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshapes.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] You will notice that the faceshapes.mxa file is not looking like yours. I recommend that you make two copies of that file and call them faceshapes_BASE.mxa and faceshapes-original.mxa. Now make a new folder, anywhere where you want, and '''move''' the new file faceshapes_BASE.mxa, then edit this file and add one line <faceshape> at the bottom above the two } } lines, like this: [[File:MakeShapes-faceshape_base.png]] =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets ed62f0148b1f335e4012362314f65272aa7f7bbc 1770 1768 2020-04-18T12:13:34Z Assetdk 89 /* Using MakeShapes */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshape.mxa that you will use soon! With your file explorer try to locate this directory, on your computer (Thh version ext may be difrent for your installation): C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons <--- '''where all addons are when installed''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8 <-- '''the files you need, soon''' C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\import_runtime_mhx2\data\hm8\raw <-- '''the files you add to, soon''' This is how my directory shows up: [[File:MakeTarget2-data.png]] =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets dce23c41c68acd8a030ac52c1c31a53f9d52ee2b 1768 1767 2020-04-18T12:06:00Z Assetdk 89 /* Using MakeShapes */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= You should be familiar with Makehuman, MakeTargert2, MHX2 import - that is you should be able to perform the following tasks: * 'Import human' for the base human character from Makehuman to Blender. (do this now) * You should have installed MakeTarget2 to blender and you can now install MakeShapes - notice that it will install with MakeTarget2 You don't need to use MakeTarget2, but you will now need to locate some '''.target''' files, and the faceshape.mxa that you will use soon! With your file explorer try to locate this directory, on your computer: C:\users\<your user>\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 97c165d5c5a3a3ac3c8dc4d3306e350ceda3b510 1767 1766 2020-04-18T11:56:15Z Assetdk 89 /* MakeShapes progress */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =Using MakeShapes= =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets edc8da27c0178fa69b74fe53901f6196ad6d4304 1766 1765 2020-04-18T11:55:14Z Assetdk 89 /* Getting started with MakeTarget2 */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. =Getting started with MakeTarget2= It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 627d45234bbc1f9643b44fb7a01b92b7e5c5273f 1765 1764 2020-04-18T11:50:36Z Assetdk 89 /* Introduction */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ==Find the addon on GitHub== This is the link for the addon master: [https://github.com/AssetDK/makeshapes] You need to add the addon to Blender and you need to know about two other addons, as described below. Currently this addon have been tested on Blender 2.80 only, but it should work on any Blender version that works for the two addons. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2. ==Getting started with MakeTarget2== It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 57b35f91bd2224a9740af2324c3b71fc4c56b8dd 1764 1763 2020-04-15T14:10:12Z Assetdk 89 /* Introduction */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' please use '''Blender 2.8''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2 (but only one by one!). ==Getting started with MakeTarget2== It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 8df6b708f2fe94acdf2d3667d92ac46374482d31 1763 1762 2020-04-15T14:07:09Z Assetdk 89 /* Introduction */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary '''[http://www.makehumancommunity.org/content/plugins.html must have Blender addons]''' - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2 (but only one by one!). ==Getting started with MakeTarget2== It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets d2a40a5a40cbbdb2bd7a4c2e085a3aa349e32ff7 1762 1759 2020-04-15T14:02:57Z Assetdk 89 /* MakeShapes, done.... */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary must have Blender addons - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2 (but only one by one!). ==Getting started with MakeTarget2== It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =MakeShapes progress= ===MakeShapes, done.... === While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ===MakeShapes todo=== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets 4dc462fc020f13cfc470ddd9348f274573bd25a9 1759 1758 2020-04-15T13:46:50Z Assetdk 89 /* Introduction */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary must have Blender addons - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. You can also take a look at this page for more on how to work with Blender: [[Moving Assets into Blender]]. And I also made these pages: * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there]]. * [[Documentation:Unreal Engine ALS V4]] * [[Documentation:Unreal Engine Vehicle Variety Pack]] ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2 (but only one by one!). ==Getting started with MakeTarget2== It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =MakeShapes, done.... = While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ==MakeShapes todo== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets da5bdc5d561eba78a6b91782d2ebd182f35e8a7f 1758 1757 2020-04-15T13:28:21Z Assetdk 89 /* Introduction */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary must have Blender addons - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2 (but only one by one!). ==Getting started with MakeTarget2== It makes good sense to learn how to use MankeTarget2 first. In general this addon was made by Joel Palmius, and it builds upon the fact that you can directly transfer the characters you have loaded in MakeHuman. So start up MakeHuman and set it up to communicate with the Blender addon (This is done in the community/Socket tab, and the setting in the Blender addon must be the same. As they are by default). The process is very simple, you load your character to MakeHuman, without any targets, but as you would like to see it in Blender/UE4/Unity. And then you go to Blender and run 'Import human'! In the current version of MakeTarget2 you will have two options, when you select the 'Body' or 'BaseMesh' you imported. When you press the 'Load target' button you must locate an existing .target file. These can be found in a directory: C:\Users\<user>\Documents\makehuman\v1py3\data\custom (this may change depending on how you set up MH!). These are accessed in Makehuman via Modelling/community - make sure to check out that you can find even more community targets! Try this now, selecting elf-ears.target and load this. Two new entries are made under shape keys: Basis, PrimaryTarget. And your character should now have elf ears! You can change the size of the ears, in 'Object mode'. The general scope of MakeTarget2 is that you can make a new target, or you can load one and change it - when you are satisfied with that you can save you new target file, import and use it in MakeHuman....: * Go to 'edit mode', * edit the elf-ears * Press 'Save target' * Name your target elf-ears2.target and save it If you did this in the correct folder, your new target should appear in Makehuman and you can use it there! When you made one target you can not make one more, so you need to delete the Shape keys, in blender, to load/make a new one. Be sure to make a backup if your work was brilliant! You may also notice that not all targets will get loaded correctly to Blender using MakeTarget2, I do not know why... You can now import your character from Makehuman make a new community Target and you can get it to work in Makehuman. Using two of the must have Blender addons. ==Using '''MHX2 import'''== Now try to EXPORT your MakeHuman character in '''MHX2''' format. You probably already know that you can load and save characters, and you can not "transfer" them to Blender. But some of the data appears to be lost, left out or missing when you look at the character in Blender. However when you make use of the 'MHX2 runtime' import you will notice that it imports shape keys - however these shape keys are not "know" when you look for them in MakeHuman! There are some similar targets, but they are not the same! MHX2 runtime simply can add some predefined 'Face shape and face shape drivers' to your character, when you thick the box in before you import. (You can also chose to import the Base mesh, the Proxy or both..!) You should try to play around with the MHX2 import options. I ended up with some very specific settings, as I want to import the character in UE4 - you may find that you need different settings depending on what your need are. In case you think you now know enough about MakeTarget2 and MHX2 import, you can now take a look at what can be done with MakeShapes. =MakeShapes, done.... = While MakeTargt2 can help you modify existing target it will not help you much when you what to "transfer" shape keys. My very first attempt on learning Python and making a new Blender addon involved using VSCode and and extension called 'Blender code' - whit that you can run Blender and the load and debug an existing addon... this was what I did with MakeTaget2. Messing around with the code I found out how to change the names of the shape keys, name to the "file name". After that it was easy to read all .target files from a directory and add them all as shape keys! This took me only half the way though... as I wanted the shape keys to merge with the character, any character, that I made in MakeHuman. I did try several tools for transfer shape keys, but some did not work at all and some would transfer only party or with some issues. So I finally looked into how the original set of shape keys came to Blender. And I found that the 'MHX2 import' added "face shapes".. that were not part of the original export! Using the MakeTarget2 print/save functions enabled me to "dump" the raw 'Shape key' data to print/files and I am now able to cut/paste the "printed" version. Say, the elf-ears, can now be add to the file that 'MHX2 import' works with, and the shape keys will be added to the imported Blender characters... for both Base/proxy mesh. Right now MakeShapes will export the selected shape key only. ==MakeShapes todo== * The addon must be packaged and put on Github * I need to output all of the shape keys, in one "faceshape" file. * I want to be able to process expressions. * I I what to be able to process all expression builder targets c380f95d54aa87f119d2be7aa3347ffe07969126 1757 1756 2020-04-15T11:43:56Z Assetdk 89 /* Introduction */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary must have Blender addons - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community Blender addon contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing! ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2 (but only one by one!). 3962e34d3e34632519b53930fa892da3aa1ba2b7 1756 1755 2020-04-15T11:39:59Z Assetdk 89 /* Introduction */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary must have Blender addons - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * [[Documentation:MHBlenderTools:_MakeTarget]] that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing. ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2 (but only one by one!). acfeaa4235ea19bae22e9b5708d16e9a2e248d82 1755 1754 2020-04-15T11:33:08Z Assetdk 89 /* Introduction */ wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are a few primary must have Blender addons - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * MakeTarget2 that will help you to make new Targets to be used from within MakeHuman. When you want to use your characters in Blender, or when you want to export them to a game engine - UE4 or Unity - you even get some shape keys, also called morph targets. These are however not always "included" in the files exported from MakeHuman - specifically the shape keys are added by the MHX2 runtime addon. ( Also the community contains some kind of shape key/pose functionality, but I have not been able to find any explanations for what they are doing. ) Rather than making your characters in MakeHuman with one fixed expression/shape/pose, you would probably want to have the same options available in Blender. So I investigated the above addons and made MakeShapes as a small extension to MakeTartarget2. The general idea is have been to to transfer the Targets, expressions and the expression builder "sliders"... as-is, so they can be used as shape keys. ===Current status=== Thus far, in version 0.1.0 of the tool all of the Targets can be imported to Blender and the targets can be added to MHX2 (but only one by one!). 7b28acb269dbcc92ef94beb4ef85e543b0107553 1754 2020-04-15T10:52:28Z Assetdk 89 Created page with "=MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a back..." wikitext text/x-wiki =MakeShapes for Blender= This is a new tool for importing MakeHuman Targets as Shape Keys in Blender. Please read the instructions below carefully and be sure to make a backup of any addons you change etc. ==Introduction== When working with MakeHuman in Blender you will have some high quality characters to play with and you will see that the community addons can help you a lot. There are some primary must have Blender addons - these are the tree you will need to have and know about to use '''MakeShapes''': * Makehuman the community addon, that will allow you to fetch your character from MakeHuman to Blender directly! * MHX2 Runtime, that will allow you to the import MHX2 files you made in MakeHuman * MakeTarget2 that will allow you to make new Targets to be used from within MakeHuman.... a8e5819e537442d1381706dde3b08dc33794f44d Documentation:MHBlenderTools: MakeTarget 3000 18 511 510 2015-08-30T08:58:56Z Joepal 14 /* Introductory video */ wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. For the information below to make sense and be useful, you will need to first install BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] == Introductory videos == If you find this page, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} A longer and somewhat more gentle intro is provided by VScorpianC. If you're new to the subject, it will probably make sense to watch this: {{#ev:youtube|CqH_Ec5NKNE}} == What is a Target? The MakeHuman Morphing Process. == [[File:Morph1.png|left]] The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". <br style="clear:both" /> == Loading the Base Mesh == [[File:maketarget131-area.png|left]] While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. <br style="clear:both" /> == MakeTarget 1.31 == [[File:maketarget131.png|left]] Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file. Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. <br style="clear:both" /> [[File:helper_details.png|left]] [[File:maketarget-base.png|right]] <br style="clear:both" /> == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === [[File:MakeTarget_load.png|left]] After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. <br style="clear:both" /> === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. [[File:maketarget131-panels.png]] [[File:maketarget3.png|right]] At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. <br style="clear:both" /> === Load Target Section (After The First Target Is Loaded) === [[File:MakeTargetLoadSecondaryTarget.png|left]] The three buttons now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. <br style="clear:both" /> === Discard And Apply Target Section === [[File:MakeTargetDiscardAndApplyTarget.png|left]] The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. <br style="clear:both" /> === Symmetry Section === [[File:MakeTargetTargetSymmetryButtons.png|left]] The two buttons in the "Symmetry" section are modelling tools, and are very useful. They have been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. <br style="clear:both" /> === Save Target Section === [[File:MakeTargetSaveTargetSection.png|left]] Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. <br style="clear:both" /> === Additional Fit Helper Buttons === [[File:MakeTargetFitTargetButton.png|left]] [[File:MakeTargetSkirtEditingAffectOnly3.png|left]] When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. <br style="clear:both" /> ea753de9f660a383b4e9a6c3ba84143407497af3 510 469 2015-08-30T08:57:40Z Joepal 14 /* Introductory video */ wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. For the information below to make sense and be useful, you will need to first install BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] == Introductory video == If you find this page, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} A longer and somewhat more gentle intro is provided by VScorpianC. If you're new to the subject, it will probably make sense to watch this: {{#ev:youtube|CqH_Ec5NKNE}} == What is a Target? The MakeHuman Morphing Process. == [[File:Morph1.png|left]] The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". <br style="clear:both" /> == Loading the Base Mesh == [[File:maketarget131-area.png|left]] While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. <br style="clear:both" /> == MakeTarget 1.31 == [[File:maketarget131.png|left]] Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file. Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. <br style="clear:both" /> [[File:helper_details.png|left]] [[File:maketarget-base.png|right]] <br style="clear:both" /> == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === [[File:MakeTarget_load.png|left]] After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. <br style="clear:both" /> === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. [[File:maketarget131-panels.png]] [[File:maketarget3.png|right]] At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. <br style="clear:both" /> === Load Target Section (After The First Target Is Loaded) === [[File:MakeTargetLoadSecondaryTarget.png|left]] The three buttons now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. <br style="clear:both" /> === Discard And Apply Target Section === [[File:MakeTargetDiscardAndApplyTarget.png|left]] The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. <br style="clear:both" /> === Symmetry Section === [[File:MakeTargetTargetSymmetryButtons.png|left]] The two buttons in the "Symmetry" section are modelling tools, and are very useful. They have been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. <br style="clear:both" /> === Save Target Section === [[File:MakeTargetSaveTargetSection.png|left]] Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. <br style="clear:both" /> === Additional Fit Helper Buttons === [[File:MakeTargetFitTargetButton.png|left]] [[File:MakeTargetSkirtEditingAffectOnly3.png|left]] When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. <br style="clear:both" /> 3b21c54bb179d1f6bdcf8c5bdb3b4065f023ba8d 469 468 2015-08-19T07:22:21Z Fairytail 16 /* Loading the Base Mesh */ wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. For the information below to make sense and be useful, you will need to first install BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] == Introductory video == If you find this page, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} == What is a Target? The MakeHuman Morphing Process. == [[File:Morph1.png|left]] The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". <br style="clear:both" /> == Loading the Base Mesh == [[File:maketarget131-area.png|left]] While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. <br style="clear:both" /> == MakeTarget 1.31 == [[File:maketarget131.png|left]] Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file. Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. <br style="clear:both" /> [[File:helper_details.png|left]] [[File:maketarget-base.png|right]] <br style="clear:both" /> == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === [[File:MakeTarget_load.png|left]] After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. <br style="clear:both" /> === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. [[File:maketarget131-panels.png]] [[File:maketarget3.png|right]] At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. <br style="clear:both" /> === Load Target Section (After The First Target Is Loaded) === [[File:MakeTargetLoadSecondaryTarget.png|left]] The three buttons now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. <br style="clear:both" /> === Discard And Apply Target Section === [[File:MakeTargetDiscardAndApplyTarget.png|left]] The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. <br style="clear:both" /> === Symmetry Section === [[File:MakeTargetTargetSymmetryButtons.png|left]] The two buttons in the "Symmetry" section are modelling tools, and are very useful. They have been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. <br style="clear:both" /> === Save Target Section === [[File:MakeTargetSaveTargetSection.png|left]] Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. <br style="clear:both" /> === Additional Fit Helper Buttons === [[File:MakeTargetFitTargetButton.png|left]] [[File:MakeTargetSkirtEditingAffectOnly3.png|left]] When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. <br style="clear:both" /> 44e9632ef96d89d5cdd98a8d0057144dcd83ba2e 468 467 2015-08-19T07:17:42Z Fairytail 16 /* Additional Fit Helper Buttons */ wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. For the information below to make sense and be useful, you will need to first install BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] == Introductory video == If you find this page, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} == What is a Target? The MakeHuman Morphing Process. == [[File:Morph1.png|left]] The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". <br style="clear:both" /> == Loading the Base Mesh == [[File:maketarget131-area.png|right]] While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. <br style="clear:both" /> [[File:maketarget131.png|left]] Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file. Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. <br style="clear:both" /> [[File:helper_details.png|left]] [[File:maketarget-base.png|right]] <br style="clear:both" /> == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === [[File:MakeTarget_load.png|left]] After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. <br style="clear:both" /> === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. [[File:maketarget131-panels.png]] [[File:maketarget3.png|right]] At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. <br style="clear:both" /> === Load Target Section (After The First Target Is Loaded) === [[File:MakeTargetLoadSecondaryTarget.png|left]] The three buttons now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. <br style="clear:both" /> === Discard And Apply Target Section === [[File:MakeTargetDiscardAndApplyTarget.png|left]] The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. <br style="clear:both" /> === Symmetry Section === [[File:MakeTargetTargetSymmetryButtons.png|left]] The two buttons in the "Symmetry" section are modelling tools, and are very useful. They have been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. <br style="clear:both" /> === Save Target Section === [[File:MakeTargetSaveTargetSection.png|left]] Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. <br style="clear:both" /> === Additional Fit Helper Buttons === [[File:MakeTargetFitTargetButton.png|left]] [[File:MakeTargetSkirtEditingAffectOnly3.png|left]] When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. <br style="clear:both" /> bba8f244fdeb79c5f0f1487f24c314caf4cb5c36 467 466 2015-08-19T07:15:31Z Fairytail 16 /* Save Target Section */ wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. For the information below to make sense and be useful, you will need to first install BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] == Introductory video == If you find this page, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} == What is a Target? The MakeHuman Morphing Process. == [[File:Morph1.png|left]] The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". <br style="clear:both" /> == Loading the Base Mesh == [[File:maketarget131-area.png|right]] While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. <br style="clear:both" /> [[File:maketarget131.png|left]] Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file. Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. <br style="clear:both" /> [[File:helper_details.png|left]] [[File:maketarget-base.png|right]] <br style="clear:both" /> == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === [[File:MakeTarget_load.png|left]] After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. <br style="clear:both" /> === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. [[File:maketarget131-panels.png]] [[File:maketarget3.png|right]] At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. <br style="clear:both" /> === Load Target Section (After The First Target Is Loaded) === [[File:MakeTargetLoadSecondaryTarget.png|left]] The three buttons now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. <br style="clear:both" /> === Discard And Apply Target Section === [[File:MakeTargetDiscardAndApplyTarget.png|left]] The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. <br style="clear:both" /> === Symmetry Section === [[File:MakeTargetTargetSymmetryButtons.png|left]] The two buttons in the "Symmetry" section are modelling tools, and are very useful. They have been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. <br style="clear:both" /> === Save Target Section === [[File:MakeTargetSaveTargetSection.png|left]] Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. <br style="clear:both" /> === Additional Fit Helper Buttons === [[File:MakeTargetFitTargetButton.png]] [[File:MakeTargetSkirtEditingAffectOnly3.png]] When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. 0bf76d5edc472235ebe6d0fb79b016751d79640c 466 465 2015-08-19T07:13:49Z Fairytail 16 /* Symmetry Section */ wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. For the information below to make sense and be useful, you will need to first install BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] == Introductory video == If you find this page, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} == What is a Target? The MakeHuman Morphing Process. == [[File:Morph1.png|left]] The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". <br style="clear:both" /> == Loading the Base Mesh == [[File:maketarget131-area.png|right]] While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. <br style="clear:both" /> [[File:maketarget131.png|left]] Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file. Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. <br style="clear:both" /> [[File:helper_details.png|left]] [[File:maketarget-base.png|right]] <br style="clear:both" /> == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === [[File:MakeTarget_load.png|left]] After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. <br style="clear:both" /> === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. [[File:maketarget131-panels.png]] [[File:maketarget3.png|right]] At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. <br style="clear:both" /> === Load Target Section (After The First Target Is Loaded) === [[File:MakeTargetLoadSecondaryTarget.png|left]] The three buttons now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. <br style="clear:both" /> === Discard And Apply Target Section === [[File:MakeTargetDiscardAndApplyTarget.png|left]] The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. <br style="clear:both" /> === Symmetry Section === [[File:MakeTargetTargetSymmetryButtons.png|left]] The two buttons in the "Symmetry" section are modelling tools, and are very useful. They have been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. <br style="clear:both" /> === Save Target Section === [[File:MakeTargetSaveTargetSection.png]] Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === [[File:MakeTargetFitTargetButton.png]] [[File:MakeTargetSkirtEditingAffectOnly3.png]] When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. d749ec6849973b5679699ef33a6bb05e56c94b0a 465 464 2015-08-19T07:12:42Z Fairytail 16 /* Discard And Apply Target Section */ wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. For the information below to make sense and be useful, you will need to first install BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] == Introductory video == If you find this page, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} == What is a Target? The MakeHuman Morphing Process. == [[File:Morph1.png|left]] The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". <br style="clear:both" /> == Loading the Base Mesh == [[File:maketarget131-area.png|right]] While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. <br style="clear:both" /> [[File:maketarget131.png|left]] Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file. Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. <br style="clear:both" /> [[File:helper_details.png|left]] [[File:maketarget-base.png|right]] <br style="clear:both" /> == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === [[File:MakeTarget_load.png|left]] After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. <br style="clear:both" /> === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. [[File:maketarget131-panels.png]] [[File:maketarget3.png|right]] At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. <br style="clear:both" /> === Load Target Section (After The First Target Is Loaded) === [[File:MakeTargetLoadSecondaryTarget.png|left]] The three buttons now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. <br style="clear:both" /> === Discard And Apply Target Section === [[File:MakeTargetDiscardAndApplyTarget.png|left]] The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. <br style="clear:both" /> === Symmetry Section === [[File:MakeTargetTargetSymmetryButtons.png]] The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === [[File:MakeTargetSaveTargetSection.png]] Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === [[File:MakeTargetFitTargetButton.png]] [[File:MakeTargetSkirtEditingAffectOnly3.png]] When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. 886f0f504a9e1a3a4e66b62452033314f69f5998 464 463 2015-08-19T07:11:44Z Fairytail 16 /* Load Target Section (After The First Target Is Loaded) */ wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. For the information below to make sense and be useful, you will need to first install BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] == Introductory video == If you find this page, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} == What is a Target? The MakeHuman Morphing Process. == [[File:Morph1.png|left]] The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". <br style="clear:both" /> == Loading the Base Mesh == [[File:maketarget131-area.png|right]] While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. <br style="clear:both" /> [[File:maketarget131.png|left]] Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file. Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. <br style="clear:both" /> [[File:helper_details.png|left]] [[File:maketarget-base.png|right]] <br style="clear:both" /> == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === [[File:MakeTarget_load.png|left]] After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. <br style="clear:both" /> === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. [[File:maketarget131-panels.png]] [[File:maketarget3.png|right]] At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. <br style="clear:both" /> === Load Target Section (After The First Target Is Loaded) === [[File:MakeTargetLoadSecondaryTarget.png|left]] The three buttons now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. <br style="clear:both" /> === Discard And Apply Target Section === [[File:MakeTargetDiscardAndApplyTarget.png]] The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. === Symmetry Section === [[File:MakeTargetTargetSymmetryButtons.png]] The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === [[File:MakeTargetSaveTargetSection.png]] Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === [[File:MakeTargetFitTargetButton.png]] [[File:MakeTargetSkirtEditingAffectOnly3.png]] When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. b4a4d2325ca587627c4875209eb42eaaa6087b8d 463 403 2015-08-19T07:09:41Z Fairytail 16 /* The MakeTarget™Version 1.09 Panel (After Loading A Target) */ wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. For the information below to make sense and be useful, you will need to first install BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] == Introductory video == If you find this page, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} == What is a Target? The MakeHuman Morphing Process. == [[File:Morph1.png|left]] The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". <br style="clear:both" /> == Loading the Base Mesh == [[File:maketarget131-area.png|right]] While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. <br style="clear:both" /> [[File:maketarget131.png|left]] Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file. Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. <br style="clear:both" /> [[File:helper_details.png|left]] [[File:maketarget-base.png|right]] <br style="clear:both" /> == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === [[File:MakeTarget_load.png|left]] After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. <br style="clear:both" /> === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. [[File:maketarget131-panels.png]] [[File:maketarget3.png|right]] At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. <br style="clear:both" /> === Load Target Section (After The First Target Is Loaded) === [[File:MakeTargetLoadSecondaryTarget.png]] The three buttons that now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. === Discard And Apply Target Section === [[File:MakeTargetDiscardAndApplyTarget.png]] The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. === Symmetry Section === [[File:MakeTargetTargetSymmetryButtons.png]] The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === [[File:MakeTargetSaveTargetSection.png]] Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === [[File:MakeTargetFitTargetButton.png]] [[File:MakeTargetSkirtEditingAffectOnly3.png]] When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. da61d8a7cfc299a2d3caf86aa1f67cb5587750b2 403 377 2015-08-15T16:24:20Z Robbaer 12 wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. For the information below to make sense and be useful, you will need to first install BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] == Introductory video == If you find this page, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} == What is a Target? The MakeHuman Morphing Process. == [[File:Morph1.png|left]] The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". <br style="clear:both" /> == Loading the Base Mesh == [[File:maketarget131-area.png|right]] While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. <br style="clear:both" /> [[File:maketarget131.png|left]] Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file. Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. <br style="clear:both" /> [[File:helper_details.png|left]] [[File:maketarget-base.png|right]] <br style="clear:both" /> == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === [[File:MakeTarget_load.png|left]] After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. <br style="clear:both" /> === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. [[File:maketarget131-panels.png]] At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image below beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. [[File:maketarget3.png]] === Load Target Section (After The First Target Is Loaded) === [[File:MakeTargetLoadSecondaryTarget.png]] The three buttons that now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. === Discard And Apply Target Section === [[File:MakeTargetDiscardAndApplyTarget.png]] The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. === Symmetry Section === [[File:MakeTargetTargetSymmetryButtons.png]] The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === [[File:MakeTargetSaveTargetSection.png]] Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === [[File:MakeTargetFitTargetButton.png]] [[File:MakeTargetSkirtEditingAffectOnly3.png]] When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. 6ee8d3f093fc0721a868ae5b5a48089d4634ff39 377 376 2015-08-11T18:42:30Z Fairytail 16 wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. For the information below to make sense and be useful, you will need to first install BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] == Introductory video == If you find this page TL;DR, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} == What is a Target? The MakeHuman Morphing Process. == [[File:Morph1.png|left]] The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". <br style="clear:both" /> == Loading the Base Mesh == [[File:maketarget131-area.png|right]] While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. <br style="clear:both" /> [[File:maketarget131.png|left]] Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file. Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. <br style="clear:both" /> [[File:helper_details.png|left]] [[File:maketarget-base.png|right]] <br style="clear:both" /> == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === [[File:MakeTarget_load.png|left]] After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. <br style="clear:both" /> === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. [[File:maketarget131-panels.png]] At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image below beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. [[File:maketarget3.png]] === Load Target Section (After The First Target Is Loaded) === [[File:MakeTargetLoadSecondaryTarget.png]] The three buttons that now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. === Discard And Apply Target Section === [[File:MakeTargetDiscardAndApplyTarget.png]] The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. === Symmetry Section === [[File:MakeTargetTargetSymmetryButtons.png]] The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === [[File:MakeTargetSaveTargetSection.png]] Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === [[File:MakeTargetFitTargetButton.png]] [[File:MakeTargetSkirtEditingAffectOnly3.png]] When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. e36b80d049c6f1f792df7413487c8ffd89d7f4cb 376 367 2015-08-09T19:23:25Z Fairytail 16 /* Advanced usage */ wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. For the information below to make sense and be useful, you will need to first install BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] == Introductory video == If you find this page TL;DR, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} == What is a Target? The MakeHuman Morphing Process. == The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. [[File:Morph1.png]] A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". == Loading the Base Mesh == While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. [[File:maketarget131-area.png]] The MakeTarget Version 1.31 Panel (Initial Settings) [[File:maketarget131.png]] Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file [[File:helper_details.png]] Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. [[File:maketarget-base.png]] == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === [[File:MakeTarget_load.png]] After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. [[File:maketarget131-panels.png]] At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image below beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. [[File:maketarget3.png]] === Load Target Section (After The First Target Is Loaded) === [[File:MakeTargetLoadSecondaryTarget.png]] The three buttons that now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. === Discard And Apply Target Section === [[File:MakeTargetDiscardAndApplyTarget.png]] The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. === Symmetry Section === [[File:MakeTargetTargetSymmetryButtons.png]] The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === [[File:MakeTargetSaveTargetSection.png]] Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === [[File:MakeTargetFitTargetButton.png]] [[File:MakeTargetSkirtEditingAffectOnly3.png]] When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. ec5cb227e309a79c34b5c6b11bedbda653d626c2 367 365 2015-08-09T19:08:09Z Fairytail 16 /* Basic usage */ wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. For the information below to make sense and be useful, you will need to first install BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] == Introductory video == If you find this page TL;DR, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} == What is a Target? The MakeHuman Morphing Process. == The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. [[File:Morph1.png]] A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". == Loading the Base Mesh == While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. [[File:maketarget131-area.png]] The MakeTarget Version 1.31 Panel (Initial Settings) [[File:maketarget131.png]] Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file [[File:helper_details.png]] Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. [[File:maketarget-base.png]] == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === [[File:MakeTarget_load.png]] After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. !IMAGE!Pictures/maketarget131-panels.png!/IMAGE! At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image below beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. !IMAGE!Pictures/maketarget3.png!/IMAGE! === Load Target Section (After The First Target Is Loaded) === !IMAGE!Pictures/MakeTargetLoadSecondaryTarget.png!/IMAGE! The three buttons that now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. === Discard And Apply Target Section === !IMAGE!Pictures/MakeTargetDiscardAndApplyTarget.png!/IMAGE! The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. === Symmetry Section === !IMAGE!Pictures/MakeTargetTargetSymmetryButtons.png!/IMAGE! The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === !IMAGE!Pictures/MakeTargetSaveTargetSection.png!/IMAGE! Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === !IMAGE!Pictures/MakeTargetFitTargetButton.png!/IMAGE! !IMAGE!Pictures/MakeTargetSkirtEditingAffectOnly3.png!/IMAGE! When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. 3a27c2744cbc517cedb20f46feb6e5c1630e5051 365 360 2015-08-09T18:53:44Z Fairytail 16 /* Loading the Base Mesh */ wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. For the information below to make sense and be useful, you will need to first install BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] == Introductory video == If you find this page TL;DR, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} == What is a Target? The MakeHuman Morphing Process. == The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. [[File:Morph1.png]] A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". == Loading the Base Mesh == While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. [[File:maketarget131-area.png]] The MakeTarget Version 1.31 Panel (Initial Settings) [[File:maketarget131.png]] Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file [[File:helper_details.png]] Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. [[File:maketarget-base.png]] == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === !IMAGE!Pictures/MakeTarget_load.png!/IMAGE! After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. !IMAGE!Pictures/maketarget131-panels.png!/IMAGE! At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image below beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. !IMAGE!Pictures/maketarget3.png!/IMAGE! === Load Target Section (After The First Target Is Loaded) === !IMAGE!Pictures/MakeTargetLoadSecondaryTarget.png!/IMAGE! The three buttons that now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. === Discard And Apply Target Section === !IMAGE!Pictures/MakeTargetDiscardAndApplyTarget.png!/IMAGE! The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. === Symmetry Section === !IMAGE!Pictures/MakeTargetTargetSymmetryButtons.png!/IMAGE! The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === !IMAGE!Pictures/MakeTargetSaveTargetSection.png!/IMAGE! Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === !IMAGE!Pictures/MakeTargetFitTargetButton.png!/IMAGE! !IMAGE!Pictures/MakeTargetSkirtEditingAffectOnly3.png!/IMAGE! When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. 5c963083829aa0594b1b798aa7bc29f1f6d45788 360 75 2015-08-09T18:38:58Z Fairytail 16 /* What is a Target? The MakeHuman Morphing Process. */ wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. For the information below to make sense and be useful, you will need to first install BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] == Introductory video == If you find this page TL;DR, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} == What is a Target? The MakeHuman Morphing Process. == The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. [[File:Morph1.png]] A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". == Loading the Base Mesh == While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. !IMAGE!Pictures/maketarget131-area.png!/IMAGE! The MakeTarget Version 1.31 Panel (Initial Settings) !IMAGE!Pictures/maketarget131.png!/IMAGE! Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file !IMAGE!Pictures/helper_details.png!/IMAGE! Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. !IMAGE!Pictures/maketarget-base.png!/IMAGE! == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === !IMAGE!Pictures/MakeTarget_load.png!/IMAGE! After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. !IMAGE!Pictures/maketarget131-panels.png!/IMAGE! At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image below beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. !IMAGE!Pictures/maketarget3.png!/IMAGE! === Load Target Section (After The First Target Is Loaded) === !IMAGE!Pictures/MakeTargetLoadSecondaryTarget.png!/IMAGE! The three buttons that now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. === Discard And Apply Target Section === !IMAGE!Pictures/MakeTargetDiscardAndApplyTarget.png!/IMAGE! The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. === Symmetry Section === !IMAGE!Pictures/MakeTargetTargetSymmetryButtons.png!/IMAGE! The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === !IMAGE!Pictures/MakeTargetSaveTargetSection.png!/IMAGE! Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === !IMAGE!Pictures/MakeTargetFitTargetButton.png!/IMAGE! !IMAGE!Pictures/MakeTargetSkirtEditingAffectOnly3.png!/IMAGE! When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. 3ca147255bcfc311a6d58c2046015438d8132fe7 75 73 2015-07-08T07:53:39Z Joepal 14 wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. For the information below to make sense and be useful, you will need to first install BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] == Introductory video == If you find this page TL;DR, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} == What is a Target? The MakeHuman Morphing Process. == The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. !IMAGE!Pictures/morph1.png!/IMAGE! A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". == Loading the Base Mesh == While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. !IMAGE!Pictures/maketarget131-area.png!/IMAGE! The MakeTarget Version 1.31 Panel (Initial Settings) !IMAGE!Pictures/maketarget131.png!/IMAGE! Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file !IMAGE!Pictures/helper_details.png!/IMAGE! Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. !IMAGE!Pictures/maketarget-base.png!/IMAGE! == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === !IMAGE!Pictures/MakeTarget_load.png!/IMAGE! After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. !IMAGE!Pictures/maketarget131-panels.png!/IMAGE! At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image below beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. !IMAGE!Pictures/maketarget3.png!/IMAGE! === Load Target Section (After The First Target Is Loaded) === !IMAGE!Pictures/MakeTargetLoadSecondaryTarget.png!/IMAGE! The three buttons that now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. === Discard And Apply Target Section === !IMAGE!Pictures/MakeTargetDiscardAndApplyTarget.png!/IMAGE! The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. === Symmetry Section === !IMAGE!Pictures/MakeTargetTargetSymmetryButtons.png!/IMAGE! The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === !IMAGE!Pictures/MakeTargetSaveTargetSection.png!/IMAGE! Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === !IMAGE!Pictures/MakeTargetFitTargetButton.png!/IMAGE! !IMAGE!Pictures/MakeTargetSkirtEditingAffectOnly3.png!/IMAGE! When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. e73e0cc6b96f5502262915948ca339debdf251cb 73 70 2015-07-08T07:43:53Z Joepal 14 wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. For the information below to make sense and be useful, you will need to first install BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]] == What is a Target? The MakeHuman Morphing Process. == The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. !IMAGE!Pictures/morph1.png!/IMAGE! A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". == Loading the Base Mesh == While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. !IMAGE!Pictures/maketarget131-area.png!/IMAGE! The MakeTarget Version 1.31 Panel (Initial Settings) !IMAGE!Pictures/maketarget131.png!/IMAGE! Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file !IMAGE!Pictures/helper_details.png!/IMAGE! Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. !IMAGE!Pictures/maketarget-base.png!/IMAGE! == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === !IMAGE!Pictures/MakeTarget_load.png!/IMAGE! After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. !IMAGE!Pictures/maketarget131-panels.png!/IMAGE! At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image below beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. !IMAGE!Pictures/maketarget3.png!/IMAGE! === Load Target Section (After The First Target Is Loaded) === !IMAGE!Pictures/MakeTargetLoadSecondaryTarget.png!/IMAGE! The three buttons that now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. === Discard And Apply Target Section === !IMAGE!Pictures/MakeTargetDiscardAndApplyTarget.png!/IMAGE! The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. === Symmetry Section === !IMAGE!Pictures/MakeTargetTargetSymmetryButtons.png!/IMAGE! The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === !IMAGE!Pictures/MakeTargetSaveTargetSection.png!/IMAGE! Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === !IMAGE!Pictures/MakeTargetFitTargetButton.png!/IMAGE! !IMAGE!Pictures/MakeTargetSkirtEditingAffectOnly3.png!/IMAGE! When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. 6a7e539ce356d18d9bb0eab130c17ca63e963900 70 2015-07-08T07:37:25Z Joepal 14 Created page with "This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. == What is a Target? The MakeHuman Morphing Process. == The prin..." wikitext text/x-wiki This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget. == What is a Target? The MakeHuman Morphing Process. == The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. !IMAGE!Pictures/morph1.png!/IMAGE! A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". == Loading the Base Mesh == While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. !IMAGE!Pictures/maketarget131-area.png!/IMAGE! The MakeTarget Version 1.31 Panel (Initial Settings) !IMAGE!Pictures/maketarget131.png!/IMAGE! Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file !IMAGE!Pictures/helper_details.png!/IMAGE! Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. !IMAGE!Pictures/maketarget-base.png!/IMAGE! == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === !IMAGE!Pictures/MakeTarget_load.png!/IMAGE! After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. !IMAGE!Pictures/maketarget131-panels.png!/IMAGE! At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image below beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. !IMAGE!Pictures/maketarget3.png!/IMAGE! === Load Target Section (After The First Target Is Loaded) === !IMAGE!Pictures/MakeTargetLoadSecondaryTarget.png!/IMAGE! The three buttons that now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. === Discard And Apply Target Section === !IMAGE!Pictures/MakeTargetDiscardAndApplyTarget.png!/IMAGE! The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. === Symmetry Section === !IMAGE!Pictures/MakeTargetTargetSymmetryButtons.png!/IMAGE! The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === !IMAGE!Pictures/MakeTargetSaveTargetSection.png!/IMAGE! Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === !IMAGE!Pictures/MakeTargetFitTargetButton.png!/IMAGE! !IMAGE!Pictures/MakeTargetSkirtEditingAffectOnly3.png!/IMAGE! When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. 33bbcbb6938c5c24b3b06796028ea1b6b6065050 Documentation:MPFB 3000 712 2111 2110 2021-05-15T09:45:14Z Assetdk 89 /* Tutorials for using MPFB2 */ wikitext text/x-wiki =MakeHuman Plugin For Blender= This page is the "main" page for the Blender plugin - in effect an "index" for documentation and tutorials regarding MPFB2. ::{{#ev:youtube|ANnn8qKJMpc}} AfyEbJnB1rs About loading assets to your character. ::{{#ev:youtube|AfyEbJnB1rs}} This page will internally hold links for MPFB2 tutorials and development. ==Get MPFB2 here== :: * '''[http://www.makehumancommunity.org/forum/viewtopic.php?f=18&t=19356&hilit=MPFB#p53411 Makehuman forum about MHFB2 ]''' :: * '''[https://github.com/makehumancommunity/mpfb2 MPFB2 on github] :: * '''[https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/status.md MPFB2 status om github] :: * '''[http://download.tuxfamily.org/makehuman/plugins/ MPFB2 download the addon] ====Full announcement from Joel, made on the forum:==== ::I have today opened up the git repo of MPFB 2, https://github.com/makehumancommunity/mpfb2, for public access. ::This is a complete rewrite of MPFB 1 with added features (rigify support, procedural eyes, rig helpers...) and much improved code structure and performance (imports are 3x faster for example). A list of changes can be found at https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/changes.md ::While some parts of MPFB 1 has not been ported yet (see https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/status.md) and the official status is pre-alpha, I have used MPFB 2 a lot myself lately, and found it to be reasonably stable. ::MPFB 2 should be able to co-exist alongside MPFB 1, but it requires at least Blender 2.90. ::Nightly builds of MPFB 2 can be found at: http://download.tuxfamily.org/makehuman/plugins/. Builds made when something relevant has changed can be found in the dist directory of the git repository. Most of the time the dist dir build and the nightly build will be exactly the same code. ==Tutorials for using MPFB2== There are a few things you need know and do to get this running. Most importantly the current version of MPFB is depending on that you are running the MakeHuman program and Blender side by side. That is the blender version will try to reuse the assets and resources that are "provided" by the MakeHuman program. Also, at the time of writing, you must still use MakeHuman to download assets, that and other functionality is not yet ported to Blender. ==Developers resources== I will start this by making some developers notes that could eventually compile into one or more tutorials. I will keep adding more notes to this page, but I urge you to: * Add comments * Add tips and links to other tutorials * Add your own code * Request topics that you think would need to covered * Add links to other addons that is useful for VSC and MBFP2 ===Using VSCode=== I would recommend that you use VS Code since there is a very handy Blender Extension. This will help you as an experienced developer - and as a novice that wants to learn about Python and Blender. Take a look at this tutorial to get a quick overview - and follow this link to install blender/ and VSCode. [https://www.youtube.com/watch?v=77mMpeoh3OI&t tutorial on installing blender/ and VSCode.] ::::{{#ev:youtube|q06-hER7Y1Q}} Now - If that did not seem too bad, you can move on to the next pages dedicated to actually running MPFB2 from VS Code: '''Go here >>>''' '''[[Documentation:MPFB2 getting started with VS code]]''' f2c775ff14eda0cc56247b9818d125509fb9174a 2110 2109 2021-05-15T08:45:55Z Assetdk 89 /* MakeHuman Plugin For Blender */ wikitext text/x-wiki =MakeHuman Plugin For Blender= This page is the "main" page for the Blender plugin - in effect an "index" for documentation and tutorials regarding MPFB2. ::{{#ev:youtube|ANnn8qKJMpc}} AfyEbJnB1rs About loading assets to your character. ::{{#ev:youtube|AfyEbJnB1rs}} This page will internally hold links for MPFB2 tutorials and development. ==Get MPFB2 here== :: * '''[http://www.makehumancommunity.org/forum/viewtopic.php?f=18&t=19356&hilit=MPFB#p53411 Makehuman forum about MHFB2 ]''' :: * '''[https://github.com/makehumancommunity/mpfb2 MPFB2 on github] :: * '''[https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/status.md MPFB2 status om github] :: * '''[http://download.tuxfamily.org/makehuman/plugins/ MPFB2 download the addon] ====Full announcement from Joel, made on the forum:==== ::I have today opened up the git repo of MPFB 2, https://github.com/makehumancommunity/mpfb2, for public access. ::This is a complete rewrite of MPFB 1 with added features (rigify support, procedural eyes, rig helpers...) and much improved code structure and performance (imports are 3x faster for example). A list of changes can be found at https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/changes.md ::While some parts of MPFB 1 has not been ported yet (see https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/status.md) and the official status is pre-alpha, I have used MPFB 2 a lot myself lately, and found it to be reasonably stable. ::MPFB 2 should be able to co-exist alongside MPFB 1, but it requires at least Blender 2.90. ::Nightly builds of MPFB 2 can be found at: http://download.tuxfamily.org/makehuman/plugins/. Builds made when something relevant has changed can be found in the dist directory of the git repository. Most of the time the dist dir build and the nightly build will be exactly the same code. ==Tutorials for using MPFB2== There are a few things you need know and do to get this running. Most importantly the current version of MPFB is depending on that you are running the MakeHuman program and Blender side by side. That is the blender version will try to reuse the assets and resources that are "provided" by the MakeHuman program. Also, at the time of writing, you must still use MakeHuman to download assets, that and functionality is not yet ported to Blender. ==Developers resources== I will start this by making some developers notes that could eventually compile into one or more tutorials. I will keep adding more notes to this page, but I urge you to: * Add comments * Add tips and links to other tutorials * Add your own code * Request topics that you think would need to covered * Add links to other addons that is useful for VSC and MBFP2 ===Using VSCode=== I would recommend that you use VS Code since there is a very handy Blender Extension. This will help you as an experienced developer - and as a novice that wants to learn about Python and Blender. Take a look at this tutorial to get a quick overview - and follow this link to install blender/ and VSCode. [https://www.youtube.com/watch?v=77mMpeoh3OI&t tutorial on installing blender/ and VSCode.] ::::{{#ev:youtube|q06-hER7Y1Q}} Now - If that did not seem too bad, you can move on to the next pages dedicated to actually running MPFB2 from VS Code: '''Go here >>>''' '''[[Documentation:MPFB2 getting started with VS code]]''' 4f4f9a8e492e3bb8795dbc9aff84ff73357f79e4 2109 2105 2021-05-15T08:43:46Z Assetdk 89 /* Tutorials for using MPFB2 */ wikitext text/x-wiki =MakeHuman Plugin For Blender= This page is the "main" page for the Blender plugin - in effect an "index" for documentation and tutorials regarding MPFB2. ::{{#ev:youtube|ANnn8qKJMpc}} This page will internally hold links for MPFB2 tutorials and development. ==Get MPFB2 here== :: * '''[http://www.makehumancommunity.org/forum/viewtopic.php?f=18&t=19356&hilit=MPFB#p53411 Makehuman forum about MHFB2 ]''' :: * '''[https://github.com/makehumancommunity/mpfb2 MPFB2 on github] :: * '''[https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/status.md MPFB2 status om github] :: * '''[http://download.tuxfamily.org/makehuman/plugins/ MPFB2 download the addon] ====Full announcement from Joel, made on the forum:==== ::I have today opened up the git repo of MPFB 2, https://github.com/makehumancommunity/mpfb2, for public access. ::This is a complete rewrite of MPFB 1 with added features (rigify support, procedural eyes, rig helpers...) and much improved code structure and performance (imports are 3x faster for example). A list of changes can be found at https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/changes.md ::While some parts of MPFB 1 has not been ported yet (see https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/status.md) and the official status is pre-alpha, I have used MPFB 2 a lot myself lately, and found it to be reasonably stable. ::MPFB 2 should be able to co-exist alongside MPFB 1, but it requires at least Blender 2.90. ::Nightly builds of MPFB 2 can be found at: http://download.tuxfamily.org/makehuman/plugins/. Builds made when something relevant has changed can be found in the dist directory of the git repository. Most of the time the dist dir build and the nightly build will be exactly the same code. ==Tutorials for using MPFB2== There are a few things you need know and do to get this running. Most importantly the current version of MPFB is depending on that you are running the MakeHuman program and Blender side by side. That is the blender version will try to reuse the assets and resources that are "provided" by the MakeHuman program. Also, at the time of writing, you must still use MakeHuman to download assets, that and functionality is not yet ported to Blender. ==Developers resources== I will start this by making some developers notes that could eventually compile into one or more tutorials. I will keep adding more notes to this page, but I urge you to: * Add comments * Add tips and links to other tutorials * Add your own code * Request topics that you think would need to covered * Add links to other addons that is useful for VSC and MBFP2 ===Using VSCode=== I would recommend that you use VS Code since there is a very handy Blender Extension. This will help you as an experienced developer - and as a novice that wants to learn about Python and Blender. Take a look at this tutorial to get a quick overview - and follow this link to install blender/ and VSCode. [https://www.youtube.com/watch?v=77mMpeoh3OI&t tutorial on installing blender/ and VSCode.] ::::{{#ev:youtube|q06-hER7Y1Q}} Now - If that did not seem too bad, you can move on to the next pages dedicated to actually running MPFB2 from VS Code: '''Go here >>>''' '''[[Documentation:MPFB2 getting started with VS code]]''' c95df29e43bd96de14ef9c7a0d5c83e239d77afc 2105 2102 2021-05-13T09:03:38Z Assetdk 89 /* Using VSCode */ wikitext text/x-wiki =MakeHuman Plugin For Blender= This page is the "main" page for the Blender plugin - in effect an "index" for documentation and tutorials regarding MPFB2. ::{{#ev:youtube|ANnn8qKJMpc}} This page will internally hold links for MPFB2 tutorials and development. ==Get MPFB2 here== :: * '''[http://www.makehumancommunity.org/forum/viewtopic.php?f=18&t=19356&hilit=MPFB#p53411 Makehuman forum about MHFB2 ]''' :: * '''[https://github.com/makehumancommunity/mpfb2 MPFB2 on github] :: * '''[https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/status.md MPFB2 status om github] :: * '''[http://download.tuxfamily.org/makehuman/plugins/ MPFB2 download the addon] ====Full announcement from Joel, made on the forum:==== ::I have today opened up the git repo of MPFB 2, https://github.com/makehumancommunity/mpfb2, for public access. ::This is a complete rewrite of MPFB 1 with added features (rigify support, procedural eyes, rig helpers...) and much improved code structure and performance (imports are 3x faster for example). A list of changes can be found at https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/changes.md ::While some parts of MPFB 1 has not been ported yet (see https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/status.md) and the official status is pre-alpha, I have used MPFB 2 a lot myself lately, and found it to be reasonably stable. ::MPFB 2 should be able to co-exist alongside MPFB 1, but it requires at least Blender 2.90. ::Nightly builds of MPFB 2 can be found at: http://download.tuxfamily.org/makehuman/plugins/. Builds made when something relevant has changed can be found in the dist directory of the git repository. Most of the time the dist dir build and the nightly build will be exactly the same code. ==Tutorials for using MPFB2== ==Developers resources== I will start this by making some developers notes that could eventually compile into one or more tutorials. I will keep adding more notes to this page, but I urge you to: * Add comments * Add tips and links to other tutorials * Add your own code * Request topics that you think would need to covered * Add links to other addons that is useful for VSC and MBFP2 ===Using VSCode=== I would recommend that you use VS Code since there is a very handy Blender Extension. This will help you as an experienced developer - and as a novice that wants to learn about Python and Blender. Take a look at this tutorial to get a quick overview - and follow this link to install blender/ and VSCode. [https://www.youtube.com/watch?v=77mMpeoh3OI&t tutorial on installing blender/ and VSCode.] ::::{{#ev:youtube|q06-hER7Y1Q}} Now - If that did not seem too bad, you can move on to the next pages dedicated to actually running MPFB2 from VS Code: '''Go here >>>''' '''[[Documentation:MPFB2 getting started with VS code]]''' 9d65dece23bd2984825e06df84e890edc2269bcb 2102 2101 2021-05-11T19:10:25Z Assetdk 89 /* MakeHuman Plugin For Blender */ wikitext text/x-wiki =MakeHuman Plugin For Blender= This page is the "main" page for the Blender plugin - in effect an "index" for documentation and tutorials regarding MPFB2. ::{{#ev:youtube|ANnn8qKJMpc}} This page will internally hold links for MPFB2 tutorials and development. ==Get MPFB2 here== :: * '''[http://www.makehumancommunity.org/forum/viewtopic.php?f=18&t=19356&hilit=MPFB#p53411 Makehuman forum about MHFB2 ]''' :: * '''[https://github.com/makehumancommunity/mpfb2 MPFB2 on github] :: * '''[https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/status.md MPFB2 status om github] :: * '''[http://download.tuxfamily.org/makehuman/plugins/ MPFB2 download the addon] ====Full announcement from Joel, made on the forum:==== ::I have today opened up the git repo of MPFB 2, https://github.com/makehumancommunity/mpfb2, for public access. ::This is a complete rewrite of MPFB 1 with added features (rigify support, procedural eyes, rig helpers...) and much improved code structure and performance (imports are 3x faster for example). A list of changes can be found at https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/changes.md ::While some parts of MPFB 1 has not been ported yet (see https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/status.md) and the official status is pre-alpha, I have used MPFB 2 a lot myself lately, and found it to be reasonably stable. ::MPFB 2 should be able to co-exist alongside MPFB 1, but it requires at least Blender 2.90. ::Nightly builds of MPFB 2 can be found at: http://download.tuxfamily.org/makehuman/plugins/. Builds made when something relevant has changed can be found in the dist directory of the git repository. Most of the time the dist dir build and the nightly build will be exactly the same code. ==Tutorials for using MPFB2== ==Developers resources== I will start this by making some developers notes that could eventually compile into one or more tutorials. I will keep adding more notes to this page, but I urge you to: * Add comments * Add tips and links to other tutorials * Add your own code * Request topics that you think would need to covered * Add links to other addons that is useful for VSC and MBFP2 ===Using VSCode=== I would recommend that you use VS Code since there is a very handy Blender Extension. This will help you as an experienced developer - and as a novice that wants to learn about Python and Blender. Take a look at this tutorial to get a quick overview - and follow this link to install blender/ and VSCode. [https://www.youtube.com/watch?v=77mMpeoh3OI&t tutorial on installing blender/ and VSCode.] ::::{{#ev:youtube|q06-hER7Y1Q}} Now - If that did not seem too bad, you can move on to the next pages dedicated to actually running MPFB2 from VS Code: '''[[Documentation:MPFB2 getting started with VS code]]''' 581bf0d0b0531d86cc0e4dd62722645da15fe882 2101 2100 2021-05-11T18:54:37Z Assetdk 89 /* Full announcement from Joe, made on the forum: */ wikitext text/x-wiki =MakeHuman Plugin For Blender= This page is the "main" page for the Blender plugin - in effect an "index" for documentation and tutorials regarding MPFB2. This page will internally hold links for MPFB2 development and tutorials. ==Get MPFB2 here== :: * '''[http://www.makehumancommunity.org/forum/viewtopic.php?f=18&t=19356&hilit=MPFB#p53411 Makehuman forum about MHFB2 ]''' :: * '''[https://github.com/makehumancommunity/mpfb2 MPFB2 on github] :: * '''[https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/status.md MPFB2 status om github] :: * '''[http://download.tuxfamily.org/makehuman/plugins/ MPFB2 download the addon] ====Full announcement from Joel, made on the forum:==== ::I have today opened up the git repo of MPFB 2, https://github.com/makehumancommunity/mpfb2, for public access. ::This is a complete rewrite of MPFB 1 with added features (rigify support, procedural eyes, rig helpers...) and much improved code structure and performance (imports are 3x faster for example). A list of changes can be found at https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/changes.md ::While some parts of MPFB 1 has not been ported yet (see https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/status.md) and the official status is pre-alpha, I have used MPFB 2 a lot myself lately, and found it to be reasonably stable. ::MPFB 2 should be able to co-exist alongside MPFB 1, but it requires at least Blender 2.90. ::Nightly builds of MPFB 2 can be found at: http://download.tuxfamily.org/makehuman/plugins/. Builds made when something relevant has changed can be found in the dist directory of the git repository. Most of the time the dist dir build and the nightly build will be exactly the same code. ==Tutorials for using MPFB2== ==Developers resources== I will start this by making some developers notes that could eventually compile into one or more tutorials. I will keep adding more notes to this page, but I urge you to: * Add comments * Add tips and links to other tutorials * Add your own code * Request topics that you think would need to covered * Add links to other addons that is useful for VSC and MBFP2 ===Using VSCode=== I would recommend that you use VS Code since there is a very handy Blender Extension. This will help you as an experienced developer - and as a novice that wants to learn about Python and Blender. Take a look at this tutorial to get a quick overview - and follow this link to install blender/ and VSCode. [https://www.youtube.com/watch?v=77mMpeoh3OI&t tutorial on installing blender/ and VSCode.] ::::{{#ev:youtube|q06-hER7Y1Q}} Now - If that did not seem too bad, you can move on to the next pages dedicated to actually running MPFB2 from VS Code: '''[[Documentation:MPFB2 getting started with VS code]]''' 2e76b1d15973b8d5e97036ab96aeabdf72732b1d 2100 2099 2021-05-11T18:54:13Z Assetdk 89 /* Get MPFB2 here */ wikitext text/x-wiki =MakeHuman Plugin For Blender= This page is the "main" page for the Blender plugin - in effect an "index" for documentation and tutorials regarding MPFB2. This page will internally hold links for MPFB2 development and tutorials. ==Get MPFB2 here== :: * '''[http://www.makehumancommunity.org/forum/viewtopic.php?f=18&t=19356&hilit=MPFB#p53411 Makehuman forum about MHFB2 ]''' :: * '''[https://github.com/makehumancommunity/mpfb2 MPFB2 on github] :: * '''[https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/status.md MPFB2 status om github] :: * '''[http://download.tuxfamily.org/makehuman/plugins/ MPFB2 download the addon] ====Full announcement from Joe, made on the forum:==== ::I have today opened up the git repo of MPFB 2, https://github.com/makehumancommunity/mpfb2, for public access. ::This is a complete rewrite of MPFB 1 with added features (rigify support, procedural eyes, rig helpers...) and much improved code structure and performance (imports are 3x faster for example). A list of changes can be found at https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/changes.md ::While some parts of MPFB 1 has not been ported yet (see https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/status.md) and the official status is pre-alpha, I have used MPFB 2 a lot myself lately, and found it to be reasonably stable. ::MPFB 2 should be able to co-exist alongside MPFB 1, but it requires at least Blender 2.90. ::Nightly builds of MPFB 2 can be found at: http://download.tuxfamily.org/makehuman/plugins/. Builds made when something relevant has changed can be found in the dist directory of the git repository. Most of the time the dist dir build and the nightly build will be exactly the same code. ==Tutorials for using MPFB2== ==Developers resources== I will start this by making some developers notes that could eventually compile into one or more tutorials. I will keep adding more notes to this page, but I urge you to: * Add comments * Add tips and links to other tutorials * Add your own code * Request topics that you think would need to covered * Add links to other addons that is useful for VSC and MBFP2 ===Using VSCode=== I would recommend that you use VS Code since there is a very handy Blender Extension. This will help you as an experienced developer - and as a novice that wants to learn about Python and Blender. Take a look at this tutorial to get a quick overview - and follow this link to install blender/ and VSCode. [https://www.youtube.com/watch?v=77mMpeoh3OI&t tutorial on installing blender/ and VSCode.] ::::{{#ev:youtube|q06-hER7Y1Q}} Now - If that did not seem too bad, you can move on to the next pages dedicated to actually running MPFB2 from VS Code: '''[[Documentation:MPFB2 getting started with VS code]]''' 92ba3ad81df6d3e83b3bf8b8e78bfa57772d00e5 2099 2098 2021-05-11T18:49:30Z Assetdk 89 /* MakeHuman Plugin For Blender */ wikitext text/x-wiki =MakeHuman Plugin For Blender= This page is the "main" page for the Blender plugin - in effect an "index" for documentation and tutorials regarding MPFB2. This page will internally hold links for MPFB2 development and tutorials. ==Get MPFB2 here== :: * '''[http://www.makehumancommunity.org/forum/viewtopic.php?f=18&t=19356&hilit=MPFB#p53411 Makehuman forum about MHFB2 ]''' :: * '''[https://github.com/makehumancommunity/mpfb2 MPFB2 on github] :: * '''[https://github.com/makehumancommunity/mpfb2/blob/master/docs/general/status.md MPFB2 status om github] :: * '''[http://download.tuxfamily.org/makehuman/plugins/ MPFB2 download the addon] ==Tutorials for using MPFB2== ==Developers resources== I will start this by making some developers notes that could eventually compile into one or more tutorials. I will keep adding more notes to this page, but I urge you to: * Add comments * Add tips and links to other tutorials * Add your own code * Request topics that you think would need to covered * Add links to other addons that is useful for VSC and MBFP2 ===Using VSCode=== I would recommend that you use VS Code since there is a very handy Blender Extension. This will help you as an experienced developer - and as a novice that wants to learn about Python and Blender. Take a look at this tutorial to get a quick overview - and follow this link to install blender/ and VSCode. [https://www.youtube.com/watch?v=77mMpeoh3OI&t tutorial on installing blender/ and VSCode.] ::::{{#ev:youtube|q06-hER7Y1Q}} Now - If that did not seem too bad, you can move on to the next pages dedicated to actually running MPFB2 from VS Code: '''[[Documentation:MPFB2 getting started with VS code]]''' 069f11c4badf618d3d0c02c2066f88c4ebe8ea09 2098 2085 2021-05-11T18:37:02Z Assetdk 89 /* MakeHuman Plugin For Blender */ wikitext text/x-wiki =MakeHuman Plugin For Blender= This page is the "main" page for the Blender plugin - in effect an "index" for documentation and tutorials regarding MPFB2. This page will internally hold links for MPFB2 development and tutorials. ::'''[http://www.makehumancommunity.org/forum/viewtopic.php?f=18&t=19356&hilit=MPFB#p53411 Makehuman forum about MHFB2 ]''' ==Tutorials for using MPFB2== ==Developers resources== I will start this by making some developers notes that could eventually compile into one or more tutorials. I will keep adding more notes to this page, but I urge you to: * Add comments * Add tips and links to other tutorials * Add your own code * Request topics that you think would need to covered * Add links to other addons that is useful for VSC and MBFP2 ===Using VSCode=== I would recommend that you use VS Code since there is a very handy Blender Extension. This will help you as an experienced developer - and as a novice that wants to learn about Python and Blender. Take a look at this tutorial to get a quick overview - and follow this link to install blender/ and VSCode. [https://www.youtube.com/watch?v=77mMpeoh3OI&t tutorial on installing blender/ and VSCode.] ::::{{#ev:youtube|q06-hER7Y1Q}} Now - If that did not seem too bad, you can move on to the next pages dedicated to actually running MPFB2 from VS Code: '''[[Documentation:MPFB2 getting started with VS code]]''' 7e0118fe88a44e5da82abf6660a3546bf7da1b50 2085 2084 2021-05-11T17:30:12Z Assetdk 89 /* Using VSCode */ wikitext text/x-wiki =MakeHuman Plugin For Blender= This page is the "main" page for the Blender plugin - in effect an "index" for documentation and tutorials regarding MPFB2. This page will internally hold links for MPFB2 development and tutorials. ==Tutorials for using MPFB2== ==Developers resources== I will start this by making some developers notes that could eventually compile into one or more tutorials. I will keep adding more notes to this page, but I urge you to: * Add comments * Add tips and links to other tutorials * Add your own code * Request topics that you think would need to covered * Add links to other addons that is useful for VSC and MBFP2 ===Using VSCode=== I would recommend that you use VS Code since there is a very handy Blender Extension. This will help you as an experienced developer - and as a novice that wants to learn about Python and Blender. Take a look at this tutorial to get a quick overview - and follow this link to install blender/ and VSCode. [https://www.youtube.com/watch?v=77mMpeoh3OI&t tutorial on installing blender/ and VSCode.] ::::{{#ev:youtube|q06-hER7Y1Q}} Now - If that did not seem too bad, you can move on to the next pages dedicated to actually running MPFB2 from VS Code: '''[[Documentation:MPFB2 getting started with VS code]]''' 0449ba992dc6da9c74b3c8b4fcc2106e0af6648b 2084 2021-05-11T17:26:50Z Assetdk 89 Created page with "=MakeHuman Plugin For Blender= This page is the "main" page for the Blender plugin - in effect an "index" for documentation and tutorials regarding MPFB2. This page will int..." wikitext text/x-wiki =MakeHuman Plugin For Blender= This page is the "main" page for the Blender plugin - in effect an "index" for documentation and tutorials regarding MPFB2. This page will internally hold links for MPFB2 development and tutorials. ==Tutorials for using MPFB2== ==Developers resources== I will start this by making some developers notes that could eventually compile into one or more tutorials. I will keep adding more notes to this page, but I urge you to: * Add comments * Add tips and links to other tutorials * Add your own code * Request topics that you think would need to covered * Add links to other addons that is useful for VSC and MBFP2 ===Using VSCode=== I would recommend that you use VS Code since there is a very handy Blender Extension. This will help you as an experienced developer - and as a novice that wants to learn about Python and Blender. Take a look at this tutorial to get a quick overview - and follow this link to install blender/ and VSCode. [https://www.youtube.com/watch?v=77mMpeoh3OI&t tutorial on installing blender/ and VSCode.] {{#ev:youtube|q06-hER7Y1Q}} * [[Documentation:MPFB2 getting started with VS code]] 22f9f4db86d94223a23402c082a709595bb58e78 Documentation:MPFB2 getting started with VS code 3000 713 2108 2107 2021-05-13T09:52:04Z Assetdk 89 /* Getting started */ wikitext text/x-wiki Go back to [[Documentation:MPFB|MakeHuman Plugin For Blender - main page]] =MPFB2 getting started with VS code= On this page you will find notes, tips and hints - in general I intend to make notes on how MPFB2 was implemented as I learn and hopefully this can help others to understand the addon, debut it, make extensions/suggestions and perhaps you can even learn how to make your own addon? ==Getting started== As of now VS code - actually Visual Studio Code - will be refereed to as VSC. For your information VSC is a free version of the professional tool called Visual Studio, Both are provided by Microsoft. Visual Studio is used by companies that have a portfolio of software and it is often used as a front end for different repository systems, this is needed when you have complex systems and a need for keeping track of software versions. If you use VSC you will learn a bit... but never mind, lets get to the first issue you may run into. ===Running the addon, startup to-do=== I found that the addon currently depends on that you have MetaHuman (1.2.0?) running already. The addon will try to connect with this and "reuse" some of the setup... ===The very first issue!!=== Getting Blender running from VSC, you need to open the folder in VSC and ctrl-shift-p and select the runtime - in my case D:\Blender\stable\blender-2.92.0-windows64\blender.exe - but if you do this like I did you will just see Blender start up and then pass-away. if you are new to VSC you may not notice that there is a message about this on the console - the operative part is: PermissionError:. This rather meaningless, however but what happen is that did already install the addon with this Blender version 2.92.0... and in short you need to unload and uninstall the addon you want to run/debug in VSC. This is what Blender should look like when running from VSC - I highlighted tree things: * It looks like 2.9.2 (or perhaps MBPF2) adds collections to the Scene: Mesh/Rig/Collision/Extras. * When running from VSC you will get a extra DEV tool-tab, this is good to know i you are running Blender both ways. * When running from VSC the add on gets installed - and it will '''remain installed as is,''' when you run (the same) Blender stand alone without VSC. ::[[File:MPFB2-VS1.PNG|800px]] : ===The 2nd issue - upgrade the addon!=== Well perhaps not, but you may well run into this - as did I. You can not (always) simply install the latest version of the addon on top of a older version. I ran into this and was happy that I made a backup. To install the first version I downloaded mpfb2-latest.zip, unpacked the files directly in a folder called Blender/addon/mpfb2-latest and ran VSCode from that folder. These are the steps you need to follow, to go to the new version: * Open blender 2.9, disable the MPFB2 addon and close Blender * Move the old zip file to Blender/addon/mpfb2-latest * Rename the old folder Blender/addon/mpfb2-latest to say * Move the old zip file to Blender/addon/mpfb2-latest-1 * Download a new version of the mpfb2-latest.zip MPFB file. Now you should be able to run the new version from VSCode as it were. You will get a message: ::Could not read preference mpfb_user_data If you set the preferences they are now "lost", I don't know where it is saved... ===Blender preferences=== This is what the MPFB preferences look like in the current version. ::[[File:MPFB2-Options.PNG]] Please note that the auto discover appears to depend on the running MetaHuman program. ===Developer options=== These are the developer option: ::[[File:MPFB2-DeveloperOptions.PNG]] ===Using GitHub?!=== Placeholder for how to get the addon. ===Inspect an error=== Placeholder for looking at the console and reporting errors. ===Debug the code=== Placeholder for "digging in" and inspecting the code. ===Adding your own code=== Placeholder for - how to "sample" the existing code, adding your own menus/buttons and functions. ===MFB2 in Blender=== Placeholder for "how are the MPFB2 components organized in Blender". ===Useful Blender things=== Placeholder for learning to use Blender via MPFB2! ===Useful VSC things and extensions=== Placeholder for VSC specific tips. ===Useful Blender addons=== Placeholder for addon specific tips. 93eee6fdade531295934bc5226facfc62b772b4c 2107 2106 2021-05-13T09:48:29Z Assetdk 89 /* Blender preferences */ wikitext text/x-wiki Go back to [[Documentation:MPFB|MakeHuman Plugin For Blender - main page]] =MPFB2 getting started with VS code= On this page you will find notes, tips and hints - in general I intend to make notes on how MPFB2 was implemented as I learn and hopefully this can help others to understand the addon, debut it, make extensions/suggestions and perhaps you can even learn how to make your own addon? ==Getting started== As of now VS code - actually Visual Studio Code - will be refereed to as VSC. For your information VSC is a free version of the professional tool called Visual Studio, Both are provided by Microsoft. Visual Studio is used by companies that have a portfolio of software and it is often used as a front end for different repository systems, this is needed when you have complex systems and a need for keeping track of software versions. If you use VSC you will learn a bit... but never mind, lets get to the first issue you may run into. ===The very first issue!!=== Getting Blender running from VSC, you need to open the folder in VSC and ctrl-shift-p and select the runtime - in my case D:\Blender\stable\blender-2.92.0-windows64\blender.exe - but if you do this like I did you will just see Blender start up and then pass-away. if you are new to VSC you may not notice that there is a message about this on the console - the operative part is: PermissionError:. This rather meaningless, however but what happen is that did already install the addon with this Blender version 2.92.0... and in short you need to unload and uninstall the addon you want to run/debug in VSC. This is what Blender should look like when running from VSC - I highlighted tree things: * It looks like 2.9.2 (or perhaps MBPF2) adds collections to the Scene: Mesh/Rig/Collision/Extras. * When running from VSC you will get a extra DEV tool-tab, this is good to know i you are running Blender both ways. * When running from VSC the add on gets installed - and it will '''remain installed as is,''' when you run (the same) Blender stand alone without VSC. ::[[File:MPFB2-VS1.PNG|800px]] : ===The 2nd issue - upgrade the addon!=== Well perhaps not, but you may well run into this - as did I. You can not (always) simply install the latest version of the addon on top of a older version. I ran into this and was happy that I made a backup. To install the first version I downloaded mpfb2-latest.zip, unpacked the files directly in a folder called Blender/addon/mpfb2-latest and ran VSCode from that folder. These are the steps you need to follow, to go to the new version: * Open blender 2.9, disable the MPFB2 addon and close Blender * Move the old zip file to Blender/addon/mpfb2-latest * Rename the old folder Blender/addon/mpfb2-latest to say * Move the old zip file to Blender/addon/mpfb2-latest-1 * Download a new version of the mpfb2-latest.zip MPFB file. Now you should be able to run the new version from VSCode as it were. You will get a message: ::Could not read preference mpfb_user_data If you set the preferences they are now "lost", I don't know where it is saved... ===Blender preferences=== This is what the MPFB preferences look like in the current version. ::[[File:MPFB2-Options.PNG]] Please note that the auto discover appears to depend on the running MetaHuman program. ===Developer options=== These are the developer option: ::[[File:MPFB2-DeveloperOptions.PNG]] ===Using GitHub?!=== Placeholder for how to get the addon. ===Inspect an error=== Placeholder for looking at the console and reporting errors. ===Debug the code=== Placeholder for "digging in" and inspecting the code. ===Adding your own code=== Placeholder for - how to "sample" the existing code, adding your own menus/buttons and functions. ===MFB2 in Blender=== Placeholder for "how are the MPFB2 components organized in Blender". ===Useful Blender things=== Placeholder for learning to use Blender via MPFB2! ===Useful VSC things and extensions=== Placeholder for VSC specific tips. ===Useful Blender addons=== Placeholder for addon specific tips. 9a1d979764c0fa314195f95cfe8254d314e7152f 2106 2097 2021-05-13T09:28:04Z Assetdk 89 /* The very first issue!! */ wikitext text/x-wiki Go back to [[Documentation:MPFB|MakeHuman Plugin For Blender - main page]] =MPFB2 getting started with VS code= On this page you will find notes, tips and hints - in general I intend to make notes on how MPFB2 was implemented as I learn and hopefully this can help others to understand the addon, debut it, make extensions/suggestions and perhaps you can even learn how to make your own addon? ==Getting started== As of now VS code - actually Visual Studio Code - will be refereed to as VSC. For your information VSC is a free version of the professional tool called Visual Studio, Both are provided by Microsoft. Visual Studio is used by companies that have a portfolio of software and it is often used as a front end for different repository systems, this is needed when you have complex systems and a need for keeping track of software versions. If you use VSC you will learn a bit... but never mind, lets get to the first issue you may run into. ===The very first issue!!=== Getting Blender running from VSC, you need to open the folder in VSC and ctrl-shift-p and select the runtime - in my case D:\Blender\stable\blender-2.92.0-windows64\blender.exe - but if you do this like I did you will just see Blender start up and then pass-away. if you are new to VSC you may not notice that there is a message about this on the console - the operative part is: PermissionError:. This rather meaningless, however but what happen is that did already install the addon with this Blender version 2.92.0... and in short you need to unload and uninstall the addon you want to run/debug in VSC. This is what Blender should look like when running from VSC - I highlighted tree things: * It looks like 2.9.2 (or perhaps MBPF2) adds collections to the Scene: Mesh/Rig/Collision/Extras. * When running from VSC you will get a extra DEV tool-tab, this is good to know i you are running Blender both ways. * When running from VSC the add on gets installed - and it will '''remain installed as is,''' when you run (the same) Blender stand alone without VSC. ::[[File:MPFB2-VS1.PNG|800px]] : ===The 2nd issue - upgrade the addon!=== Well perhaps not, but you may well run into this - as did I. You can not (always) simply install the latest version of the addon on top of a older version. I ran into this and was happy that I made a backup. To install the first version I downloaded mpfb2-latest.zip, unpacked the files directly in a folder called Blender/addon/mpfb2-latest and ran VSCode from that folder. These are the steps you need to follow, to go to the new version: * Open blender 2.9, disable the MPFB2 addon and close Blender * Move the old zip file to Blender/addon/mpfb2-latest * Rename the old folder Blender/addon/mpfb2-latest to say * Move the old zip file to Blender/addon/mpfb2-latest-1 * Download a new version of the mpfb2-latest.zip MPFB file. Now you should be able to run the new version from VSCode as it were. You will get a message: ::Could not read preference mpfb_user_data If you set the preferences they are now "lost", I don't know where it is saved... ===Blender preferences=== This is what the MPFB preferences look like in the current version. ::[[File:MPFB2-Options.PNG]] ===Developer options=== These are the developer option: ::[[File:MPFB2-DeveloperOptions.PNG]] ===Using GitHub?!=== Placeholder for how to get the addon. ===Inspect an error=== Placeholder for looking at the console and reporting errors. ===Debug the code=== Placeholder for "digging in" and inspecting the code. ===Adding your own code=== Placeholder for - how to "sample" the existing code, adding your own menus/buttons and functions. ===MFB2 in Blender=== Placeholder for "how are the MPFB2 components organized in Blender". ===Useful Blender things=== Placeholder for learning to use Blender via MPFB2! ===Useful VSC things and extensions=== Placeholder for VSC specific tips. ===Useful Blender addons=== Placeholder for addon specific tips. cbf2a1592fe8d7d0184d20eb9c8cea9e891d8b53 2097 2094 2021-05-11T18:16:28Z Assetdk 89 /* Using GitHub?! */ wikitext text/x-wiki Go back to [[Documentation:MPFB|MakeHuman Plugin For Blender - main page]] =MPFB2 getting started with VS code= On this page you will find notes, tips and hints - in general I intend to make notes on how MPFB2 was implemented as I learn and hopefully this can help others to understand the addon, debut it, make extensions/suggestions and perhaps you can even learn how to make your own addon? ==Getting started== As of now VS code - actually Visual Studio Code - will be refereed to as VSC. For your information VSC is a free version of the professional tool called Visual Studio, Both are provided by Microsoft. Visual Studio is used by companies that have a portfolio of software and it is often used as a front end for different repository systems, this is needed when you have complex systems and a need for keeping track of software versions. If you use VSC you will learn a bit... but never mind, lets get to the first issue you may run into. ===The very first issue!!=== Getting Blender running from VSC, you need to open the folder in VSC and ctrl-shift-p and select the runtime - in my case D:\Blender\stable\blender-2.92.0-windows64\blender.exe - but if you do this like I did you will just see Blender start up and then pass-away. if you are new to VSC you may not notice that there is a message about this on the console - the operative part is: PermissionError:. This rather meaningless, however but what happen is that did already install the addon with this Blender version 2.92.0... and in short you need to unload and uninstall the addon you want to run/debug in VSC. This is what Blender should look like when running from VSC - I highlighted tree things: * It looks like 2.9.2 (or perhaps MBPF2) adds collections to the Scene: Mesh/Rig/Collision/Extras. * When running from VSC you will get a extra DEV tool-tab, this is good to know i you are running Blender both ways. * When running from VSC the add on gets installed - and it will '''remain installed as is,''' when you run (the same) Blender stand alone without VSC. ::[[File:MPFB2-VS1.PNG|800px]] : ===Blender preferences=== This is what the MPFB preferences look like in the current version. ::[[File:MPFB2-Options.PNG]] ===Developer options=== These are the developer option: ::[[File:MPFB2-DeveloperOptions.PNG]] ===Using GitHub?!=== Placeholder for how to get the addon. ===Inspect an error=== Placeholder for looking at the console and reporting errors. ===Debug the code=== Placeholder for "digging in" and inspecting the code. ===Adding your own code=== Placeholder for - how to "sample" the existing code, adding your own menus/buttons and functions. ===MFB2 in Blender=== Placeholder for "how are the MPFB2 components organized in Blender". ===Useful Blender things=== Placeholder for learning to use Blender via MPFB2! ===Useful VSC things and extensions=== Placeholder for VSC specific tips. ===Useful Blender addons=== Placeholder for addon specific tips. 979deffc7251562fe2270f3f2051df9f46619097 2094 2093 2021-05-11T17:55:28Z Assetdk 89 wikitext text/x-wiki Go back to [[Documentation:MPFB|MakeHuman Plugin For Blender - main page]] =MPFB2 getting started with VS code= On this page you will find notes, tips and hints - in general I intend to make notes on how MPFB2 was implemented as I learn and hopefully this can help others to understand the addon, debut it, make extensions/suggestions and perhaps you can even learn how to make your own addon? ==Getting started== As of now VS code - actually Visual Studio Code - will be refereed to as VSC. For your information VSC is a free version of the professional tool called Visual Studio, Both are provided by Microsoft. Visual Studio is used by companies that have a portfolio of software and it is often used as a front end for different repository systems, this is needed when you have complex systems and a need for keeping track of software versions. If you use VSC you will learn a bit... but never mind, lets get to the first issue you may run into. ===The very first issue!!=== Getting Blender running from VSC, you need to open the folder in VSC and ctrl-shift-p and select the runtime - in my case D:\Blender\stable\blender-2.92.0-windows64\blender.exe - but if you do this like I did you will just see Blender start up and then pass-away. if you are new to VSC you may not notice that there is a message about this on the console - the operative part is: PermissionError:. This rather meaningless, however but what happen is that did already install the addon with this Blender version 2.92.0... and in short you need to unload and uninstall the addon you want to run/debug in VSC. This is what Blender should look like when running from VSC - I highlighted tree things: * It looks like 2.9.2 (or perhaps MBPF2) adds collections to the Scene: Mesh/Rig/Collision/Extras. * When running from VSC you will get a extra DEV tool-tab, this is good to know i you are running Blender both ways. * When running from VSC the add on gets installed - and it will '''remain installed as is,''' when you run (the same) Blender stand alone without VSC. ::[[File:MPFB2-VS1.PNG|800px]] : ===Using GitHub?!=== Placeholder for how to get the addon. ===Inspect an error=== Placeholder for looking at the console and reporting errors. ===Debug the code=== Placeholder for "digging in" and inspecting the code. ===Adding your own code=== Placeholder for - how to "sample" the existing code, adding your own menus/buttons and functions. ===MFB2 in Blender=== Placeholder for "how are the MPFB2 components organized in Blender". ===Useful Blender things=== Placeholder for learning to use Blender via MPFB2! ===Useful VSC things and extensions=== Placeholder for VSC specific tips. ===Useful Blender addons=== Placeholder for addon specific tips. 13125d487c4bb49484c31950da589e1debc1990b 2093 2092 2021-05-11T17:52:22Z Assetdk 89 /* The very first issue!! */ wikitext text/x-wiki =MPFB2 getting started with VS code= On this page you will find notes, tips and hints - in general I intend to make notes on how MPFB2 was implemented as I learn and hopefully this can help others to understand the addon, debut it, make extensions/suggestions and perhaps you can even learn how to make your own addon? ==Getting started== As of now VS code - actually Visual Studio Code - will be refereed to as VSC. For your information VSC is a free version of the professional tool called Visual Studio, Both are provided by Microsoft. Visual Studio is used by companies that have a portfolio of software and it is often used as a front end for different repository systems, this is needed when you have complex systems and a need for keeping track of software versions. If you use VSC you will learn a bit... but never mind, lets get to the first issue you may run into. ===The very first issue!!=== Getting Blender running from VSC, you need to open the folder in VSC and ctrl-shift-p and select the runtime - in my case D:\Blender\stable\blender-2.92.0-windows64\blender.exe - but if you do this like I did you will just see Blender start up and then pass-away. if you are new to VSC you may not notice that there is a message about this on the console - the operative part is: PermissionError:. This rather meaningless, however but what happen is that did already install the addon with this Blender version 2.92.0... and in short you need to unload and uninstall the addon you want to run/debug in VSC. This is what Blender should look like when running from VSC - I highlighted tree things: * It looks like 2.9.2 (or perhaps MBPF2) adds collections to the Scene: Mesh/Rig/Collision/Extras. * When running from VSC you will get a extra DEV tool-tab, this is good to know i you are running Blender both ways. * When running from VSC the add on gets installed - and it will '''remain installed as is,''' when you run (the same) Blender stand alone without VSC. ::[[File:MPFB2-VS1.PNG|800px]] : ===Using GitHub?!=== Placeholder for how to get the addon. ===Inspect an error=== Placeholder for looking at the console and reporting errors. ===Debug the code=== Placeholder for "digging in" and inspecting the code. ===Adding your own code=== Placeholder for - how to "sample" the existing code, adding your own menus/buttons and functions. ===MFB2 in Blender=== Placeholder for "how are the MPFB2 components organized in Blender". ===Useful Blender things=== Placeholder for learning to use Blender via MPFB2! ===Useful VSC things and extensions=== Placeholder for VSC specific tips. ===Useful Blender addons=== Placeholder for addon specific tips. 809456129af5b1d1d5f010d1d608371cb0f3dd12 2092 2091 2021-05-11T17:52:00Z Assetdk 89 /* The very first issue!! */ wikitext text/x-wiki =MPFB2 getting started with VS code= On this page you will find notes, tips and hints - in general I intend to make notes on how MPFB2 was implemented as I learn and hopefully this can help others to understand the addon, debut it, make extensions/suggestions and perhaps you can even learn how to make your own addon? ==Getting started== As of now VS code - actually Visual Studio Code - will be refereed to as VSC. For your information VSC is a free version of the professional tool called Visual Studio, Both are provided by Microsoft. Visual Studio is used by companies that have a portfolio of software and it is often used as a front end for different repository systems, this is needed when you have complex systems and a need for keeping track of software versions. If you use VSC you will learn a bit... but never mind, lets get to the first issue you may run into. ===The very first issue!!=== Getting Blender running from VSC, you need to open the folder in VSC and ctrl-shift-p and select the runtime - in my case D:\Blender\stable\blender-2.92.0-windows64\blender.exe - but if you do this like I did you will just see Blender start up and then pass-away. if you are new to VSC you may not notice that there is a message about this on the console - the operative part is: PermissionError:. This rather meaningless, however but what happen is that did already install the addon with this Blender version 2.92.0... and in short you need to unload and uninstall the addon you want to run/debug in VSC. This is what Blender should look like when running from VSC - I highlighted tree things: * It looks like 2.9.2 (or perhaps MBPF2) adds collections to the Scene: Mesh/Rig/Collision/Extras. * When running from VSC you will get a extra DEV tool-tab, this is good to know i you are running Blender both ways. * When running from VSC the add on gets installed - and it will '''remain installed as is,''' when you run (the same) Blender stand alone without VSC. ::[[File:MPFB2-VS1.PNG|800px|left]] : ===Using GitHub?!=== Placeholder for how to get the addon. ===Inspect an error=== Placeholder for looking at the console and reporting errors. ===Debug the code=== Placeholder for "digging in" and inspecting the code. ===Adding your own code=== Placeholder for - how to "sample" the existing code, adding your own menus/buttons and functions. ===MFB2 in Blender=== Placeholder for "how are the MPFB2 components organized in Blender". ===Useful Blender things=== Placeholder for learning to use Blender via MPFB2! ===Useful VSC things and extensions=== Placeholder for VSC specific tips. ===Useful Blender addons=== Placeholder for addon specific tips. 7cf1cc52efcefee5e9450f9abe972017d93bb45c 2091 2090 2021-05-11T17:50:32Z Assetdk 89 /* =Useful Blender addons */ wikitext text/x-wiki =MPFB2 getting started with VS code= On this page you will find notes, tips and hints - in general I intend to make notes on how MPFB2 was implemented as I learn and hopefully this can help others to understand the addon, debut it, make extensions/suggestions and perhaps you can even learn how to make your own addon? ==Getting started== As of now VS code - actually Visual Studio Code - will be refereed to as VSC. For your information VSC is a free version of the professional tool called Visual Studio, Both are provided by Microsoft. Visual Studio is used by companies that have a portfolio of software and it is often used as a front end for different repository systems, this is needed when you have complex systems and a need for keeping track of software versions. If you use VSC you will learn a bit... but never mind, lets get to the first issue you may run into. ===The very first issue!!=== Getting Blender running from VSC, you need to open the folder in VSC and ctrl-shift-p and select the runtime - in my case D:\Blender\stable\blender-2.92.0-windows64\blender.exe - but if you do this like I did you will just see Blender start up and then pass-away. if you are new to VSC you may not notice that there is a message about this on the console - the operative part is: PermissionError:. This rather meaningless, however but what happen is that did already install the addon with this Blender version 2.92.0... and in short you need to unload and uninstall the addon you want to run/debug in VSC. This is what Blender should look like when running from VSC - I highlighted tree things: * It looks like 2.9.2 (or perhaps MBPF2) adds collections to the Scene: Mesh/Rig/Collision/Extras. * When running from VSC you will get a extra DEV tool-tab, this is good to know i you are running Blender both ways. * When running from VSC the add on gets installed - and it will '''remain installed as is,''' when you run (the same) Blender stand alone without VSC. ::[[File:MPFB2-VS1.PNG|800px|left]] ===Using GitHub?!=== Placeholder for how to get the addon. ===Inspect an error=== Placeholder for looking at the console and reporting errors. ===Debug the code=== Placeholder for "digging in" and inspecting the code. ===Adding your own code=== Placeholder for - how to "sample" the existing code, adding your own menus/buttons and functions. ===MFB2 in Blender=== Placeholder for "how are the MPFB2 components organized in Blender". ===Useful Blender things=== Placeholder for learning to use Blender via MPFB2! ===Useful VSC things and extensions=== Placeholder for VSC specific tips. ===Useful Blender addons=== Placeholder for addon specific tips. cba4668afd7845fdedf9032baebf9452b511ecf6 2090 2088 2021-05-11T17:50:16Z Assetdk 89 /* The very first issue!! */ wikitext text/x-wiki =MPFB2 getting started with VS code= On this page you will find notes, tips and hints - in general I intend to make notes on how MPFB2 was implemented as I learn and hopefully this can help others to understand the addon, debut it, make extensions/suggestions and perhaps you can even learn how to make your own addon? ==Getting started== As of now VS code - actually Visual Studio Code - will be refereed to as VSC. For your information VSC is a free version of the professional tool called Visual Studio, Both are provided by Microsoft. Visual Studio is used by companies that have a portfolio of software and it is often used as a front end for different repository systems, this is needed when you have complex systems and a need for keeping track of software versions. If you use VSC you will learn a bit... but never mind, lets get to the first issue you may run into. ===The very first issue!!=== Getting Blender running from VSC, you need to open the folder in VSC and ctrl-shift-p and select the runtime - in my case D:\Blender\stable\blender-2.92.0-windows64\blender.exe - but if you do this like I did you will just see Blender start up and then pass-away. if you are new to VSC you may not notice that there is a message about this on the console - the operative part is: PermissionError:. This rather meaningless, however but what happen is that did already install the addon with this Blender version 2.92.0... and in short you need to unload and uninstall the addon you want to run/debug in VSC. This is what Blender should look like when running from VSC - I highlighted tree things: * It looks like 2.9.2 (or perhaps MBPF2) adds collections to the Scene: Mesh/Rig/Collision/Extras. * When running from VSC you will get a extra DEV tool-tab, this is good to know i you are running Blender both ways. * When running from VSC the add on gets installed - and it will '''remain installed as is,''' when you run (the same) Blender stand alone without VSC. ::[[File:MPFB2-VS1.PNG|800px|left]] ===Using GitHub?!=== Placeholder for how to get the addon. ===Inspect an error=== Placeholder for looking at the console and reporting errors. ===Debug the code=== Placeholder for "digging in" and inspecting the code. ===Adding your own code=== Placeholder for - how to "sample" the existing code, adding your own menus/buttons and functions. ===MFB2 in Blender=== Placeholder for "how are the MPFB2 components organized in Blender". ===Useful Blender things=== Placeholder for learning to use Blender via MPFB2! ===Useful VSC things and extensions=== Placeholder for VSC specific tips. ===Useful Blender addons== Placeholder for addon specific tips. c4a0c7e3d8e475c51eb276fa45f88c1bb043e00c 2088 2087 2021-05-11T17:44:36Z Assetdk 89 /* The very first issue!! */ wikitext text/x-wiki =MPFB2 getting started with VS code= On this page you will find notes, tips and hints - in general I intend to make notes on how MPFB2 was implemented as I learn and hopefully this can help others to understand the addon, debut it, make extensions/suggestions and perhaps you can even learn how to make your own addon? ==Getting started== As of now VS code - actually Visual Studio Code - will be refereed to as VSC. For your information VSC is a free version of the professional tool called Visual Studio, Both are provided by Microsoft. Visual Studio is used by companies that have a portfolio of software and it is often used as a front end for different repository systems, this is needed when you have complex systems and a need for keeping track of software versions. If you use VSC you will learn a bit... but never mind, lets get to the first issue you may run into. ===The very first issue!!=== Getting Blender running from VSC, you need to open the folder in VSC and ctrl-shift-p and select the runtime - in my case D:\Blender\stable\blender-2.92.0-windows64\blender.exe - but if you do this like I did you will just see Blender start up and then pass-away. if you are new to VSC you may not notice that there is a message about this on the console - the operative part is: PermissionError:. This rather meaningless, however but what happen is that did already install the addon with this Blender version 2.92.0... and in short you need to unload and uninstall the addon you want to run/debug in VSC. This is what Blender should look like when running from VSC - I highlighted tree things: * It looks like 2.9.2 (or perhaps MBPF2) adds collections to the Scene: Mesh/Rig/Collision/Extras. * When running from VSC you will get a extra DEV tool-tab, this is good to know i you are running Blender both ways. * When running from VSC the add on gets installed - and it will '''remain installed as is,''' when you run (the same) Blender stand alone without VSC. 325a9872f5b24c01e162e544aeab93bb01c68d50 2087 2086 2021-05-11T17:43:42Z Assetdk 89 /* The very first issue!! */ wikitext text/x-wiki =MPFB2 getting started with VS code= On this page you will find notes, tips and hints - in general I intend to make notes on how MPFB2 was implemented as I learn and hopefully this can help others to understand the addon, debut it, make extensions/suggestions and perhaps you can even learn how to make your own addon? ==Getting started== As of now VS code - actually Visual Studio Code - will be refereed to as VSC. For your information VSC is a free version of the professional tool called Visual Studio, Both are provided by Microsoft. Visual Studio is used by companies that have a portfolio of software and it is often used as a front end for different repository systems, this is needed when you have complex systems and a need for keeping track of software versions. If you use VSC you will learn a bit... but never mind, lets get to the first issue you may run into. ===The very first issue!!=== Getting Blender running from VSC, you need to open the folder in VSC and ctrl-shift-p and select the runtime - in my case D:\Blender\stable\blender-2.92.0-windows64\blender.exe - but if you do this like I did you will just see Blender start up and then pass-away. if you are new to VSC you may not notice that there is a message about this on the console - the operative part is: PermissionError:. This rather meaningless, however but what happen is that did already install the addon with this Blender version 2.92.0... and in short you need to unload and uninstall the addon you want to run/debug in VSC. This is what Blender should look like when running from VSC - I highlighted tree things: * It looks like 2.9.2 (or perhaps MBPF2) adds collections to the Scene: Mesh/Rig/Collision/Extras. * When running from VSC you will get a extra DEV tool-tab, this is good to know i you are running Blender both ways. * When running from VSC the add on gets installed and it will be installed as is, when you run (the same) Blender without VSC. de65a87bd7f81e29cecc3660e96eb8110d9cad3c 2086 2021-05-11T17:42:59Z Assetdk 89 Created page with "=MPFB2 getting started with VS code= On this page you will find notes, tips and hints - in general I intend to make notes on how MPFB2 was implemented as I learn and hopefully..." wikitext text/x-wiki =MPFB2 getting started with VS code= On this page you will find notes, tips and hints - in general I intend to make notes on how MPFB2 was implemented as I learn and hopefully this can help others to understand the addon, debut it, make extensions/suggestions and perhaps you can even learn how to make your own addon? ==Getting started== As of now VS code - actually Visual Studio Code - will be refereed to as VSC. For your information VSC is a free version of the professional tool called Visual Studio, Both are provided by Microsoft. Visual Studio is used by companies that have a portfolio of software and it is often used as a front end for different repository systems, this is needed when you have complex systems and a need for keeping track of software versions. If you use VSC you will learn a bit... but never mind, lets get to the first issue you may run into. ===The very first issue!!=== Getting Blender running from VSC, you need to open the folder in VSC and ctrl-shift-p and select the runtime - in my case D:\Blender\stable\blender-2.92.0-windows64\blender.exe - but if you do this like I did you will just see Blender start up and then pass-away. if you are new to VSC you may not notice that there is a message about this on the console - the operative part is: PermissionError:. This rather meaningless, however but what happen is that did already install the addon with this Blender version 2.92.0... and in short you need to unload and uninstall the addon you want to run/debug in VSC. This is what Blender should look like when running from VSC - I highlighted tree things: It looks like 2.9.2 (or perhaps MBPF2) adds collections to the Scene: Mesh/Rig/Collision/Extras. When running from VSC you will get a extra DEV tool-tab, this is good to know i you are running Blender both ways. When running from VSC the add on gets installed and it will be installed as is, when you run (the same) Blender without VSC. 249bca8b3daffe3ce7a03ead422b7ea3cc183165 Documentation:MakeClothes Delete-Groups 3000 653 1859 2020-08-06T18:12:21Z Punkduck 38 Created page with " [[File:Mc2_intersections_issue.jpg]] == Issue with intersecting Faces == A problem which may occur when clothes are designed, is that they fit the character when the char..." wikitext text/x-wiki [[File:Mc2_intersections_issue.jpg]] == Issue with intersecting Faces == A problem which may occur when clothes are designed, is that they fit the character when the character uses a rest pose or isnot changed at all in makehuman. But when the character is morphed (changed in geometry or size) or posed, faces of the skin intersect with faces of the clothes like in the demo illustration above. There are some limits, which have a mathematical background. The following picture demonstrates what is happening, to make it easier a simple 2d illustration is added on the left side of the next illustration. We start with what is maybe an arm, the elbow is not bent. The unchanged line with the red vertices should be the skin, the green ones the piece of cloth. In this case the skin has a higher resolution than the cloth. d1 and d2 are the distances between the vertices on the piece of cloth and the vertices of the skin. For a 2d representation 2 vertices as a reference are needed, for 3d we need 3. The relation between d1 and d2 will be identical after the skin is stretched or bent. Because of lower geometry an intersection cannot be avoided. [[File:Mc2_intersections.png]] There are some methods however, to reach better results: * the clothes should not be low-poly, where you expect to have large movements, use geometry similar like the skin. But as you can see in the first illustration, the problem is not only appearing with low-poly meshes. * the problem may decrease when there is more space between cloth and skin. But it is not a guarantee for very low poly clothes. Be aware of what will work on the outside of the elbow will create self-intersecting cloth-faces on the inside. * be always aware that each vertex on the piece of cloth needs 3 references vertices. Especially if you design a skirt, always use the helper-mesh. Otherwise the algorithm will e.g. find one vertex on one leg to follow and two on the other leg. * use delete-groups if you create non-transparent tight clothes. This has two advantages. No skin will intersect with clothes then and unnecessary vertices had not to be calculated. Be aware that these vertices are not lost. They are still there and can be used when you e.g. need the body as collision object in cloth simulation in e.g. Blender. * for very sophisticated clothes to be used with a cloth simulation later, do a version which fits to the rest pose, you can also create a delete-group, this will help people not using cloth-simulation. 74a7769c3ff285008ee53ea9b8846be9feae1f86 Documentation:MakeClothes Vertex-Groups 3000 650 1861 1860 2020-08-06T18:17:20Z Punkduck 38 wikitext text/x-wiki [[File:Mc2_vertex_groups_howto.jpg|right]] Vertex-groups are used to create relations between the human (or helper) and the piece of cloth. Three different assets will show us, how it works. You can download these assets for comparison, but it should be only an example, because all other authors had to do it similar. A special vertex-group is the [[Documentation:MakeClothes_Delete-Groups|delete-group]]. All assets can be created in one file, if you want. == The boots, a single vertex-group and a delete group == The simplest asset of the clothed character are the boots. * the boots only have one vertex-group called "boots" * the same vertex group is created on the helper where the boots will be * to erase the feet of the character (because they are not visible), a group called "DeleteBoots" is created on the human * the name of this delete group must be inserted in the DeleteGroup box of the mesh as illustrated. That's simple. But be aware of the following characteristics: * use enough vertices to cover the boots on the helper. Otherwise they can intersect, when your character moves. If you use too much, only the time to calculate will grow ... * do not mix body and helper here. Since the body has a higher resolution than the helper the cloth-mesh will sometimes move like the helper and sometimes like the body, this will give unpredictable results * do not select the cubes on the helper ... so be careful with circle or block-selection in blender. You can e.g. hide the cubes by using the joints-group (if available) or by color. Do not delete them! * for shoes using the helper is better in this case. The small toes can completely distort the shoes, when you resize the character * be careful with the delete-group. If you use too many vertices, holes will be the result. [[File:Mc2_vertexgroups2.png]] == The dress, two vertex-groups and a delete group == Because of the trumpet sleeves there is a problem. Some parts of the sleeves will stay near the torso, because the torso vertices are nearer to the sleeves than the arm, * so create two vertex groups at least (Dress, arms), or use 3 like torso, leftarm, rightarm. For some of the helper meshes there are some groups added to be used as a help, if you want to use them, simply add the same vertex group names for your piece of cloth. The vertices of the piece of cloth are only allowed to be in one group. * create the same groups on the helper (if not provided). The may overlap, but better avoid that. * be careful, the boundaries of the piece of cloth and the human or helper should match. * for a dress always use the helper. * do not select the legs, select only the skirt * add a delete group. It is up to you if you delete more of the legs. But in this case don't turn her upside down, not to get a shock ;-) [[File:Mc2_vertexgroups1.png]] == The crown, use of the smallest possible vertex-groups and no delete group == The next example is a crown. The geometry of the crown should be oval and the height should not change. To reach this, we use only 3 vertices which form a triangle. It is possible to deform the triangle, but all movements are linear in this case. So the crown should not deform, if you move e.g. one ear down. * since all the vertices of the crown should be in relation with these vertices, assign all vertices of the crown to the vertex group "crown". * assign 3 vertices on the head (hair helper would also work) to a group of the same name for the human * use 3 vertices, where you believe it will nearly always work, so best not 3 neighbouring vertices, this would not be exact enough * a delete-group is not needed * hint: in old versions of MakeClothes this was called a rigid group and the name had to start with an '*'. Since all other groups with 3 vertices do the same effect, we do not use a different naming. [[File:Mc2_vertexgroups3.png]] Features and problems: * buckles and buttons, especially with a lot of geometry should stay in relation with a vertex group with only 3 vertices. * however it is not possible to e.g. create a perfect round button, when the character is stretched or e.g. bigger cup-sized female breasts "squeeze" the button to ovals. It could happen that the button hovers above the fabric or disappears in the fabric. With this technique better results cannot be reached * delete groups can avoid intersections 08a7982cbbd9f5f43bb03f5fb16954645c0ca899 1860 1855 2020-08-06T18:16:25Z Punkduck 38 wikitext text/x-wiki [[File:Mc2_vertex_groups_howto.jpg|right]] Vertex-groups are used to create relations between the human (or helper) and the piece of cloth. Three different assets will show us, how it works. You can download these assets for comparison, but it should be only an example, because all other authors had to do it similar. A special vertex-group is the [[Documentation:MakeClothes_Delete-Groups|delete-group]]. All assets can be created in one file, if you want. == The boots, a single vertex-group and a delete group == The simplest asset of the clothed character are the boots. * the boots only have one vertex-group called "boots" * the same vertex group is created on the helper where the boots will be * to erase the feet of the character (because they are not visible), a group called "DeleteBoots" is created on the human * the name of this delete group must be inserted in the DeleteGroup box of the mesh as illustrated. That's simple. But be aware of the following characteristics: * use enough vertices to cover the boots on the helper. Otherwise they can intersect, when your character moves. If you use too much, only the time to calculate will grow ... * do not mix body and helper here. Since the body has a higher resolution than the helper the cloth-mesh will sometimes move like the helper and sometimes like the body, this will give unpredictable results * do not select the cubes on the helper ... so be careful with circle or block-selection in blender. You can e.g. hide the cubes by using the joints-group (if available) or by color. Do not delete them! * for shoes using the helper is better in this case. The small toes can completely distort the shoes, when you resize the character * be careful with the delete-group. If you use too many vertices, holes will be the result. [[File:Mc2_vertexgroups2.png]] == The dress, two vertex-groups and a delete group == Because of the trumpet sleeves there is a problem. Some parts of the sleeves will stay near the torso, because the torso vertices are nearer to the sleeves than the arm, * so create two vertex groups at least (Dress, arms), or use 3 like torso, leftarm, rightarm. For some of the helper meshes there are some groups added to be used as a help, if you want to use them, simply add the same vertex group names for your piece of cloth. The vertices of the piece of cloth are only allowed to be in one group. * create the same groups on the helper (if not provided). The may overlap, but better avoid that. * be careful, the boundaries of the piece of cloth and the human or helper should match. * for a dress always use the helper. * do not select the legs, select only the skirt * add a delete group. It is up to you if you delete more of the legs. But in this case don't turn her upside down, not to get a shock ;-) [[File:Mc2_vertexgroups1.png]] == The crown, use of the smallest possible vertex-groups and no delete group == The next example is a crown. The geometry of the crown should be oval and the height should not change. To reach this, we use only 3 vertices which form a triangle. It is possible to deform the triangle, but all movements are linear in this case. So the crown should not deform, if you move e.g. one ear down. * since all the vertices of the crown should be in relation with these vertices, assign all vertices of the crown to the vertex group "crown". * assign 3 vertices on the head (hair helper would also work) to a group of the same name for the human * use 3 vertices, where you believe it will nearly always work, so best not 3 neighbouring vertices, this would not be exact enough * a delete-group is not needed * hint: in old versions of MakeClothes this was called a rigid group and the name had to start with an '*'. Since all other groups with 3 vertices do the same effect, we do not use a different naming. [[File:Mc2_vertexgroups3.png]] Features and problems: * buckles and buttons, especially with a lot of geometry should stay in relation with a vertex group with only 3 vertices. * however it is not possible to e.g. create a perfect round button, when the character is stretched or e.g. bigger cup-sized female breasts "squeeze" the button to ovals. It could happen that the button hovers above the fabric or disappears in the fabric. With this technique better results cannot be reached * delete groups can avoid intersections <explanation of bleeding/intersections will follow, also certain limits> 1451416b8ec62164ad37d03ba9df72ec727c158c 1855 2020-08-03T19:47:15Z Punkduck 38 Created page with "[[File:Mc2_vertex_groups_howto.jpg|right]] Vertex-groups are used to create relations between the human (or helper) and the piece of cloth. Three different assets will show u..." wikitext text/x-wiki [[File:Mc2_vertex_groups_howto.jpg|right]] Vertex-groups are used to create relations between the human (or helper) and the piece of cloth. Three different assets will show us, how it works. You can download these assets for comparison, but it should be only an example, because all other authors had to do it similar. All assets can be created in one file, if you want. == The boots, a single vertex-group and a delete group == The simplest asset of the clothed character are the boots. * the boots only have one vertex-group called "boots" * the same vertex group is created on the helper where the boots will be * to erase the feet of the character (because they are not visible), a group called "DeleteBoots" is created on the human * the name of this delete group must be inserted in the DeleteGroup box of the mesh as illustrated. That's simple. But be aware of the following characteristics: * use enough vertices to cover the boots on the helper. Otherwise they can intersect, when your character moves. If you use too much, only the time to calculate will grow ... * do not mix body and helper here. Since the body has a higher resolution than the helper the cloth-mesh will sometimes move like the helper and sometimes like the body, this will give unpredictable results * do not select the cubes on the helper ... so be careful with circle or block-selection in blender. You can e.g. hide the cubes by using the joints-group (if available) or by color. Do not delete them! * for shoes using the helper is better in this case. The small toes can completely distort the shoes, when you resize the character * be careful with the delete-group. If you use too many vertices, holes will be the result. [[File:Mc2_vertexgroups2.png]] == The dress, two vertex-groups and a delete group == Because of the trumpet sleeves there is a problem. Some parts of the sleeves will stay near the torso, because the torso vertices are nearer to the sleeves than the arm, * so create two vertex groups at least (Dress, arms), or use 3 like torso, leftarm, rightarm. For some of the helper meshes there are some groups added to be used as a help, if you want to use them, simply add the same vertex group names for your piece of cloth. The vertices of the piece of cloth are only allowed to be in one group. * create the same groups on the helper (if not provided). The may overlap, but better avoid that. * be careful, the boundaries of the piece of cloth and the human or helper should match. * for a dress always use the helper. * do not select the legs, select only the skirt * add a delete group. It is up to you if you delete more of the legs. But in this case don't turn her upside down, not to get a shock ;-) [[File:Mc2_vertexgroups1.png]] == The crown, use of the smallest possible vertex-groups and no delete group == The next example is a crown. The geometry of the crown should be oval and the height should not change. To reach this, we use only 3 vertices which form a triangle. It is possible to deform the triangle, but all movements are linear in this case. So the crown should not deform, if you move e.g. one ear down. * since all the vertices of the crown should be in relation with these vertices, assign all vertices of the crown to the vertex group "crown". * assign 3 vertices on the head (hair helper would also work) to a group of the same name for the human * use 3 vertices, where you believe it will nearly always work, so best not 3 neighbouring vertices, this would not be exact enough * a delete-group is not needed * hint: in old versions of MakeClothes this was called a rigid group and the name had to start with an '*'. Since all other groups with 3 vertices do the same effect, we do not use a different naming. [[File:Mc2_vertexgroups3.png]] Features and problems: * buckles and buttons, especially with a lot of geometry should stay in relation with a vertex group with only 3 vertices. * however it is not possible to e.g. create a perfect round button, when the character is stretched or e.g. bigger cup-sized female breasts "squeeze" the button to ovals. It could happen that the button hovers above the fabric or disappears in the fabric. With this technique better results cannot be reached * delete groups can avoid intersections <explanation of bleeding/intersections will follow, also certain limits> 680eca311ec5808c6aa41fe79b831f36d6c0dfdf Documentation:MakeHuman™ and its Purpose 3000 7 40 39 2015-06-30T19:43:57Z Aiena1 3 wikitext text/x-wiki MakeHuman™ is a tool designed to simplify the creation of virtual humans using a Graphical User Interface, also commonly referred to as a GUI. This is a specialized branch of the more general subject of 3D modelling. The MakeHuman Team is focused on this specific branch of the broader subject in order to achieve the best possible level of quality and ease of use in that area. The ultimate goal is to be able to quickly produce a wide array of realistic virtual humans with only a few clicks of the mouse and be able to render or export them for use in other projects. [[File:MH&Purp NQ.jpg|center]] Humans are created through the manipulation of controls that allow for the blending of different human attributes to create unique 3D human characters. The controls are intended to provide the user with a simple way to create characters that give expression to the widest possible range of human forms. The controllable attributes are broken into two groups: macro and detail. The macro targets deal with overall human characteristics like gender, age, height, weight and ethnicity. The detail targets allow for the character to be further refined by focusing on the low level details of such things as the eye's shape or finger's length. The MakeHuman™ project strives to provide a complete tool that allows for the management of all things needed to create realistic virtual humans. This includes some tools that have not yet been created or are in the early stages of development for things like poses, animation cycles, managing facial expressions, hair and clothes. With the exception of modelling, most of these tools follow a "point and click" approach by using the MakeHuman™'s Library. Via the MakeHuman™ Library, users preview and load poses, animation cycles, facial expressions, hair, shoes and clothes onto their character. MakeHuman™ also offers tools for exporting virtual humans to other software (such as the Blender 3D modeling suite) where further refinements can be made. 0d0576d5fc7a8ac0f0c1a1a7a12551522910d964 39 38 2015-06-30T19:42:32Z Aiena1 3 align image center wikitext text/x-wiki MakeHuman™ is a tool designed to simplify the creation of virtual humans using a Graphical User Interface, also commonly referred to as a GUI. This is a specialized branch of the more general subject of 3D modelling. The MakeHuman Team is focused on this specific branch of the broader subject in order to achieve the best possible level of quality and ease of use in that area. The ultimate goal is to be able to quickly produce a wide array of realistic virtual humans with only a few clicks of the mouse and be able to render or export them for use in other projects. [[File:MH&Purp NQ.jpg|center]] Humans are created through the manipulation of controls that allow for the blending of different human attributes to create unique 3D human characters. The controls are intended to provide the user with a simple way to create characters that give expression to the widest possible range of human forms. The controllable attributes are broken into two groups: macro and detail. The macro targets deal with overall human characteristics like gender, age, height, weight and ethnicity. The detail targets allow for the character to be further refined by focusing on the low level details of such things as the eye's shape or finger's length. The MakeHuman™ project strives to provide a complete tool that allows for the management of all things needed to create realistic virtual humans. This includes some tools that have not yet been created or are in the early stages of development for things like poses, animation cycles, managing facial expressions, hair and clothes. With the exception of modelling, most of these tools follow a "point and click" approach by using the MakeHuman™'s Library. Via the MH Library, users preview and load poses, animation cycles, facial expressions, hair, shoes and clothes onto their character. MakeHuman™ also offers tools for exporting virtual humans to other software (such as the Blender 3D modeling suite) where further refinements can be made. 2c116577af2a32181043c6ee761db649e706ea1c 38 37 2015-06-30T19:40:18Z Aiena1 3 Fix layout of MakeHuman™ and its Purpose wikitext text/x-wiki MakeHuman™ is a tool designed to simplify the creation of virtual humans using a Graphical User Interface, also commonly referred to as a GUI. This is a specialized branch of the more general subject of 3D modelling. The MakeHuman Team is focused on this specific branch of the broader subject in order to achieve the best possible level of quality and ease of use in that area. The ultimate goal is to be able to quickly produce a wide array of realistic virtual humans with only a few clicks of the mouse and be able to render or export them for use in other projects. [[File:MH&Purp NQ.jpg]] Humans are created through the manipulation of controls that allow for the blending of different human attributes to create unique 3D human characters. The controls are intended to provide the user with a simple way to create characters that give expression to the widest possible range of human forms. The controllable attributes are broken into two groups: macro and detail. The macro targets deal with overall human characteristics like gender, age, height, weight and ethnicity. The detail targets allow for the character to be further refined by focusing on the low level details of such things as the eye's shape or finger's length. The MakeHuman™ project strives to provide a complete tool that allows for the management of all things needed to create realistic virtual humans. This includes some tools that have not yet been created or are in the early stages of development for things like poses, animation cycles, managing facial expressions, hair and clothes. With the exception of modelling, most of these tools follow a "point and click" approach by using the MakeHuman™'s Library. Via the MH Library, users preview and load poses, animation cycles, facial expressions, hair, shoes and clothes onto their character. MakeHuman™ also offers tools for exporting virtual humans to other software (such as the Blender 3D modeling suite) where further refinements can be made. cf89b200ff71acee253d02a09ef1a7bfba43f8f9 37 36 2015-06-30T19:39:29Z Aiena1 3 wikitext text/x-wiki MakeHuman™ is a tool designed to simplify the creation of virtual humans using a Graphical User Interface, also commonly referred to as a GUI. This is a specialized branch of the more general subject of 3D modelling. The MakeHuman Team is focused on this specific branch of the broader subject in order to achieve the best possible level of quality and ease of use in that area. The ultimate goal is to be able to quickly produce a wide array of realistic virtual humans with only a few clicks of the mouse and be able to render or export them for use in other projects. [[File:MH&Purp NQ.jpg]] Humans are created through the manipulation of controls that allow for the blending of different human attributes to create unique 3D human characters. The controls are intended to provide the user with a simple way to create characters that give expression to the widest possible range of human forms. The controllable attributes are broken into two groups: macro and detail. The macro targets deal with overall human characteristics like gender, age, height, weight and ethnicity. The detail targets allow for the character to be further refined by focusing on the low level details of such things as the eye's shape or finger's length. The MakeHuman™ project strives to provide a complete tool that allows for the management of all things needed to create realistic virtual humans. This includes some tools that have not yet been created or are in the early stages of development for things like poses, animation cycles, managing facial expressions, hair and clothes. With the exception of modelling, most of these tools follow a "point and click" approach by using the MakeHuman™'s Library. Via the MH Library, users preview and load poses, animation cycles, facial expressions, hair, shoes and clothes onto their character. MakeHuman™ also offers tools for exporting virtual humans to other software (such as the Blender 3D modeling suite) where further refinements can be made. 5c81ff62df2016f691d948d8d30b94e258f8fd82 36 2015-06-30T19:39:05Z Aiena1 3 Created page with "MakeHuman™ is a tool designed to simplify the creation of virtual humans using a Graphical User Interface, also commonly referred to as a GUI. This is a specialized branch o..." wikitext text/x-wiki MakeHuman™ is a tool designed to simplify the creation of virtual humans using a Graphical User Interface, also commonly referred to as a GUI. This is a specialized branch of the more general subject of 3D modelling. The MakeHuman Team is focused on this specific branch of the broader subject in order to achieve the best possible level of quality and ease of use in that area. The ultimate goal is to be able to quickly produce a wide array of realistic virtual humans with only a few clicks of the mouse and be able to render or export them for use in other projects. [[File:File:MH&Purp NQ.jpg]] Humans are created through the manipulation of controls that allow for the blending of different human attributes to create unique 3D human characters. The controls are intended to provide the user with a simple way to create characters that give expression to the widest possible range of human forms. The controllable attributes are broken into two groups: macro and detail. The macro targets deal with overall human characteristics like gender, age, height, weight and ethnicity. The detail targets allow for the character to be further refined by focusing on the low level details of such things as the eye's shape or finger's length. The MakeHuman™ project strives to provide a complete tool that allows for the management of all things needed to create realistic virtual humans. This includes some tools that have not yet been created or are in the early stages of development for things like poses, animation cycles, managing facial expressions, hair and clothes. With the exception of modelling, most of these tools follow a "point and click" approach by using the MakeHuman™'s Library. Via the MH Library, users preview and load poses, animation cycles, facial expressions, hair, shoes and clothes onto their character. MakeHuman™ also offers tools for exporting virtual humans to other software (such as the Blender 3D modeling suite) where further refinements can be made. 3b3b32bbf8f155456c509955b6e91c75a0bad2ba Documentation:MakeWalk 3000 241 2148 2147 2022-11-13T19:24:21Z Coz 122 Removed www from mocapdata.com to links are not broken anymore wikitext text/x-wiki ====== NOTE ====== There is a wealth of important information in this document, but some of the detail is badly out of date. Most of the fundamental information is quite usable, nevertheless. Things that need repairing: * Broken links * Reference to armatures in older version of MakeHuman * The MakeWalk tool is now found as a tab on the T-side-panel in Blender ------------------------------------ MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ==== Retargeting: how it works ==== The goal of retargeting is to transfer a motion from a source armature (e.g. from a BVH file) to a given target armature (e.g. the MHX rig). However, it is not straightforward to assign the source action to the target rig, even if the bones have identical names. The motion of each bone is specified in local coordinates, relative to the parent and the bone's own rest pose. If the rest poses of the source and target armatures differ, the source F-curves can not be used directly by the target armature. [[File:makewalk-1.png]] The picture above shows a transformation in the local coordinate system. Since the parent's local Y points along its axis and its local Z points up, the child bone is rotated around the local X axis. This is not very useful if the target armature has a diffent rest pose. To retarget the pose, we therefore reexpress the transformation in the global coordinate system, as shown below. The local X rotation corresponds to a global Y rotation, and by a different angle. Once the global transformation matrix is known, we can reexpress it in the target bone's local coordinate system. The retargeting process thus consists of making two coordinate transformations: Source local => Global => Target local. This will ensure that the source bone and the target bone will have the same global orientation. [[File:makewalk_2.png]] Unfortunately, things are a little more complicated. We do not always want the source and target bones to have identical orientation. In particular, the root or pelvis bone may point in entirely different directions in different armatures. E.g. in the CMU armature rest pose the pelvis points forward-down, and in the MHX rig it points straight up. [[File:makewalk-3.png]] If we insisted that the root bone in the MHX rig would point in the same direction as in the CMU rig, the retargeting would not be very successful, as shown in the figure above. If we instead keep the rotation offset from the rest poses, the target pose becomes much better, as shown below. To calibrate the source and target armature against each other, MalkWalk introduces extra keyframes at frame 0, where both armatures are posed in T-pose. [[File:mcp-ret-060-calibrate.png]] In the rest of the animation, bones in the target armature copy the global rotations of the source armature, apart from differences present in the T-poses. In this way we can transfer animations from CMU to the MHX rig, despite the fact that the rest poses are very different. ==== Basic Workflow ==== === Retargeting === The MakeWalk panels appear in the tool shelf whenever an armature is the active object. Select the armature and press the Load And Retarget button. In the file selector, select the .bvh file. We choose the file 90_04.bvh from the CMU database. It is a cartwheel animation. [[File:makewalk-4.png]] After a short wait, the armature is doing gymnastics. [[File:makewalk-5.png]] At frame 0 of the animation the armature has been placed in T-pose. This is not part of the originial .bvh file, but inserted by MakeWalk to calibrate the source armature (defined by the bvh file) and the target armature (the selected armature in the viewport) against each other. === Supported armatures === MakeWalk works with most straightforward biped rigs with FK arms and legs, such as the Rigify meta-rig. There is also built-in support for some more complex rigs: the MHX advanced rig from MakeHuman, the MHX rig from MakeHuman and Rigify. [[File:makewalk-6.png]] It is often possible to use MakeWalk with other complex rig, but in that case the automatic bone identification may fail. If so, a bone map must be defined manually, see -- [[Defining a Target Rig Manually]]. === Troubleshooting === Retargeting is a rather involved subject, and it can sometimes result in poor motion. The process may even fail completely, usually because MakeWalk failed to automatically identify the bones of a complex rig. If this should happen, see!LINK!http://www.makehumancommunity.org/wiki/Documentation:MakeWalk#Errors_and_Corrective_Actions -- Errors and Corrective Actions!/LINK!. ==== Where to find BVH files ==== There are several different formats that mocap files can be stored in. MakeHuman's mocap tool can only deal with files in Biovision BVH format. BVH files can be bought from many commercial sources, but a large range of mocap files are also available for free download. Here are some sites I found useful. * CMU Graphics Lab Motion Capture Database: Hosted at Carnegie-Mellon University, this is a huge library of mocap files which can be downloaded for free. The web address is!LINK!http://mocap.cs.cmu.edu/ -- http://mocap.cs.cmu.edu!/LINK!. CMU hosts mocap files in three formats: tvd, c3d and amc. However, the mocap tool can only read BVH files, so none of these files can be used directly. Fortunately, B. Hahne at!LINK!http://www.cgspeed.com/ -- www.cgspeed.com!/LINK!has converted the CMU files to BVH. The converted files are located at!LINK!http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture -- http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture!/LINK!. * Advanced Computing Center for the Arts and Design (ACCAD): Hosted at the Ohio State University, this is another great source of free mocap files. BVH files can be downloaded from!LINK!https://accad.osu.edu/research/motion-lab/mocap-system-and-data -- https://accad.osu.edu/research/motion-lab/mocap-system-and-data!/LINK! * Eyes Japan (mocapdata.com):This is a Japanese company that sells mocap data commercially, but they also offer a huge number of motions for free. According to their homepage, mocapdata.com provides 744 premium motion data and 4197 free motion data. The only catch is that downloading requires registration. Not surprisingly, the homepage of mocapdata.com has the address!LINK!http://mocapdata.com/ -- http://mocapdata.com/!/LINK!. * The Trailer's Park: Free mocap data can also be found at the Trailer's Park,!LINK!http://www.thetrailerspark.com/ -- http://www.thetrailerspark.com!/LINK!. This site does not offer original data, but offer repacks of mocap data from other free sites for download. Free download is limited to some five packs per day, so some patience is required here. * Hochschule der Medien, Universität Bonn (HDM):!LINK!http://www.mpi-inf.mpg.de/resources/HDM05/ -- http://www.mpi-inf.mpg.de/resources/HDM05!/LINK! * The Perfume global site project #001:!LINK!http://perfume-dev.github.com/ -- http://perfume-dev.github.com/!/LINK! === MHBlenderTools: MakeWalk user interface === ==== The user interface ==== The user > interface of MakeWalk is located in under the Armature tab, and becomes visible when an armature is selected. It consists of six panels; the first one is open by default and the others are closed. [[File:makewalk-7_0.png]] * Load And Retarget: Select a BVH file and retarget it to the active armature. * Start Frame: The first frame in the BVH file to considered. * Last Frame: The last frame to be considered, unless the animation stops earlier. The difference last_frame - first_frame is the maximal number of frames after retargeting. The number of frames in the BVH file may be larger, if some frames are skipped due to subsampling * Detailed steps: When this options is selected, further buttons are show below * Load BVH File (.bvh). Load a BVH file, and create an animated armature from it. * Rename And Rescale BVH Rig. With the BVH armature active, and a target armature selected, rename and rescale the bones of the active armature to fit the target. * Load And Rename BVH File (.bvh). A combination of the previous two buttons. With a target armature active, load a BVH file, and create an animated armature with renamed and rescaled bones. * Retarget Selected To Active. Retarget the animation from a renamed and rescaled BVH armature to the active armature. * Simplify FCurves. Simplify the F-curves of the active armature. * Rescale FCurves. Rescale F-curevs of the active armature.What if retargeting fails? MakeWalk is designed to retarget animations to a given armature with a minimum of user intervention. However, retargeting is a complex process, and entirely automatic retargeting may fail or result in suboptimal motion. Information about how to identify and correct problems is found in!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Errors and Corrective Actions!/LINK!. A common problem is that automatic identification of bones in the target armature fails. A bone map can then be assigned manually, cf.!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Defining the Target Rig Manually.!/LINK! ==== Options panel ==== [[File:makewalk-8.png]] * Use Default Subsample. Blender normally plays the animation in 24 fps or 25 fps, but the animation in the BVH file may be recorded at a different speed. In particular, the BVH files from CMU were filmed at 120 fps. Enable this option to have the animation play at natural speed, irrespective of the frame rate in the BVH file. Other subsample options are described below. * Auto scale. Set the scale automatically based on the size of the left thigh. This choice has two motivations: * Almost all character do have a left leg. * The leg size is crucial for making walk cycles look good. * Scale. The default MakeHuman scale is decimeters - 1 unit = 1 decimeter. Translations in a BVH file are expressed in different units; often the base unit is inches, meters or centimeters, but more obscure units can also occur, e.g. in BVH files from CMU. If the scale is set incorrectly, rotations will still be correctly retargeted, but the character will appear to take giant leaps or miniscule steps. * Use Limits: If this option is enabled, MakeWalk honors any Limit Rotation constraints, and will not allow excessive rotations. If the animation in the bvh files exceeds some rotation limits, this makes the retargeted animation less faithful. On the other hand, the rig may not be built for excessive rotations, so unchecking this option can lead to other problems. * Unlock Rotation: If this option is disabled, MakeWalk honors any rotation locks. If the animation in the bvh files bend around locked axes, this makes the retargeted animation less faithful. If Unlock Rotation is enabled, any X or Z rotation locks are disabled. Y rotation locks (bone twisting) are never disabled. The reason for this is that in the MHX and Rigify rigs, forearm rotation is handled by deform bones controlled by hand twisting. * Auto source rig. The source rig (i.e. the armature defined by the BVH file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Source Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the source rig, based on the structure of the bone hierarchy. * Auto target rig. The target rig (i.e. the armature in the blend file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Target Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the target rig, based on the structure of the bone hierarchy. * Ignore Hidden Layers. Ignore bones on hidden layers when identifying the target rig. === Subsample and Rescale === If the Use Default Subsample option is set, the mocap tool will rescale the animation to fit the current frame rate. However, there are at least two reasons why you may want to load an animation at a different frame rate: * * To obtain a slow-motion or rapid-motion effect. * To quickly load an animation to see if the gross features will work out. If the Use Default Subsample option is disabled, the SubSample section becomes visible. * Subsample. Enable subsampling. * Subsample Factor. If the value of this property is n, only every n:th frame of the BVH animation is loaded. * Rescale. Enable rescaling. * Rescale Factor. If the value of this property is n, the time distance between keyframes is changed to n. * Rescale FCurves. Apply the settings above to existing F-curves rather than to the loaded animation. Rescaling differs from simply scaling F-curves in the F-curve editor. === Simplification === * Simplify FCurves. Remove unnecessary keyframes. * Max Loc Error. The maximal allowed error for location keyframes, in Blender units. A larger error results in fewer keyframes but less accuracy. * Max Rot Error. The maximal allowed error for rotation keyframes, in degrees. A larger error results in fewer keyframes but less accuracy. * Only Visible. Simplification only affect F-curves visible in the Graph editor. * Only Between Markers. Simplification only affects F-curves between the two outermost selected markers. The timeline must have at least two selected markers. ==== Edit panel ==== Loading and retargeting is normally only the first step in the creation of an animation from mocap data. There are many reasons why a loaded animation does not behave exactly the way you want it to: artifacts in the mocap data, differences in armature structure not compensated for correctly by the retargeting process, differences in body stature between the mocap actor and the target character, or simply that the filmed sequence does not do exactly what you intend.. It is of course possible to edit the action directly in the graph editor, but this is unpractical due to the amount of mocap data. The mocap tool offers several possibilities to edit an action at a higher level. These tools are colleted in the Edit Action panel which is located just below the Options panel. [[File:edit-action.png]] === Inverse Kinematics === * Transfer FK => IK: The load and retarget steps transfers an animation from a bvh file to the target character. However, only the FK bones are animated. Press this button to transfer the FK animation to the IK bones. Only works for the advanced MHX armature. If two markers are selected, only the animation between the markers is transferred. * Transfer IK => FK: Transfer the animation back from the IK bones to the FK bones. Useful if the IK animation has been edited, * Clear IK Animation: Remove all keyframes from all IK bones (arms and legs). * Clear FK Animation: Remove all keyframes from all FK bones (arms and legs). === Global Edit === * Shift Animation. Shift the keys for the selected bones at all keyframes.If two markers are selected, only the keyframes between the markers are deleted. * X,Y,Z: F-curves affected by the next button. * Fixate Bone Locations:Replace all location keys by their average. Only selected bones and keyframes between selected markers are affected. * Rescale Factor: Factor used by next button. * Rescale FCurves: Rescale all F-curves by the factor above. This is similar to scaling F-curves in the curve editor, but jumps are treated correctly. E.g., rotations of +180 degrees and -180 degrees are the same, but if we scale an F-curve with a factor two, the intermedate keyframe will have the average rotation 0 degrees, The Rescale FCurves button handles this case correctly. === Local Edit === This section could be called "Poor man's animation layers". A loaded mocap animation usually has imperfections that must be edited, but without changing the overall feel of the motion. The Start Edit button creates a new animation layer where differences from the original motion are stored as keys, called delta keys since delta often denotes a difference. * Start Edit: Start editing F-curves. * Undo Edit: Quit F-curve editing, without modifying the original F-curves. * Loc: Set a location delta keyframe. * Rot: Set a rotation delta keyframe. * LocRot: Set a location and rotation delta keyframe. * Delete: Remove all delta keyframes at the current time. * |<: Move to first delta keyframe * <: Move to previous delta keyframe. * >: Move to next delta keyframe. * >|: Move to last delta keyframe. * Confirm Edit: Modify the original F-curves and quit F-curve editing. The delta keys are represented by markers in the timeline. [[File:mwe-315-local-keys.png]] A delta key can be added with the Loc, Rot and LocRot buttons, and removed with Delete. There is no way to view the delta keys directly. In the viewport and the curve editor, the final pose is shown, which is the sum of the original pose and the delta key. A common use for delta keys is to correct for intersection with other objects or the character herself. The typical workflow is as follows: * * Start Edit. * Set a delta key at a good frame just before the intersection. * Set a delta key at a good frame just after the intersection. * Edit the pose a the frame(s) where intersection occurs. * If the intersection has been removed, Confirm Edit. If not, set new delta keys until it has, or Undo Edit to remove the delta layer. === Feet === * Left: Affect the left foot. * Right: Affect the right foot. * Hips: Affect the characters hip (COM) bone. * Offset Toes: Ensure that the toe is below the ball of the foot at all keyframes. Primarily useful for rigs with a reverse foot setup as explained below. * Keep Feet Above Floor: If a mesh object (typically a plane) is selected, shift the keyframes to keep the affected feet above the plane. The plane does not necessarily lie in the XY plane; if the plane is tilted, the feet are kept on the plane's upper side. If no plane is selected, the feet are kept above the XY plane (z = 0). The IK feet are affected if the rig has and uses IK legs, otherwise the FK feet are kept above the floor. If two markers are selected, only the keyframes inbetween are shifted. In a rig with a reverse foot setup, such as the MHX rig, the foot can rotate around the toe, ball, and heel. The reverse foot and toe bones are completely fixed by the corresponding FK bones, but the IK effector can be placed arbitrarily, as long as it ends at the toe tip. The transfer tool uses this freedom to make the IK effector perfectly horizontal, provided that the toe is below the ball and heel. [[File:refoot.png]] To use this feature we must ensure that the toe is below the ball of the foot, which is done by the Offset Toes button. === Loop And Repeat === !LINK! -- Loop Animation!/LINK! Create a loop of the action between two selected time markers, by blending the keyframes in the beginning and end of the loop. This is useful e.g. to create walk and run cycles for games. For good results, the poses at the beginning and end of the selected region should be similar. * Blend Range: The number of keyframes used for blending. * Loop in place: Remove the X and Y components of the root bone's location. * Loop F-curves: Loop the animation. !LINK! -- Repeat Animation!/LINK! Repeat the action between two selected time markers. The actions should preferably be looped before it is repeated, to make the beginning and end match seamlessly. * Repeat Number: The number of repetitions. * Repeat F-curves: Repeat the animation. === Stitching === Create a new action by stitching two actions together seamlessly. * Update Action List: Update the first and second action drop-down lists. * First Action: The name of the first action. * First End Frame: Last frame of the first action * Set Current Action: Set the first action as the current action. * Second Action: The name of the second action. * Second Start Frame: First frame of the second action. * Set Current Action: Set the second action as the current action. * Action Target: Choose between creating a new action and prepending the second action. * Blend Range: The number of keyframes used for blending. Same parameter as in Loop Animations section. * Output Action Name: * Stitch Actions: Stitch the actions together. === MHBlenderTools: MakeWalk armatures === ==== Source Armature panel ==== MakeWalk transfers an animation from a source armature, defined in a bvh file, to a given target armature. It uses an intermediate standard rig described in!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. The bone map from the source armature to the target armature hence consists of two parts: * A map from the source rig to the standard rig. It is defined in the MakeWalk: Source Armature panel. * A map from the target rig to the standard rig. It is defined in the!LINK!http://makehuman.org/doc/node/makewalk_target_armature_panel.html -- MakeWalk: Target Armature panel!/LINK!. [[File:mws-010-panel.png]] When a new scene is opened, the panel consists of the single button Initialize Source Panel. Once this button has been pressed, the following content is available: [[File:mws-020-auto.png]] * Reinit Source Panel: Reinitialization. * Auto Source Rig: If this option is enabled, MakeWalk will try to identify the source rig automatically. It may happen that MakeWalk fails to identify the source rig automatically, but this is very unusual. If it should nevertheless happen, it is possible to define the bone map manually in analogy with !LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- how it is done for target rigs!/LINK!. * Source rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected source rig (if Auto Source Rig is disabled) or to Automatic. * Bones in the active source rig. ==== Target Armature panel ==== The second part of the mapping from source to target armatures is defined by the panel labelled MH Mocap: Target armature. It is the top-most of the mocap tool panels, and is closed by default. When a new scene is opened, the panel consists of the single button Initialize Target Panel. Once this button has been pressed, the following content is available: [[File:mwt-011-panel.png]] * Reinit Target Panel. Reinitialization. * Target rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected Target rig (if Auto Target rig guessing is disabled), or is set to a matching rig (if automatic target rig identificiation is enabled). * Auto Target Rig. If this option is enabled, MakeWalk will try to identify the target rig automatically. However, automatic rig identification is not trivial for complex rigs, and it may fail. If so, the bone map may be specified manually, cf!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. If the bone map is defined. The target rigs available by default correspond mostly to the rig presets that can be exported from MakeHuman * MHX. An advanced rig from MakeHuman alpha 8. * MH Alpha 7. The MHX rig from MakeHuman alpha 7. * Rigify. * Ignore Hidden Layers: Ignore bones on hidden layers during automatic rig identification. * Reverse Hip. Select this option if the armature has an reverse hip. It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. * Identify Target Rig: Identify the target rig, i.e. find out how bone names in the active armature correspond to the internal names. This step is performed automatically during retargeting, but the identification can also be done separately for debugging purposes. The bone map appears in the area called FK bones below. * Set T-pose. Pose the active armature in T-pose. * Save T-pose. Option used by the next button. * Save Target File. Save the current bone map as a .trg file. If the Save T-pose option is set, also save a json file defining the T-pose. * FK bones. The bone map. The picture below shows automatic rig identification of the Rigify meta-rig (Add > Armature > Advanced Human). [[File:mwt-020-metarig.png]] === MHBlenderTools: MakeWalk troubleshooting. === ==== What if retargeting fails? ==== === Errors and Corrective Actions === This document will describe common errors and corrective actions. It may happen that MakeWalk fails to retarget an animation to a given armature. In that case an error message is displayed. [[File:mwa-100-error.png]] The error message consists of the following: Mocap error Category Detailed error message A link to this page MakeWalk errors are grouped into the following categories: * Load Bvh File * Rename And Rescale * Identify Target Rig * Automatic Target Rig * Manual Target Rig * Identify Source Rig * Retarget * General Error Load Bvh File Rename And Rescale Identify Target Rig === Automatic Target Rig === The most common problem is probably that MakeWalk fails to identify the target rig automatically. There are several possible reasons for this: * The character is not oriented correctly. In the rest pose, the character should be standing with up being the positive Z axis and facing -Y. * The armature is complex with extra bones not corresponding to a standard biped rig. * The armature only has IK arms or legs. MakeWalk retargets animations to the FK limbs, so if no such bones exist, the program will not work. [[File:mwa-110-reverse-hip.png]] It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. [[File:mwa-120-reversehip.png]] The advantage of such a setup is that the upper and lower body can be posed independently. However, MakeWalk failes to identify the bones, unless the Reverse Hip option has been enabled. If automatic bone identification still fails, bone mapping has to be made manually. How this is done is described in the next section. === Defining the Target Rig Manually === Internally, MakeWalk retargets animations to an armature with the following bone hierarchy. Here is a visual illustration of the bone hierarchy: [[File:mwa-010-armature.png]] In order to retarget to an armature with different bone names, we must define a map between the given bones and the internal names. By default, MakeWalk attempts to do this automatically. However, automatic bone mapping may easily be confused for non-trivial rigs. If this happens, one can define the bone map manually. A bone map for a target armature is defined by a .trg file located in the target_rigs folder under the makewalk directory. The folder already contains three files, for retargeting the MHX advanced rig, the MakeHuman, and Rigify. These rigs are too complicated to identify the bone map automatically, so MakeWalk recognizes these rigs and use the predefined bone map. Create a .trg file using an existing file as a template. E.g., a .trg file could look like this: Note that it is not necessary to define maps to all bones. Bone names must not contain spaces, since whitespace is used as a delimiter in the .trg file. If the bones in your armature do contain spaces, replace them by underscore ( _ ). MakeWalk treats space and underscore as equivalent, so this is not a problem, except for very strange naming convention. [[File:mwa-020-myrig.png]] Save the .trg file with the name my_rig.trg in the target_rigs folder and press the Reinit Target Panel button. My_Rig should now appear in the Target rig list. Select it. In the FK bones sections, the My_Rig bone names are now listed. Make sure that the Auto Target Rig option is deselected, to override automatic bone mapping. Finally go to the main panel and press Load And Retarget. The animation should now be loaded. === MHBlenderTools: MakeWalk utilities === ==== Utilities panel ==== This panel contains material that does not naturally fit into the other panels. [[File:mwu-010-panel.png]] === Default Settings === * Save Defaults: Save current settings as the default settings. * Load Defaults: Load the default settings from file. === Manage Actions === * Actions: A list of all actions in the scene, at the time when the Update Action List button was last pressed. * Filter: If selected, only actions belonging to the active character are included in the action list. When the mocap tool creates an action, the first four letters in the action name are taken from the rig name. * Update Action List: * Set Current Action: Set the action selected in the Actions list as the active action. * Delete Action: Permanently delete the action selected in the Actions list. The action must have zero users. It is quite cumbersome to permanently delete actions in Blender. The reason is that creating an action with hand animation takes much work, which should not be lost accidentally. The situation is different with mocap, where it is easy to fill up a blend file with many irrelevant actions. This button makes it easier to clean out such junk motions. * Delete Temporary Actions: Some tools create temporary actions, whose names start with a hash sign (#). Deletes all such actions. === Temporary properties === * Delete Temporary Properties. MakeWalk creates some properties for relevant posebones during retargeting. Pressing this button removes these properties. However, be aware that some of the tools in the Edit panel may fail if the temporrary properties are deleted. The temporary properties for the active posebone can be inspected in the N-panel. [[File:mwu-030-temp-props.png]] * McpBone: The name of this bone in the internal hierarchy. * McpParent: The parent of this bone in the internal hierarchy. * McpQuatW, McpQuatX, McpQuatY, McpQuatZ: The rotation of this bone in T-pose, represented as a quaternion. === T-pose === * Set T-pose: Set the current pose to T-pose. * Clear T-pose: Set the current pose to the default pose. * Load T-pose: Load a T-pose from a .json file to the active armature. * Save T-pose: Save the current pose as a .json file. === Rest Pose === * Current Pose => Rest Pose: Set the current pose to rest pose. 4852916263127615d4917c928f5d51ff741feb9c 2147 1354 2022-11-13T19:18:37Z Coz 122 Fixed broken ACCAD-BHV link wikitext text/x-wiki ====== NOTE ====== There is a wealth of important information in this document, but some of the detail is badly out of date. Most of the fundamental information is quite usable, nevertheless. Things that need repairing: * Broken links * Reference to armatures in older version of MakeHuman * The MakeWalk tool is now found as a tab on the T-side-panel in Blender ------------------------------------ MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ==== Retargeting: how it works ==== The goal of retargeting is to transfer a motion from a source armature (e.g. from a BVH file) to a given target armature (e.g. the MHX rig). However, it is not straightforward to assign the source action to the target rig, even if the bones have identical names. The motion of each bone is specified in local coordinates, relative to the parent and the bone's own rest pose. If the rest poses of the source and target armatures differ, the source F-curves can not be used directly by the target armature. [[File:makewalk-1.png]] The picture above shows a transformation in the local coordinate system. Since the parent's local Y points along its axis and its local Z points up, the child bone is rotated around the local X axis. This is not very useful if the target armature has a diffent rest pose. To retarget the pose, we therefore reexpress the transformation in the global coordinate system, as shown below. The local X rotation corresponds to a global Y rotation, and by a different angle. Once the global transformation matrix is known, we can reexpress it in the target bone's local coordinate system. The retargeting process thus consists of making two coordinate transformations: Source local => Global => Target local. This will ensure that the source bone and the target bone will have the same global orientation. [[File:makewalk_2.png]] Unfortunately, things are a little more complicated. We do not always want the source and target bones to have identical orientation. In particular, the root or pelvis bone may point in entirely different directions in different armatures. E.g. in the CMU armature rest pose the pelvis points forward-down, and in the MHX rig it points straight up. [[File:makewalk-3.png]] If we insisted that the root bone in the MHX rig would point in the same direction as in the CMU rig, the retargeting would not be very successful, as shown in the figure above. If we instead keep the rotation offset from the rest poses, the target pose becomes much better, as shown below. To calibrate the source and target armature against each other, MalkWalk introduces extra keyframes at frame 0, where both armatures are posed in T-pose. [[File:mcp-ret-060-calibrate.png]] In the rest of the animation, bones in the target armature copy the global rotations of the source armature, apart from differences present in the T-poses. In this way we can transfer animations from CMU to the MHX rig, despite the fact that the rest poses are very different. ==== Basic Workflow ==== === Retargeting === The MakeWalk panels appear in the tool shelf whenever an armature is the active object. Select the armature and press the Load And Retarget button. In the file selector, select the .bvh file. We choose the file 90_04.bvh from the CMU database. It is a cartwheel animation. [[File:makewalk-4.png]] After a short wait, the armature is doing gymnastics. [[File:makewalk-5.png]] At frame 0 of the animation the armature has been placed in T-pose. This is not part of the originial .bvh file, but inserted by MakeWalk to calibrate the source armature (defined by the bvh file) and the target armature (the selected armature in the viewport) against each other. === Supported armatures === MakeWalk works with most straightforward biped rigs with FK arms and legs, such as the Rigify meta-rig. There is also built-in support for some more complex rigs: the MHX advanced rig from MakeHuman, the MHX rig from MakeHuman and Rigify. [[File:makewalk-6.png]] It is often possible to use MakeWalk with other complex rig, but in that case the automatic bone identification may fail. If so, a bone map must be defined manually, see -- [[Defining a Target Rig Manually]]. === Troubleshooting === Retargeting is a rather involved subject, and it can sometimes result in poor motion. The process may even fail completely, usually because MakeWalk failed to automatically identify the bones of a complex rig. If this should happen, see!LINK!http://www.makehumancommunity.org/wiki/Documentation:MakeWalk#Errors_and_Corrective_Actions -- Errors and Corrective Actions!/LINK!. ==== Where to find BVH files ==== There are several different formats that mocap files can be stored in. MakeHuman's mocap tool can only deal with files in Biovision BVH format. BVH files can be bought from many commercial sources, but a large range of mocap files are also available for free download. Here are some sites I found useful. * CMU Graphics Lab Motion Capture Database: Hosted at Carnegie-Mellon University, this is a huge library of mocap files which can be downloaded for free. The web address is!LINK!http://mocap.cs.cmu.edu/ -- http://mocap.cs.cmu.edu!/LINK!. CMU hosts mocap files in three formats: tvd, c3d and amc. However, the mocap tool can only read BVH files, so none of these files can be used directly. Fortunately, B. Hahne at!LINK!http://www.cgspeed.com/ -- www.cgspeed.com!/LINK!has converted the CMU files to BVH. The converted files are located at!LINK!http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture -- http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture!/LINK!. * Advanced Computing Center for the Arts and Design (ACCAD): Hosted at the Ohio State University, this is another great source of free mocap files. BVH files can be downloaded from!LINK!https://accad.osu.edu/research/motion-lab/mocap-system-and-data -- https://accad.osu.edu/research/motion-lab/mocap-system-and-data!/LINK! * Eyes Japan (mocapdata.com):This is a Japanese company that sells mocap data commercially, but they also offer a huge number of motions for free. According to their homepage, mocapdata.com provides 744 premium motion data and 4197 free motion data. The only catch is that downloading requires registration. Not surprisingly, the homepage of mocapdata.com has the address!LINK!http://www.mocapdata.com/ -- http://www.mocapdata.com/!/LINK!. * The Trailer's Park: Free mocap data can also be found at the Trailer's Park,!LINK!http://www.thetrailerspark.com/ -- http://www.thetrailerspark.com!/LINK!. This site does not offer original data, but offer repacks of mocap data from other free sites for download. Free download is limited to some five packs per day, so some patience is required here. * Hochschule der Medien, Universität Bonn (HDM):!LINK!http://www.mpi-inf.mpg.de/resources/HDM05/ -- http://www.mpi-inf.mpg.de/resources/HDM05!/LINK! * The Perfume global site project #001:!LINK!http://perfume-dev.github.com/ -- http://perfume-dev.github.com/!/LINK! === MHBlenderTools: MakeWalk user interface === ==== The user interface ==== The user > interface of MakeWalk is located in under the Armature tab, and becomes visible when an armature is selected. It consists of six panels; the first one is open by default and the others are closed. [[File:makewalk-7_0.png]] * Load And Retarget: Select a BVH file and retarget it to the active armature. * Start Frame: The first frame in the BVH file to considered. * Last Frame: The last frame to be considered, unless the animation stops earlier. The difference last_frame - first_frame is the maximal number of frames after retargeting. The number of frames in the BVH file may be larger, if some frames are skipped due to subsampling * Detailed steps: When this options is selected, further buttons are show below * Load BVH File (.bvh). Load a BVH file, and create an animated armature from it. * Rename And Rescale BVH Rig. With the BVH armature active, and a target armature selected, rename and rescale the bones of the active armature to fit the target. * Load And Rename BVH File (.bvh). A combination of the previous two buttons. With a target armature active, load a BVH file, and create an animated armature with renamed and rescaled bones. * Retarget Selected To Active. Retarget the animation from a renamed and rescaled BVH armature to the active armature. * Simplify FCurves. Simplify the F-curves of the active armature. * Rescale FCurves. Rescale F-curevs of the active armature.What if retargeting fails? MakeWalk is designed to retarget animations to a given armature with a minimum of user intervention. However, retargeting is a complex process, and entirely automatic retargeting may fail or result in suboptimal motion. Information about how to identify and correct problems is found in!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Errors and Corrective Actions!/LINK!. A common problem is that automatic identification of bones in the target armature fails. A bone map can then be assigned manually, cf.!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Defining the Target Rig Manually.!/LINK! ==== Options panel ==== [[File:makewalk-8.png]] * Use Default Subsample. Blender normally plays the animation in 24 fps or 25 fps, but the animation in the BVH file may be recorded at a different speed. In particular, the BVH files from CMU were filmed at 120 fps. Enable this option to have the animation play at natural speed, irrespective of the frame rate in the BVH file. Other subsample options are described below. * Auto scale. Set the scale automatically based on the size of the left thigh. This choice has two motivations: * Almost all character do have a left leg. * The leg size is crucial for making walk cycles look good. * Scale. The default MakeHuman scale is decimeters - 1 unit = 1 decimeter. Translations in a BVH file are expressed in different units; often the base unit is inches, meters or centimeters, but more obscure units can also occur, e.g. in BVH files from CMU. If the scale is set incorrectly, rotations will still be correctly retargeted, but the character will appear to take giant leaps or miniscule steps. * Use Limits: If this option is enabled, MakeWalk honors any Limit Rotation constraints, and will not allow excessive rotations. If the animation in the bvh files exceeds some rotation limits, this makes the retargeted animation less faithful. On the other hand, the rig may not be built for excessive rotations, so unchecking this option can lead to other problems. * Unlock Rotation: If this option is disabled, MakeWalk honors any rotation locks. If the animation in the bvh files bend around locked axes, this makes the retargeted animation less faithful. If Unlock Rotation is enabled, any X or Z rotation locks are disabled. Y rotation locks (bone twisting) are never disabled. The reason for this is that in the MHX and Rigify rigs, forearm rotation is handled by deform bones controlled by hand twisting. * Auto source rig. The source rig (i.e. the armature defined by the BVH file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Source Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the source rig, based on the structure of the bone hierarchy. * Auto target rig. The target rig (i.e. the armature in the blend file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Target Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the target rig, based on the structure of the bone hierarchy. * Ignore Hidden Layers. Ignore bones on hidden layers when identifying the target rig. === Subsample and Rescale === If the Use Default Subsample option is set, the mocap tool will rescale the animation to fit the current frame rate. However, there are at least two reasons why you may want to load an animation at a different frame rate: * * To obtain a slow-motion or rapid-motion effect. * To quickly load an animation to see if the gross features will work out. If the Use Default Subsample option is disabled, the SubSample section becomes visible. * Subsample. Enable subsampling. * Subsample Factor. If the value of this property is n, only every n:th frame of the BVH animation is loaded. * Rescale. Enable rescaling. * Rescale Factor. If the value of this property is n, the time distance between keyframes is changed to n. * Rescale FCurves. Apply the settings above to existing F-curves rather than to the loaded animation. Rescaling differs from simply scaling F-curves in the F-curve editor. === Simplification === * Simplify FCurves. Remove unnecessary keyframes. * Max Loc Error. The maximal allowed error for location keyframes, in Blender units. A larger error results in fewer keyframes but less accuracy. * Max Rot Error. The maximal allowed error for rotation keyframes, in degrees. A larger error results in fewer keyframes but less accuracy. * Only Visible. Simplification only affect F-curves visible in the Graph editor. * Only Between Markers. Simplification only affects F-curves between the two outermost selected markers. The timeline must have at least two selected markers. ==== Edit panel ==== Loading and retargeting is normally only the first step in the creation of an animation from mocap data. There are many reasons why a loaded animation does not behave exactly the way you want it to: artifacts in the mocap data, differences in armature structure not compensated for correctly by the retargeting process, differences in body stature between the mocap actor and the target character, or simply that the filmed sequence does not do exactly what you intend.. It is of course possible to edit the action directly in the graph editor, but this is unpractical due to the amount of mocap data. The mocap tool offers several possibilities to edit an action at a higher level. These tools are colleted in the Edit Action panel which is located just below the Options panel. [[File:edit-action.png]] === Inverse Kinematics === * Transfer FK => IK: The load and retarget steps transfers an animation from a bvh file to the target character. However, only the FK bones are animated. Press this button to transfer the FK animation to the IK bones. Only works for the advanced MHX armature. If two markers are selected, only the animation between the markers is transferred. * Transfer IK => FK: Transfer the animation back from the IK bones to the FK bones. Useful if the IK animation has been edited, * Clear IK Animation: Remove all keyframes from all IK bones (arms and legs). * Clear FK Animation: Remove all keyframes from all FK bones (arms and legs). === Global Edit === * Shift Animation. Shift the keys for the selected bones at all keyframes.If two markers are selected, only the keyframes between the markers are deleted. * X,Y,Z: F-curves affected by the next button. * Fixate Bone Locations:Replace all location keys by their average. Only selected bones and keyframes between selected markers are affected. * Rescale Factor: Factor used by next button. * Rescale FCurves: Rescale all F-curves by the factor above. This is similar to scaling F-curves in the curve editor, but jumps are treated correctly. E.g., rotations of +180 degrees and -180 degrees are the same, but if we scale an F-curve with a factor two, the intermedate keyframe will have the average rotation 0 degrees, The Rescale FCurves button handles this case correctly. === Local Edit === This section could be called "Poor man's animation layers". A loaded mocap animation usually has imperfections that must be edited, but without changing the overall feel of the motion. The Start Edit button creates a new animation layer where differences from the original motion are stored as keys, called delta keys since delta often denotes a difference. * Start Edit: Start editing F-curves. * Undo Edit: Quit F-curve editing, without modifying the original F-curves. * Loc: Set a location delta keyframe. * Rot: Set a rotation delta keyframe. * LocRot: Set a location and rotation delta keyframe. * Delete: Remove all delta keyframes at the current time. * |<: Move to first delta keyframe * <: Move to previous delta keyframe. * >: Move to next delta keyframe. * >|: Move to last delta keyframe. * Confirm Edit: Modify the original F-curves and quit F-curve editing. The delta keys are represented by markers in the timeline. [[File:mwe-315-local-keys.png]] A delta key can be added with the Loc, Rot and LocRot buttons, and removed with Delete. There is no way to view the delta keys directly. In the viewport and the curve editor, the final pose is shown, which is the sum of the original pose and the delta key. A common use for delta keys is to correct for intersection with other objects or the character herself. The typical workflow is as follows: * * Start Edit. * Set a delta key at a good frame just before the intersection. * Set a delta key at a good frame just after the intersection. * Edit the pose a the frame(s) where intersection occurs. * If the intersection has been removed, Confirm Edit. If not, set new delta keys until it has, or Undo Edit to remove the delta layer. === Feet === * Left: Affect the left foot. * Right: Affect the right foot. * Hips: Affect the characters hip (COM) bone. * Offset Toes: Ensure that the toe is below the ball of the foot at all keyframes. Primarily useful for rigs with a reverse foot setup as explained below. * Keep Feet Above Floor: If a mesh object (typically a plane) is selected, shift the keyframes to keep the affected feet above the plane. The plane does not necessarily lie in the XY plane; if the plane is tilted, the feet are kept on the plane's upper side. If no plane is selected, the feet are kept above the XY plane (z = 0). The IK feet are affected if the rig has and uses IK legs, otherwise the FK feet are kept above the floor. If two markers are selected, only the keyframes inbetween are shifted. In a rig with a reverse foot setup, such as the MHX rig, the foot can rotate around the toe, ball, and heel. The reverse foot and toe bones are completely fixed by the corresponding FK bones, but the IK effector can be placed arbitrarily, as long as it ends at the toe tip. The transfer tool uses this freedom to make the IK effector perfectly horizontal, provided that the toe is below the ball and heel. [[File:refoot.png]] To use this feature we must ensure that the toe is below the ball of the foot, which is done by the Offset Toes button. === Loop And Repeat === !LINK! -- Loop Animation!/LINK! Create a loop of the action between two selected time markers, by blending the keyframes in the beginning and end of the loop. This is useful e.g. to create walk and run cycles for games. For good results, the poses at the beginning and end of the selected region should be similar. * Blend Range: The number of keyframes used for blending. * Loop in place: Remove the X and Y components of the root bone's location. * Loop F-curves: Loop the animation. !LINK! -- Repeat Animation!/LINK! Repeat the action between two selected time markers. The actions should preferably be looped before it is repeated, to make the beginning and end match seamlessly. * Repeat Number: The number of repetitions. * Repeat F-curves: Repeat the animation. === Stitching === Create a new action by stitching two actions together seamlessly. * Update Action List: Update the first and second action drop-down lists. * First Action: The name of the first action. * First End Frame: Last frame of the first action * Set Current Action: Set the first action as the current action. * Second Action: The name of the second action. * Second Start Frame: First frame of the second action. * Set Current Action: Set the second action as the current action. * Action Target: Choose between creating a new action and prepending the second action. * Blend Range: The number of keyframes used for blending. Same parameter as in Loop Animations section. * Output Action Name: * Stitch Actions: Stitch the actions together. === MHBlenderTools: MakeWalk armatures === ==== Source Armature panel ==== MakeWalk transfers an animation from a source armature, defined in a bvh file, to a given target armature. It uses an intermediate standard rig described in!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. The bone map from the source armature to the target armature hence consists of two parts: * A map from the source rig to the standard rig. It is defined in the MakeWalk: Source Armature panel. * A map from the target rig to the standard rig. It is defined in the!LINK!http://makehuman.org/doc/node/makewalk_target_armature_panel.html -- MakeWalk: Target Armature panel!/LINK!. [[File:mws-010-panel.png]] When a new scene is opened, the panel consists of the single button Initialize Source Panel. Once this button has been pressed, the following content is available: [[File:mws-020-auto.png]] * Reinit Source Panel: Reinitialization. * Auto Source Rig: If this option is enabled, MakeWalk will try to identify the source rig automatically. It may happen that MakeWalk fails to identify the source rig automatically, but this is very unusual. If it should nevertheless happen, it is possible to define the bone map manually in analogy with !LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- how it is done for target rigs!/LINK!. * Source rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected source rig (if Auto Source Rig is disabled) or to Automatic. * Bones in the active source rig. ==== Target Armature panel ==== The second part of the mapping from source to target armatures is defined by the panel labelled MH Mocap: Target armature. It is the top-most of the mocap tool panels, and is closed by default. When a new scene is opened, the panel consists of the single button Initialize Target Panel. Once this button has been pressed, the following content is available: [[File:mwt-011-panel.png]] * Reinit Target Panel. Reinitialization. * Target rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected Target rig (if Auto Target rig guessing is disabled), or is set to a matching rig (if automatic target rig identificiation is enabled). * Auto Target Rig. If this option is enabled, MakeWalk will try to identify the target rig automatically. However, automatic rig identification is not trivial for complex rigs, and it may fail. If so, the bone map may be specified manually, cf!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. If the bone map is defined. The target rigs available by default correspond mostly to the rig presets that can be exported from MakeHuman * MHX. An advanced rig from MakeHuman alpha 8. * MH Alpha 7. The MHX rig from MakeHuman alpha 7. * Rigify. * Ignore Hidden Layers: Ignore bones on hidden layers during automatic rig identification. * Reverse Hip. Select this option if the armature has an reverse hip. It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. * Identify Target Rig: Identify the target rig, i.e. find out how bone names in the active armature correspond to the internal names. This step is performed automatically during retargeting, but the identification can also be done separately for debugging purposes. The bone map appears in the area called FK bones below. * Set T-pose. Pose the active armature in T-pose. * Save T-pose. Option used by the next button. * Save Target File. Save the current bone map as a .trg file. If the Save T-pose option is set, also save a json file defining the T-pose. * FK bones. The bone map. The picture below shows automatic rig identification of the Rigify meta-rig (Add > Armature > Advanced Human). [[File:mwt-020-metarig.png]] === MHBlenderTools: MakeWalk troubleshooting. === ==== What if retargeting fails? ==== === Errors and Corrective Actions === This document will describe common errors and corrective actions. It may happen that MakeWalk fails to retarget an animation to a given armature. In that case an error message is displayed. [[File:mwa-100-error.png]] The error message consists of the following: Mocap error Category Detailed error message A link to this page MakeWalk errors are grouped into the following categories: * Load Bvh File * Rename And Rescale * Identify Target Rig * Automatic Target Rig * Manual Target Rig * Identify Source Rig * Retarget * General Error Load Bvh File Rename And Rescale Identify Target Rig === Automatic Target Rig === The most common problem is probably that MakeWalk fails to identify the target rig automatically. There are several possible reasons for this: * The character is not oriented correctly. In the rest pose, the character should be standing with up being the positive Z axis and facing -Y. * The armature is complex with extra bones not corresponding to a standard biped rig. * The armature only has IK arms or legs. MakeWalk retargets animations to the FK limbs, so if no such bones exist, the program will not work. [[File:mwa-110-reverse-hip.png]] It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. [[File:mwa-120-reversehip.png]] The advantage of such a setup is that the upper and lower body can be posed independently. However, MakeWalk failes to identify the bones, unless the Reverse Hip option has been enabled. If automatic bone identification still fails, bone mapping has to be made manually. How this is done is described in the next section. === Defining the Target Rig Manually === Internally, MakeWalk retargets animations to an armature with the following bone hierarchy. Here is a visual illustration of the bone hierarchy: [[File:mwa-010-armature.png]] In order to retarget to an armature with different bone names, we must define a map between the given bones and the internal names. By default, MakeWalk attempts to do this automatically. However, automatic bone mapping may easily be confused for non-trivial rigs. If this happens, one can define the bone map manually. A bone map for a target armature is defined by a .trg file located in the target_rigs folder under the makewalk directory. The folder already contains three files, for retargeting the MHX advanced rig, the MakeHuman, and Rigify. These rigs are too complicated to identify the bone map automatically, so MakeWalk recognizes these rigs and use the predefined bone map. Create a .trg file using an existing file as a template. E.g., a .trg file could look like this: Note that it is not necessary to define maps to all bones. Bone names must not contain spaces, since whitespace is used as a delimiter in the .trg file. If the bones in your armature do contain spaces, replace them by underscore ( _ ). MakeWalk treats space and underscore as equivalent, so this is not a problem, except for very strange naming convention. [[File:mwa-020-myrig.png]] Save the .trg file with the name my_rig.trg in the target_rigs folder and press the Reinit Target Panel button. My_Rig should now appear in the Target rig list. Select it. In the FK bones sections, the My_Rig bone names are now listed. Make sure that the Auto Target Rig option is deselected, to override automatic bone mapping. Finally go to the main panel and press Load And Retarget. The animation should now be loaded. === MHBlenderTools: MakeWalk utilities === ==== Utilities panel ==== This panel contains material that does not naturally fit into the other panels. [[File:mwu-010-panel.png]] === Default Settings === * Save Defaults: Save current settings as the default settings. * Load Defaults: Load the default settings from file. === Manage Actions === * Actions: A list of all actions in the scene, at the time when the Update Action List button was last pressed. * Filter: If selected, only actions belonging to the active character are included in the action list. When the mocap tool creates an action, the first four letters in the action name are taken from the rig name. * Update Action List: * Set Current Action: Set the action selected in the Actions list as the active action. * Delete Action: Permanently delete the action selected in the Actions list. The action must have zero users. It is quite cumbersome to permanently delete actions in Blender. The reason is that creating an action with hand animation takes much work, which should not be lost accidentally. The situation is different with mocap, where it is easy to fill up a blend file with many irrelevant actions. This button makes it easier to clean out such junk motions. * Delete Temporary Actions: Some tools create temporary actions, whose names start with a hash sign (#). Deletes all such actions. === Temporary properties === * Delete Temporary Properties. MakeWalk creates some properties for relevant posebones during retargeting. Pressing this button removes these properties. However, be aware that some of the tools in the Edit panel may fail if the temporrary properties are deleted. The temporary properties for the active posebone can be inspected in the N-panel. [[File:mwu-030-temp-props.png]] * McpBone: The name of this bone in the internal hierarchy. * McpParent: The parent of this bone in the internal hierarchy. * McpQuatW, McpQuatX, McpQuatY, McpQuatZ: The rotation of this bone in T-pose, represented as a quaternion. === T-pose === * Set T-pose: Set the current pose to T-pose. * Clear T-pose: Set the current pose to the default pose. * Load T-pose: Load a T-pose from a .json file to the active armature. * Save T-pose: Save the current pose as a .json file. === Rest Pose === * Current Pose => Rest Pose: Set the current pose to rest pose. 071447dae1a852bdd4ff8fcb58de53506e782a2d 1354 1353 2017-03-15T01:55:10Z Robbaer 12 /* NOTE */ wikitext text/x-wiki ====== NOTE ====== There is a wealth of important information in this document, but some of the detail is badly out of date. Most of the fundamental information is quite usable, nevertheless. Things that need repairing: * Broken links * Reference to armatures in older version of MakeHuman * The MakeWalk tool is now found as a tab on the T-side-panel in Blender ------------------------------------ MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ==== Retargeting: how it works ==== The goal of retargeting is to transfer a motion from a source armature (e.g. from a BVH file) to a given target armature (e.g. the MHX rig). However, it is not straightforward to assign the source action to the target rig, even if the bones have identical names. The motion of each bone is specified in local coordinates, relative to the parent and the bone's own rest pose. If the rest poses of the source and target armatures differ, the source F-curves can not be used directly by the target armature. [[File:makewalk-1.png]] The picture above shows a transformation in the local coordinate system. Since the parent's local Y points along its axis and its local Z points up, the child bone is rotated around the local X axis. This is not very useful if the target armature has a diffent rest pose. To retarget the pose, we therefore reexpress the transformation in the global coordinate system, as shown below. The local X rotation corresponds to a global Y rotation, and by a different angle. Once the global transformation matrix is known, we can reexpress it in the target bone's local coordinate system. The retargeting process thus consists of making two coordinate transformations: Source local => Global => Target local. This will ensure that the source bone and the target bone will have the same global orientation. [[File:makewalk_2.png]] Unfortunately, things are a little more complicated. We do not always want the source and target bones to have identical orientation. In particular, the root or pelvis bone may point in entirely different directions in different armatures. E.g. in the CMU armature rest pose the pelvis points forward-down, and in the MHX rig it points straight up. [[File:makewalk-3.png]] If we insisted that the root bone in the MHX rig would point in the same direction as in the CMU rig, the retargeting would not be very successful, as shown in the figure above. If we instead keep the rotation offset from the rest poses, the target pose becomes much better, as shown below. To calibrate the source and target armature against each other, MalkWalk introduces extra keyframes at frame 0, where both armatures are posed in T-pose. [[File:mcp-ret-060-calibrate.png]] In the rest of the animation, bones in the target armature copy the global rotations of the source armature, apart from differences present in the T-poses. In this way we can transfer animations from CMU to the MHX rig, despite the fact that the rest poses are very different. ==== Basic Workflow ==== === Retargeting === The MakeWalk panels appear in the tool shelf whenever an armature is the active object. Select the armature and press the Load And Retarget button. In the file selector, select the .bvh file. We choose the file 90_04.bvh from the CMU database. It is a cartwheel animation. [[File:makewalk-4.png]] After a short wait, the armature is doing gymnastics. [[File:makewalk-5.png]] At frame 0 of the animation the armature has been placed in T-pose. This is not part of the originial .bvh file, but inserted by MakeWalk to calibrate the source armature (defined by the bvh file) and the target armature (the selected armature in the viewport) against each other. === Supported armatures === MakeWalk works with most straightforward biped rigs with FK arms and legs, such as the Rigify meta-rig. There is also built-in support for some more complex rigs: the MHX advanced rig from MakeHuman, the MHX rig from MakeHuman and Rigify. [[File:makewalk-6.png]] It is often possible to use MakeWalk with other complex rig, but in that case the automatic bone identification may fail. If so, a bone map must be defined manually, see -- [[Defining a Target Rig Manually]]. === Troubleshooting === Retargeting is a rather involved subject, and it can sometimes result in poor motion. The process may even fail completely, usually because MakeWalk failed to automatically identify the bones of a complex rig. If this should happen, see!LINK!http://www.makehumancommunity.org/wiki/Documentation:MakeWalk#Errors_and_Corrective_Actions -- Errors and Corrective Actions!/LINK!. ==== Where to find BVH files ==== There are several different formats that mocap files can be stored in. MakeHuman's mocap tool can only deal with files in Biovision BVH format. BVH files can be bought from many commercial sources, but a large range of mocap files are also available for free download. Here are some sites I found useful. * CMU Graphics Lab Motion Capture Database: Hosted at Carnegie-Mellon University, this is a huge library of mocap files which can be downloaded for free. The web address is!LINK!http://mocap.cs.cmu.edu/ -- http://mocap.cs.cmu.edu!/LINK!. CMU hosts mocap files in three formats: tvd, c3d and amc. However, the mocap tool can only read BVH files, so none of these files can be used directly. Fortunately, B. Hahne at!LINK!http://www.cgspeed.com/ -- www.cgspeed.com!/LINK!has converted the CMU files to BVH. The converted files are located at!LINK!http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture -- http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture!/LINK!. * Advanced Computing Center for the Arts and Design (ACCAD): Hosted at the Ohio State University, this is another great source of free mocap files. BVH files can be downloaded from!LINK!http://accad.osu.edu/research/mocap/mocap_data.htm -- http://accad.osu.edu/research/mocap/mocap_data.htm!/LINK! * Eyes Japan (mocapdata.com):This is a Japanese company that sells mocap data commercially, but they also offer a huge number of motions for free. According to their homepage, mocapdata.com provides 744 premium motion data and 4197 free motion data. The only catch is that downloading requires registration. Not surprisingly, the homepage of mocapdata.com has the address!LINK!http://www.mocapdata.com/ -- http://www.mocapdata.com/!/LINK!. * The Trailer's Park: Free mocap data can also be found at the Trailer's Park,!LINK!http://www.thetrailerspark.com/ -- http://www.thetrailerspark.com!/LINK!. This site does not offer original data, but offer repacks of mocap data from other free sites for download. Free download is limited to some five packs per day, so some patience is required here. * Hochschule der Medien, Universität Bonn (HDM):!LINK!http://www.mpi-inf.mpg.de/resources/HDM05/ -- http://www.mpi-inf.mpg.de/resources/HDM05!/LINK! * The Perfume global site project #001:!LINK!http://perfume-dev.github.com/ -- http://perfume-dev.github.com/!/LINK! === MHBlenderTools: MakeWalk user interface === ==== The user interface ==== The user > interface of MakeWalk is located in under the Armature tab, and becomes visible when an armature is selected. It consists of six panels; the first one is open by default and the others are closed. [[File:makewalk-7_0.png]] * Load And Retarget: Select a BVH file and retarget it to the active armature. * Start Frame: The first frame in the BVH file to considered. * Last Frame: The last frame to be considered, unless the animation stops earlier. The difference last_frame - first_frame is the maximal number of frames after retargeting. The number of frames in the BVH file may be larger, if some frames are skipped due to subsampling * Detailed steps: When this options is selected, further buttons are show below * Load BVH File (.bvh). Load a BVH file, and create an animated armature from it. * Rename And Rescale BVH Rig. With the BVH armature active, and a target armature selected, rename and rescale the bones of the active armature to fit the target. * Load And Rename BVH File (.bvh). A combination of the previous two buttons. With a target armature active, load a BVH file, and create an animated armature with renamed and rescaled bones. * Retarget Selected To Active. Retarget the animation from a renamed and rescaled BVH armature to the active armature. * Simplify FCurves. Simplify the F-curves of the active armature. * Rescale FCurves. Rescale F-curevs of the active armature.What if retargeting fails? MakeWalk is designed to retarget animations to a given armature with a minimum of user intervention. However, retargeting is a complex process, and entirely automatic retargeting may fail or result in suboptimal motion. Information about how to identify and correct problems is found in!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Errors and Corrective Actions!/LINK!. A common problem is that automatic identification of bones in the target armature fails. A bone map can then be assigned manually, cf.!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Defining the Target Rig Manually.!/LINK! ==== Options panel ==== [[File:makewalk-8.png]] * Use Default Subsample. Blender normally plays the animation in 24 fps or 25 fps, but the animation in the BVH file may be recorded at a different speed. In particular, the BVH files from CMU were filmed at 120 fps. Enable this option to have the animation play at natural speed, irrespective of the frame rate in the BVH file. Other subsample options are described below. * Auto scale. Set the scale automatically based on the size of the left thigh. This choice has two motivations: * Almost all character do have a left leg. * The leg size is crucial for making walk cycles look good. * Scale. The default MakeHuman scale is decimeters - 1 unit = 1 decimeter. Translations in a BVH file are expressed in different units; often the base unit is inches, meters or centimeters, but more obscure units can also occur, e.g. in BVH files from CMU. If the scale is set incorrectly, rotations will still be correctly retargeted, but the character will appear to take giant leaps or miniscule steps. * Use Limits: If this option is enabled, MakeWalk honors any Limit Rotation constraints, and will not allow excessive rotations. If the animation in the bvh files exceeds some rotation limits, this makes the retargeted animation less faithful. On the other hand, the rig may not be built for excessive rotations, so unchecking this option can lead to other problems. * Unlock Rotation: If this option is disabled, MakeWalk honors any rotation locks. If the animation in the bvh files bend around locked axes, this makes the retargeted animation less faithful. If Unlock Rotation is enabled, any X or Z rotation locks are disabled. Y rotation locks (bone twisting) are never disabled. The reason for this is that in the MHX and Rigify rigs, forearm rotation is handled by deform bones controlled by hand twisting. * Auto source rig. The source rig (i.e. the armature defined by the BVH file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Source Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the source rig, based on the structure of the bone hierarchy. * Auto target rig. The target rig (i.e. the armature in the blend file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Target Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the target rig, based on the structure of the bone hierarchy. * Ignore Hidden Layers. Ignore bones on hidden layers when identifying the target rig. === Subsample and Rescale === If the Use Default Subsample option is set, the mocap tool will rescale the animation to fit the current frame rate. However, there are at least two reasons why you may want to load an animation at a different frame rate: * * To obtain a slow-motion or rapid-motion effect. * To quickly load an animation to see if the gross features will work out. If the Use Default Subsample option is disabled, the SubSample section becomes visible. * Subsample. Enable subsampling. * Subsample Factor. If the value of this property is n, only every n:th frame of the BVH animation is loaded. * Rescale. Enable rescaling. * Rescale Factor. If the value of this property is n, the time distance between keyframes is changed to n. * Rescale FCurves. Apply the settings above to existing F-curves rather than to the loaded animation. Rescaling differs from simply scaling F-curves in the F-curve editor. === Simplification === * Simplify FCurves. Remove unnecessary keyframes. * Max Loc Error. The maximal allowed error for location keyframes, in Blender units. A larger error results in fewer keyframes but less accuracy. * Max Rot Error. The maximal allowed error for rotation keyframes, in degrees. A larger error results in fewer keyframes but less accuracy. * Only Visible. Simplification only affect F-curves visible in the Graph editor. * Only Between Markers. Simplification only affects F-curves between the two outermost selected markers. The timeline must have at least two selected markers. ==== Edit panel ==== Loading and retargeting is normally only the first step in the creation of an animation from mocap data. There are many reasons why a loaded animation does not behave exactly the way you want it to: artifacts in the mocap data, differences in armature structure not compensated for correctly by the retargeting process, differences in body stature between the mocap actor and the target character, or simply that the filmed sequence does not do exactly what you intend.. It is of course possible to edit the action directly in the graph editor, but this is unpractical due to the amount of mocap data. The mocap tool offers several possibilities to edit an action at a higher level. These tools are colleted in the Edit Action panel which is located just below the Options panel. [[File:edit-action.png]] === Inverse Kinematics === * Transfer FK => IK: The load and retarget steps transfers an animation from a bvh file to the target character. However, only the FK bones are animated. Press this button to transfer the FK animation to the IK bones. Only works for the advanced MHX armature. If two markers are selected, only the animation between the markers is transferred. * Transfer IK => FK: Transfer the animation back from the IK bones to the FK bones. Useful if the IK animation has been edited, * Clear IK Animation: Remove all keyframes from all IK bones (arms and legs). * Clear FK Animation: Remove all keyframes from all FK bones (arms and legs). === Global Edit === * Shift Animation. Shift the keys for the selected bones at all keyframes.If two markers are selected, only the keyframes between the markers are deleted. * X,Y,Z: F-curves affected by the next button. * Fixate Bone Locations:Replace all location keys by their average. Only selected bones and keyframes between selected markers are affected. * Rescale Factor: Factor used by next button. * Rescale FCurves: Rescale all F-curves by the factor above. This is similar to scaling F-curves in the curve editor, but jumps are treated correctly. E.g., rotations of +180 degrees and -180 degrees are the same, but if we scale an F-curve with a factor two, the intermedate keyframe will have the average rotation 0 degrees, The Rescale FCurves button handles this case correctly. === Local Edit === This section could be called "Poor man's animation layers". A loaded mocap animation usually has imperfections that must be edited, but without changing the overall feel of the motion. The Start Edit button creates a new animation layer where differences from the original motion are stored as keys, called delta keys since delta often denotes a difference. * Start Edit: Start editing F-curves. * Undo Edit: Quit F-curve editing, without modifying the original F-curves. * Loc: Set a location delta keyframe. * Rot: Set a rotation delta keyframe. * LocRot: Set a location and rotation delta keyframe. * Delete: Remove all delta keyframes at the current time. * |<: Move to first delta keyframe * <: Move to previous delta keyframe. * >: Move to next delta keyframe. * >|: Move to last delta keyframe. * Confirm Edit: Modify the original F-curves and quit F-curve editing. The delta keys are represented by markers in the timeline. [[File:mwe-315-local-keys.png]] A delta key can be added with the Loc, Rot and LocRot buttons, and removed with Delete. There is no way to view the delta keys directly. In the viewport and the curve editor, the final pose is shown, which is the sum of the original pose and the delta key. A common use for delta keys is to correct for intersection with other objects or the character herself. The typical workflow is as follows: * * Start Edit. * Set a delta key at a good frame just before the intersection. * Set a delta key at a good frame just after the intersection. * Edit the pose a the frame(s) where intersection occurs. * If the intersection has been removed, Confirm Edit. If not, set new delta keys until it has, or Undo Edit to remove the delta layer. === Feet === * Left: Affect the left foot. * Right: Affect the right foot. * Hips: Affect the characters hip (COM) bone. * Offset Toes: Ensure that the toe is below the ball of the foot at all keyframes. Primarily useful for rigs with a reverse foot setup as explained below. * Keep Feet Above Floor: If a mesh object (typically a plane) is selected, shift the keyframes to keep the affected feet above the plane. The plane does not necessarily lie in the XY plane; if the plane is tilted, the feet are kept on the plane's upper side. If no plane is selected, the feet are kept above the XY plane (z = 0). The IK feet are affected if the rig has and uses IK legs, otherwise the FK feet are kept above the floor. If two markers are selected, only the keyframes inbetween are shifted. In a rig with a reverse foot setup, such as the MHX rig, the foot can rotate around the toe, ball, and heel. The reverse foot and toe bones are completely fixed by the corresponding FK bones, but the IK effector can be placed arbitrarily, as long as it ends at the toe tip. The transfer tool uses this freedom to make the IK effector perfectly horizontal, provided that the toe is below the ball and heel. [[File:refoot.png]] To use this feature we must ensure that the toe is below the ball of the foot, which is done by the Offset Toes button. === Loop And Repeat === !LINK! -- Loop Animation!/LINK! Create a loop of the action between two selected time markers, by blending the keyframes in the beginning and end of the loop. This is useful e.g. to create walk and run cycles for games. For good results, the poses at the beginning and end of the selected region should be similar. * Blend Range: The number of keyframes used for blending. * Loop in place: Remove the X and Y components of the root bone's location. * Loop F-curves: Loop the animation. !LINK! -- Repeat Animation!/LINK! Repeat the action between two selected time markers. The actions should preferably be looped before it is repeated, to make the beginning and end match seamlessly. * Repeat Number: The number of repetitions. * Repeat F-curves: Repeat the animation. === Stitching === Create a new action by stitching two actions together seamlessly. * Update Action List: Update the first and second action drop-down lists. * First Action: The name of the first action. * First End Frame: Last frame of the first action * Set Current Action: Set the first action as the current action. * Second Action: The name of the second action. * Second Start Frame: First frame of the second action. * Set Current Action: Set the second action as the current action. * Action Target: Choose between creating a new action and prepending the second action. * Blend Range: The number of keyframes used for blending. Same parameter as in Loop Animations section. * Output Action Name: * Stitch Actions: Stitch the actions together. === MHBlenderTools: MakeWalk armatures === ==== Source Armature panel ==== MakeWalk transfers an animation from a source armature, defined in a bvh file, to a given target armature. It uses an intermediate standard rig described in!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. The bone map from the source armature to the target armature hence consists of two parts: * A map from the source rig to the standard rig. It is defined in the MakeWalk: Source Armature panel. * A map from the target rig to the standard rig. It is defined in the!LINK!http://makehuman.org/doc/node/makewalk_target_armature_panel.html -- MakeWalk: Target Armature panel!/LINK!. [[File:mws-010-panel.png]] When a new scene is opened, the panel consists of the single button Initialize Source Panel. Once this button has been pressed, the following content is available: [[File:mws-020-auto.png]] * Reinit Source Panel: Reinitialization. * Auto Source Rig: If this option is enabled, MakeWalk will try to identify the source rig automatically. It may happen that MakeWalk fails to identify the source rig automatically, but this is very unusual. If it should nevertheless happen, it is possible to define the bone map manually in analogy with !LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- how it is done for target rigs!/LINK!. * Source rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected source rig (if Auto Source Rig is disabled) or to Automatic. * Bones in the active source rig. ==== Target Armature panel ==== The second part of the mapping from source to target armatures is defined by the panel labelled MH Mocap: Target armature. It is the top-most of the mocap tool panels, and is closed by default. When a new scene is opened, the panel consists of the single button Initialize Target Panel. Once this button has been pressed, the following content is available: [[File:mwt-011-panel.png]] * Reinit Target Panel. Reinitialization. * Target rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected Target rig (if Auto Target rig guessing is disabled), or is set to a matching rig (if automatic target rig identificiation is enabled). * Auto Target Rig. If this option is enabled, MakeWalk will try to identify the target rig automatically. However, automatic rig identification is not trivial for complex rigs, and it may fail. If so, the bone map may be specified manually, cf!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. If the bone map is defined. The target rigs available by default correspond mostly to the rig presets that can be exported from MakeHuman * MHX. An advanced rig from MakeHuman alpha 8. * MH Alpha 7. The MHX rig from MakeHuman alpha 7. * Rigify. * Ignore Hidden Layers: Ignore bones on hidden layers during automatic rig identification. * Reverse Hip. Select this option if the armature has an reverse hip. It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. * Identify Target Rig: Identify the target rig, i.e. find out how bone names in the active armature correspond to the internal names. This step is performed automatically during retargeting, but the identification can also be done separately for debugging purposes. The bone map appears in the area called FK bones below. * Set T-pose. Pose the active armature in T-pose. * Save T-pose. Option used by the next button. * Save Target File. Save the current bone map as a .trg file. If the Save T-pose option is set, also save a json file defining the T-pose. * FK bones. The bone map. The picture below shows automatic rig identification of the Rigify meta-rig (Add > Armature > Advanced Human). [[File:mwt-020-metarig.png]] === MHBlenderTools: MakeWalk troubleshooting. === ==== What if retargeting fails? ==== === Errors and Corrective Actions === This document will describe common errors and corrective actions. It may happen that MakeWalk fails to retarget an animation to a given armature. In that case an error message is displayed. [[File:mwa-100-error.png]] The error message consists of the following: Mocap error Category Detailed error message A link to this page MakeWalk errors are grouped into the following categories: * Load Bvh File * Rename And Rescale * Identify Target Rig * Automatic Target Rig * Manual Target Rig * Identify Source Rig * Retarget * General Error Load Bvh File Rename And Rescale Identify Target Rig === Automatic Target Rig === The most common problem is probably that MakeWalk fails to identify the target rig automatically. There are several possible reasons for this: * The character is not oriented correctly. In the rest pose, the character should be standing with up being the positive Z axis and facing -Y. * The armature is complex with extra bones not corresponding to a standard biped rig. * The armature only has IK arms or legs. MakeWalk retargets animations to the FK limbs, so if no such bones exist, the program will not work. [[File:mwa-110-reverse-hip.png]] It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. [[File:mwa-120-reversehip.png]] The advantage of such a setup is that the upper and lower body can be posed independently. However, MakeWalk failes to identify the bones, unless the Reverse Hip option has been enabled. If automatic bone identification still fails, bone mapping has to be made manually. How this is done is described in the next section. === Defining the Target Rig Manually === Internally, MakeWalk retargets animations to an armature with the following bone hierarchy. Here is a visual illustration of the bone hierarchy: [[File:mwa-010-armature.png]] In order to retarget to an armature with different bone names, we must define a map between the given bones and the internal names. By default, MakeWalk attempts to do this automatically. However, automatic bone mapping may easily be confused for non-trivial rigs. If this happens, one can define the bone map manually. A bone map for a target armature is defined by a .trg file located in the target_rigs folder under the makewalk directory. The folder already contains three files, for retargeting the MHX advanced rig, the MakeHuman, and Rigify. These rigs are too complicated to identify the bone map automatically, so MakeWalk recognizes these rigs and use the predefined bone map. Create a .trg file using an existing file as a template. E.g., a .trg file could look like this: Note that it is not necessary to define maps to all bones. Bone names must not contain spaces, since whitespace is used as a delimiter in the .trg file. If the bones in your armature do contain spaces, replace them by underscore ( _ ). MakeWalk treats space and underscore as equivalent, so this is not a problem, except for very strange naming convention. [[File:mwa-020-myrig.png]] Save the .trg file with the name my_rig.trg in the target_rigs folder and press the Reinit Target Panel button. My_Rig should now appear in the Target rig list. Select it. In the FK bones sections, the My_Rig bone names are now listed. Make sure that the Auto Target Rig option is deselected, to override automatic bone mapping. Finally go to the main panel and press Load And Retarget. The animation should now be loaded. === MHBlenderTools: MakeWalk utilities === ==== Utilities panel ==== This panel contains material that does not naturally fit into the other panels. [[File:mwu-010-panel.png]] === Default Settings === * Save Defaults: Save current settings as the default settings. * Load Defaults: Load the default settings from file. === Manage Actions === * Actions: A list of all actions in the scene, at the time when the Update Action List button was last pressed. * Filter: If selected, only actions belonging to the active character are included in the action list. When the mocap tool creates an action, the first four letters in the action name are taken from the rig name. * Update Action List: * Set Current Action: Set the action selected in the Actions list as the active action. * Delete Action: Permanently delete the action selected in the Actions list. The action must have zero users. It is quite cumbersome to permanently delete actions in Blender. The reason is that creating an action with hand animation takes much work, which should not be lost accidentally. The situation is different with mocap, where it is easy to fill up a blend file with many irrelevant actions. This button makes it easier to clean out such junk motions. * Delete Temporary Actions: Some tools create temporary actions, whose names start with a hash sign (#). Deletes all such actions. === Temporary properties === * Delete Temporary Properties. MakeWalk creates some properties for relevant posebones during retargeting. Pressing this button removes these properties. However, be aware that some of the tools in the Edit panel may fail if the temporrary properties are deleted. The temporary properties for the active posebone can be inspected in the N-panel. [[File:mwu-030-temp-props.png]] * McpBone: The name of this bone in the internal hierarchy. * McpParent: The parent of this bone in the internal hierarchy. * McpQuatW, McpQuatX, McpQuatY, McpQuatZ: The rotation of this bone in T-pose, represented as a quaternion. === T-pose === * Set T-pose: Set the current pose to T-pose. * Clear T-pose: Set the current pose to the default pose. * Load T-pose: Load a T-pose from a .json file to the active armature. * Save T-pose: Save the current pose as a .json file. === Rest Pose === * Current Pose => Rest Pose: Set the current pose to rest pose. 6204da1566d7e0de4fe6601c740934c386dd4f8c 1353 1352 2017-03-15T01:48:19Z Robbaer 12 /* Supported armatures */ wikitext text/x-wiki === NOTE === There is a wealth of important information in this document, but some of the detail is badly out of date. Most of the fundamental information is quite usable, nevertheless. Things that need repairing: * Broken links * Reference to armatures in older version of MakeHuman * The MakeWalk tool is now found as a tab on the T-side-panel in Blender ------------------------------------ MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ==== Retargeting: how it works ==== The goal of retargeting is to transfer a motion from a source armature (e.g. from a BVH file) to a given target armature (e.g. the MHX rig). However, it is not straightforward to assign the source action to the target rig, even if the bones have identical names. The motion of each bone is specified in local coordinates, relative to the parent and the bone's own rest pose. If the rest poses of the source and target armatures differ, the source F-curves can not be used directly by the target armature. [[File:makewalk-1.png]] The picture above shows a transformation in the local coordinate system. Since the parent's local Y points along its axis and its local Z points up, the child bone is rotated around the local X axis. This is not very useful if the target armature has a diffent rest pose. To retarget the pose, we therefore reexpress the transformation in the global coordinate system, as shown below. The local X rotation corresponds to a global Y rotation, and by a different angle. Once the global transformation matrix is known, we can reexpress it in the target bone's local coordinate system. The retargeting process thus consists of making two coordinate transformations: Source local => Global => Target local. This will ensure that the source bone and the target bone will have the same global orientation. [[File:makewalk_2.png]] Unfortunately, things are a little more complicated. We do not always want the source and target bones to have identical orientation. In particular, the root or pelvis bone may point in entirely different directions in different armatures. E.g. in the CMU armature rest pose the pelvis points forward-down, and in the MHX rig it points straight up. [[File:makewalk-3.png]] If we insisted that the root bone in the MHX rig would point in the same direction as in the CMU rig, the retargeting would not be very successful, as shown in the figure above. If we instead keep the rotation offset from the rest poses, the target pose becomes much better, as shown below. To calibrate the source and target armature against each other, MalkWalk introduces extra keyframes at frame 0, where both armatures are posed in T-pose. [[File:mcp-ret-060-calibrate.png]] In the rest of the animation, bones in the target armature copy the global rotations of the source armature, apart from differences present in the T-poses. In this way we can transfer animations from CMU to the MHX rig, despite the fact that the rest poses are very different. ==== Basic Workflow ==== === Retargeting === The MakeWalk panels appear in the tool shelf whenever an armature is the active object. Select the armature and press the Load And Retarget button. In the file selector, select the .bvh file. We choose the file 90_04.bvh from the CMU database. It is a cartwheel animation. [[File:makewalk-4.png]] After a short wait, the armature is doing gymnastics. [[File:makewalk-5.png]] At frame 0 of the animation the armature has been placed in T-pose. This is not part of the originial .bvh file, but inserted by MakeWalk to calibrate the source armature (defined by the bvh file) and the target armature (the selected armature in the viewport) against each other. === Supported armatures === MakeWalk works with most straightforward biped rigs with FK arms and legs, such as the Rigify meta-rig. There is also built-in support for some more complex rigs: the MHX advanced rig from MakeHuman, the MHX rig from MakeHuman and Rigify. [[File:makewalk-6.png]] It is often possible to use MakeWalk with other complex rig, but in that case the automatic bone identification may fail. If so, a bone map must be defined manually, see -- [[Defining a Target Rig Manually]]. === Troubleshooting === Retargeting is a rather involved subject, and it can sometimes result in poor motion. The process may even fail completely, usually because MakeWalk failed to automatically identify the bones of a complex rig. If this should happen, see!LINK!http://www.makehumancommunity.org/wiki/Documentation:MakeWalk#Errors_and_Corrective_Actions -- Errors and Corrective Actions!/LINK!. ==== Where to find BVH files ==== There are several different formats that mocap files can be stored in. MakeHuman's mocap tool can only deal with files in Biovision BVH format. BVH files can be bought from many commercial sources, but a large range of mocap files are also available for free download. Here are some sites I found useful. * CMU Graphics Lab Motion Capture Database: Hosted at Carnegie-Mellon University, this is a huge library of mocap files which can be downloaded for free. The web address is!LINK!http://mocap.cs.cmu.edu/ -- http://mocap.cs.cmu.edu!/LINK!. CMU hosts mocap files in three formats: tvd, c3d and amc. However, the mocap tool can only read BVH files, so none of these files can be used directly. Fortunately, B. Hahne at!LINK!http://www.cgspeed.com/ -- www.cgspeed.com!/LINK!has converted the CMU files to BVH. The converted files are located at!LINK!http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture -- http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture!/LINK!. * Advanced Computing Center for the Arts and Design (ACCAD): Hosted at the Ohio State University, this is another great source of free mocap files. BVH files can be downloaded from!LINK!http://accad.osu.edu/research/mocap/mocap_data.htm -- http://accad.osu.edu/research/mocap/mocap_data.htm!/LINK! * Eyes Japan (mocapdata.com):This is a Japanese company that sells mocap data commercially, but they also offer a huge number of motions for free. According to their homepage, mocapdata.com provides 744 premium motion data and 4197 free motion data. The only catch is that downloading requires registration. Not surprisingly, the homepage of mocapdata.com has the address!LINK!http://www.mocapdata.com/ -- http://www.mocapdata.com/!/LINK!. * The Trailer's Park: Free mocap data can also be found at the Trailer's Park,!LINK!http://www.thetrailerspark.com/ -- http://www.thetrailerspark.com!/LINK!. This site does not offer original data, but offer repacks of mocap data from other free sites for download. Free download is limited to some five packs per day, so some patience is required here. * Hochschule der Medien, Universität Bonn (HDM):!LINK!http://www.mpi-inf.mpg.de/resources/HDM05/ -- http://www.mpi-inf.mpg.de/resources/HDM05!/LINK! * The Perfume global site project #001:!LINK!http://perfume-dev.github.com/ -- http://perfume-dev.github.com/!/LINK! === MHBlenderTools: MakeWalk user interface === ==== The user interface ==== The user > interface of MakeWalk is located in under the Armature tab, and becomes visible when an armature is selected. It consists of six panels; the first one is open by default and the others are closed. [[File:makewalk-7_0.png]] * Load And Retarget: Select a BVH file and retarget it to the active armature. * Start Frame: The first frame in the BVH file to considered. * Last Frame: The last frame to be considered, unless the animation stops earlier. The difference last_frame - first_frame is the maximal number of frames after retargeting. The number of frames in the BVH file may be larger, if some frames are skipped due to subsampling * Detailed steps: When this options is selected, further buttons are show below * Load BVH File (.bvh). Load a BVH file, and create an animated armature from it. * Rename And Rescale BVH Rig. With the BVH armature active, and a target armature selected, rename and rescale the bones of the active armature to fit the target. * Load And Rename BVH File (.bvh). A combination of the previous two buttons. With a target armature active, load a BVH file, and create an animated armature with renamed and rescaled bones. * Retarget Selected To Active. Retarget the animation from a renamed and rescaled BVH armature to the active armature. * Simplify FCurves. Simplify the F-curves of the active armature. * Rescale FCurves. Rescale F-curevs of the active armature.What if retargeting fails? MakeWalk is designed to retarget animations to a given armature with a minimum of user intervention. However, retargeting is a complex process, and entirely automatic retargeting may fail or result in suboptimal motion. Information about how to identify and correct problems is found in!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Errors and Corrective Actions!/LINK!. A common problem is that automatic identification of bones in the target armature fails. A bone map can then be assigned manually, cf.!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Defining the Target Rig Manually.!/LINK! ==== Options panel ==== [[File:makewalk-8.png]] * Use Default Subsample. Blender normally plays the animation in 24 fps or 25 fps, but the animation in the BVH file may be recorded at a different speed. In particular, the BVH files from CMU were filmed at 120 fps. Enable this option to have the animation play at natural speed, irrespective of the frame rate in the BVH file. Other subsample options are described below. * Auto scale. Set the scale automatically based on the size of the left thigh. This choice has two motivations: * Almost all character do have a left leg. * The leg size is crucial for making walk cycles look good. * Scale. The default MakeHuman scale is decimeters - 1 unit = 1 decimeter. Translations in a BVH file are expressed in different units; often the base unit is inches, meters or centimeters, but more obscure units can also occur, e.g. in BVH files from CMU. If the scale is set incorrectly, rotations will still be correctly retargeted, but the character will appear to take giant leaps or miniscule steps. * Use Limits: If this option is enabled, MakeWalk honors any Limit Rotation constraints, and will not allow excessive rotations. If the animation in the bvh files exceeds some rotation limits, this makes the retargeted animation less faithful. On the other hand, the rig may not be built for excessive rotations, so unchecking this option can lead to other problems. * Unlock Rotation: If this option is disabled, MakeWalk honors any rotation locks. If the animation in the bvh files bend around locked axes, this makes the retargeted animation less faithful. If Unlock Rotation is enabled, any X or Z rotation locks are disabled. Y rotation locks (bone twisting) are never disabled. The reason for this is that in the MHX and Rigify rigs, forearm rotation is handled by deform bones controlled by hand twisting. * Auto source rig. The source rig (i.e. the armature defined by the BVH file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Source Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the source rig, based on the structure of the bone hierarchy. * Auto target rig. The target rig (i.e. the armature in the blend file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Target Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the target rig, based on the structure of the bone hierarchy. * Ignore Hidden Layers. Ignore bones on hidden layers when identifying the target rig. === Subsample and Rescale === If the Use Default Subsample option is set, the mocap tool will rescale the animation to fit the current frame rate. However, there are at least two reasons why you may want to load an animation at a different frame rate: * * To obtain a slow-motion or rapid-motion effect. * To quickly load an animation to see if the gross features will work out. If the Use Default Subsample option is disabled, the SubSample section becomes visible. * Subsample. Enable subsampling. * Subsample Factor. If the value of this property is n, only every n:th frame of the BVH animation is loaded. * Rescale. Enable rescaling. * Rescale Factor. If the value of this property is n, the time distance between keyframes is changed to n. * Rescale FCurves. Apply the settings above to existing F-curves rather than to the loaded animation. Rescaling differs from simply scaling F-curves in the F-curve editor. === Simplification === * Simplify FCurves. Remove unnecessary keyframes. * Max Loc Error. The maximal allowed error for location keyframes, in Blender units. A larger error results in fewer keyframes but less accuracy. * Max Rot Error. The maximal allowed error for rotation keyframes, in degrees. A larger error results in fewer keyframes but less accuracy. * Only Visible. Simplification only affect F-curves visible in the Graph editor. * Only Between Markers. Simplification only affects F-curves between the two outermost selected markers. The timeline must have at least two selected markers. ==== Edit panel ==== Loading and retargeting is normally only the first step in the creation of an animation from mocap data. There are many reasons why a loaded animation does not behave exactly the way you want it to: artifacts in the mocap data, differences in armature structure not compensated for correctly by the retargeting process, differences in body stature between the mocap actor and the target character, or simply that the filmed sequence does not do exactly what you intend.. It is of course possible to edit the action directly in the graph editor, but this is unpractical due to the amount of mocap data. The mocap tool offers several possibilities to edit an action at a higher level. These tools are colleted in the Edit Action panel which is located just below the Options panel. [[File:edit-action.png]] === Inverse Kinematics === * Transfer FK => IK: The load and retarget steps transfers an animation from a bvh file to the target character. However, only the FK bones are animated. Press this button to transfer the FK animation to the IK bones. Only works for the advanced MHX armature. If two markers are selected, only the animation between the markers is transferred. * Transfer IK => FK: Transfer the animation back from the IK bones to the FK bones. Useful if the IK animation has been edited, * Clear IK Animation: Remove all keyframes from all IK bones (arms and legs). * Clear FK Animation: Remove all keyframes from all FK bones (arms and legs). === Global Edit === * Shift Animation. Shift the keys for the selected bones at all keyframes.If two markers are selected, only the keyframes between the markers are deleted. * X,Y,Z: F-curves affected by the next button. * Fixate Bone Locations:Replace all location keys by their average. Only selected bones and keyframes between selected markers are affected. * Rescale Factor: Factor used by next button. * Rescale FCurves: Rescale all F-curves by the factor above. This is similar to scaling F-curves in the curve editor, but jumps are treated correctly. E.g., rotations of +180 degrees and -180 degrees are the same, but if we scale an F-curve with a factor two, the intermedate keyframe will have the average rotation 0 degrees, The Rescale FCurves button handles this case correctly. === Local Edit === This section could be called "Poor man's animation layers". A loaded mocap animation usually has imperfections that must be edited, but without changing the overall feel of the motion. The Start Edit button creates a new animation layer where differences from the original motion are stored as keys, called delta keys since delta often denotes a difference. * Start Edit: Start editing F-curves. * Undo Edit: Quit F-curve editing, without modifying the original F-curves. * Loc: Set a location delta keyframe. * Rot: Set a rotation delta keyframe. * LocRot: Set a location and rotation delta keyframe. * Delete: Remove all delta keyframes at the current time. * |<: Move to first delta keyframe * <: Move to previous delta keyframe. * >: Move to next delta keyframe. * >|: Move to last delta keyframe. * Confirm Edit: Modify the original F-curves and quit F-curve editing. The delta keys are represented by markers in the timeline. [[File:mwe-315-local-keys.png]] A delta key can be added with the Loc, Rot and LocRot buttons, and removed with Delete. There is no way to view the delta keys directly. In the viewport and the curve editor, the final pose is shown, which is the sum of the original pose and the delta key. A common use for delta keys is to correct for intersection with other objects or the character herself. The typical workflow is as follows: * * Start Edit. * Set a delta key at a good frame just before the intersection. * Set a delta key at a good frame just after the intersection. * Edit the pose a the frame(s) where intersection occurs. * If the intersection has been removed, Confirm Edit. If not, set new delta keys until it has, or Undo Edit to remove the delta layer. === Feet === * Left: Affect the left foot. * Right: Affect the right foot. * Hips: Affect the characters hip (COM) bone. * Offset Toes: Ensure that the toe is below the ball of the foot at all keyframes. Primarily useful for rigs with a reverse foot setup as explained below. * Keep Feet Above Floor: If a mesh object (typically a plane) is selected, shift the keyframes to keep the affected feet above the plane. The plane does not necessarily lie in the XY plane; if the plane is tilted, the feet are kept on the plane's upper side. If no plane is selected, the feet are kept above the XY plane (z = 0). The IK feet are affected if the rig has and uses IK legs, otherwise the FK feet are kept above the floor. If two markers are selected, only the keyframes inbetween are shifted. In a rig with a reverse foot setup, such as the MHX rig, the foot can rotate around the toe, ball, and heel. The reverse foot and toe bones are completely fixed by the corresponding FK bones, but the IK effector can be placed arbitrarily, as long as it ends at the toe tip. The transfer tool uses this freedom to make the IK effector perfectly horizontal, provided that the toe is below the ball and heel. [[File:refoot.png]] To use this feature we must ensure that the toe is below the ball of the foot, which is done by the Offset Toes button. === Loop And Repeat === !LINK! -- Loop Animation!/LINK! Create a loop of the action between two selected time markers, by blending the keyframes in the beginning and end of the loop. This is useful e.g. to create walk and run cycles for games. For good results, the poses at the beginning and end of the selected region should be similar. * Blend Range: The number of keyframes used for blending. * Loop in place: Remove the X and Y components of the root bone's location. * Loop F-curves: Loop the animation. !LINK! -- Repeat Animation!/LINK! Repeat the action between two selected time markers. The actions should preferably be looped before it is repeated, to make the beginning and end match seamlessly. * Repeat Number: The number of repetitions. * Repeat F-curves: Repeat the animation. === Stitching === Create a new action by stitching two actions together seamlessly. * Update Action List: Update the first and second action drop-down lists. * First Action: The name of the first action. * First End Frame: Last frame of the first action * Set Current Action: Set the first action as the current action. * Second Action: The name of the second action. * Second Start Frame: First frame of the second action. * Set Current Action: Set the second action as the current action. * Action Target: Choose between creating a new action and prepending the second action. * Blend Range: The number of keyframes used for blending. Same parameter as in Loop Animations section. * Output Action Name: * Stitch Actions: Stitch the actions together. === MHBlenderTools: MakeWalk armatures === ==== Source Armature panel ==== MakeWalk transfers an animation from a source armature, defined in a bvh file, to a given target armature. It uses an intermediate standard rig described in!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. The bone map from the source armature to the target armature hence consists of two parts: * A map from the source rig to the standard rig. It is defined in the MakeWalk: Source Armature panel. * A map from the target rig to the standard rig. It is defined in the!LINK!http://makehuman.org/doc/node/makewalk_target_armature_panel.html -- MakeWalk: Target Armature panel!/LINK!. [[File:mws-010-panel.png]] When a new scene is opened, the panel consists of the single button Initialize Source Panel. Once this button has been pressed, the following content is available: [[File:mws-020-auto.png]] * Reinit Source Panel: Reinitialization. * Auto Source Rig: If this option is enabled, MakeWalk will try to identify the source rig automatically. It may happen that MakeWalk fails to identify the source rig automatically, but this is very unusual. If it should nevertheless happen, it is possible to define the bone map manually in analogy with !LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- how it is done for target rigs!/LINK!. * Source rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected source rig (if Auto Source Rig is disabled) or to Automatic. * Bones in the active source rig. ==== Target Armature panel ==== The second part of the mapping from source to target armatures is defined by the panel labelled MH Mocap: Target armature. It is the top-most of the mocap tool panels, and is closed by default. When a new scene is opened, the panel consists of the single button Initialize Target Panel. Once this button has been pressed, the following content is available: [[File:mwt-011-panel.png]] * Reinit Target Panel. Reinitialization. * Target rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected Target rig (if Auto Target rig guessing is disabled), or is set to a matching rig (if automatic target rig identificiation is enabled). * Auto Target Rig. If this option is enabled, MakeWalk will try to identify the target rig automatically. However, automatic rig identification is not trivial for complex rigs, and it may fail. If so, the bone map may be specified manually, cf!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. If the bone map is defined. The target rigs available by default correspond mostly to the rig presets that can be exported from MakeHuman * MHX. An advanced rig from MakeHuman alpha 8. * MH Alpha 7. The MHX rig from MakeHuman alpha 7. * Rigify. * Ignore Hidden Layers: Ignore bones on hidden layers during automatic rig identification. * Reverse Hip. Select this option if the armature has an reverse hip. It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. * Identify Target Rig: Identify the target rig, i.e. find out how bone names in the active armature correspond to the internal names. This step is performed automatically during retargeting, but the identification can also be done separately for debugging purposes. The bone map appears in the area called FK bones below. * Set T-pose. Pose the active armature in T-pose. * Save T-pose. Option used by the next button. * Save Target File. Save the current bone map as a .trg file. If the Save T-pose option is set, also save a json file defining the T-pose. * FK bones. The bone map. The picture below shows automatic rig identification of the Rigify meta-rig (Add > Armature > Advanced Human). [[File:mwt-020-metarig.png]] === MHBlenderTools: MakeWalk troubleshooting. === ==== What if retargeting fails? ==== === Errors and Corrective Actions === This document will describe common errors and corrective actions. It may happen that MakeWalk fails to retarget an animation to a given armature. In that case an error message is displayed. [[File:mwa-100-error.png]] The error message consists of the following: Mocap error Category Detailed error message A link to this page MakeWalk errors are grouped into the following categories: * Load Bvh File * Rename And Rescale * Identify Target Rig * Automatic Target Rig * Manual Target Rig * Identify Source Rig * Retarget * General Error Load Bvh File Rename And Rescale Identify Target Rig === Automatic Target Rig === The most common problem is probably that MakeWalk fails to identify the target rig automatically. There are several possible reasons for this: * The character is not oriented correctly. In the rest pose, the character should be standing with up being the positive Z axis and facing -Y. * The armature is complex with extra bones not corresponding to a standard biped rig. * The armature only has IK arms or legs. MakeWalk retargets animations to the FK limbs, so if no such bones exist, the program will not work. [[File:mwa-110-reverse-hip.png]] It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. [[File:mwa-120-reversehip.png]] The advantage of such a setup is that the upper and lower body can be posed independently. However, MakeWalk failes to identify the bones, unless the Reverse Hip option has been enabled. If automatic bone identification still fails, bone mapping has to be made manually. How this is done is described in the next section. === Defining the Target Rig Manually === Internally, MakeWalk retargets animations to an armature with the following bone hierarchy. Here is a visual illustration of the bone hierarchy: [[File:mwa-010-armature.png]] In order to retarget to an armature with different bone names, we must define a map between the given bones and the internal names. By default, MakeWalk attempts to do this automatically. However, automatic bone mapping may easily be confused for non-trivial rigs. If this happens, one can define the bone map manually. A bone map for a target armature is defined by a .trg file located in the target_rigs folder under the makewalk directory. The folder already contains three files, for retargeting the MHX advanced rig, the MakeHuman, and Rigify. These rigs are too complicated to identify the bone map automatically, so MakeWalk recognizes these rigs and use the predefined bone map. Create a .trg file using an existing file as a template. E.g., a .trg file could look like this: Note that it is not necessary to define maps to all bones. Bone names must not contain spaces, since whitespace is used as a delimiter in the .trg file. If the bones in your armature do contain spaces, replace them by underscore ( _ ). MakeWalk treats space and underscore as equivalent, so this is not a problem, except for very strange naming convention. [[File:mwa-020-myrig.png]] Save the .trg file with the name my_rig.trg in the target_rigs folder and press the Reinit Target Panel button. My_Rig should now appear in the Target rig list. Select it. In the FK bones sections, the My_Rig bone names are now listed. Make sure that the Auto Target Rig option is deselected, to override automatic bone mapping. Finally go to the main panel and press Load And Retarget. The animation should now be loaded. === MHBlenderTools: MakeWalk utilities === ==== Utilities panel ==== This panel contains material that does not naturally fit into the other panels. [[File:mwu-010-panel.png]] === Default Settings === * Save Defaults: Save current settings as the default settings. * Load Defaults: Load the default settings from file. === Manage Actions === * Actions: A list of all actions in the scene, at the time when the Update Action List button was last pressed. * Filter: If selected, only actions belonging to the active character are included in the action list. When the mocap tool creates an action, the first four letters in the action name are taken from the rig name. * Update Action List: * Set Current Action: Set the action selected in the Actions list as the active action. * Delete Action: Permanently delete the action selected in the Actions list. The action must have zero users. It is quite cumbersome to permanently delete actions in Blender. The reason is that creating an action with hand animation takes much work, which should not be lost accidentally. The situation is different with mocap, where it is easy to fill up a blend file with many irrelevant actions. This button makes it easier to clean out such junk motions. * Delete Temporary Actions: Some tools create temporary actions, whose names start with a hash sign (#). Deletes all such actions. === Temporary properties === * Delete Temporary Properties. MakeWalk creates some properties for relevant posebones during retargeting. Pressing this button removes these properties. However, be aware that some of the tools in the Edit panel may fail if the temporrary properties are deleted. The temporary properties for the active posebone can be inspected in the N-panel. [[File:mwu-030-temp-props.png]] * McpBone: The name of this bone in the internal hierarchy. * McpParent: The parent of this bone in the internal hierarchy. * McpQuatW, McpQuatX, McpQuatY, McpQuatZ: The rotation of this bone in T-pose, represented as a quaternion. === T-pose === * Set T-pose: Set the current pose to T-pose. * Clear T-pose: Set the current pose to the default pose. * Load T-pose: Load a T-pose from a .json file to the active armature. * Save T-pose: Save the current pose as a .json file. === Rest Pose === * Current Pose => Rest Pose: Set the current pose to rest pose. 808ed583a73c26825cc22345664faa20a94a0b94 1352 1351 2017-03-15T01:36:24Z Robbaer 12 /* Troubleshooting */ wikitext text/x-wiki === NOTE === There is a wealth of important information in this document, but some of the detail is badly out of date. Most of the fundamental information is quite usable, nevertheless. Things that need repairing: * Broken links * Reference to armatures in older version of MakeHuman * The MakeWalk tool is now found as a tab on the T-side-panel in Blender ------------------------------------ MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ==== Retargeting: how it works ==== The goal of retargeting is to transfer a motion from a source armature (e.g. from a BVH file) to a given target armature (e.g. the MHX rig). However, it is not straightforward to assign the source action to the target rig, even if the bones have identical names. The motion of each bone is specified in local coordinates, relative to the parent and the bone's own rest pose. If the rest poses of the source and target armatures differ, the source F-curves can not be used directly by the target armature. [[File:makewalk-1.png]] The picture above shows a transformation in the local coordinate system. Since the parent's local Y points along its axis and its local Z points up, the child bone is rotated around the local X axis. This is not very useful if the target armature has a diffent rest pose. To retarget the pose, we therefore reexpress the transformation in the global coordinate system, as shown below. The local X rotation corresponds to a global Y rotation, and by a different angle. Once the global transformation matrix is known, we can reexpress it in the target bone's local coordinate system. The retargeting process thus consists of making two coordinate transformations: Source local => Global => Target local. This will ensure that the source bone and the target bone will have the same global orientation. [[File:makewalk_2.png]] Unfortunately, things are a little more complicated. We do not always want the source and target bones to have identical orientation. In particular, the root or pelvis bone may point in entirely different directions in different armatures. E.g. in the CMU armature rest pose the pelvis points forward-down, and in the MHX rig it points straight up. [[File:makewalk-3.png]] If we insisted that the root bone in the MHX rig would point in the same direction as in the CMU rig, the retargeting would not be very successful, as shown in the figure above. If we instead keep the rotation offset from the rest poses, the target pose becomes much better, as shown below. To calibrate the source and target armature against each other, MalkWalk introduces extra keyframes at frame 0, where both armatures are posed in T-pose. [[File:mcp-ret-060-calibrate.png]] In the rest of the animation, bones in the target armature copy the global rotations of the source armature, apart from differences present in the T-poses. In this way we can transfer animations from CMU to the MHX rig, despite the fact that the rest poses are very different. ==== Basic Workflow ==== === Retargeting === The MakeWalk panels appear in the tool shelf whenever an armature is the active object. Select the armature and press the Load And Retarget button. In the file selector, select the .bvh file. We choose the file 90_04.bvh from the CMU database. It is a cartwheel animation. [[File:makewalk-4.png]] After a short wait, the armature is doing gymnastics. [[File:makewalk-5.png]] At frame 0 of the animation the armature has been placed in T-pose. This is not part of the originial .bvh file, but inserted by MakeWalk to calibrate the source armature (defined by the bvh file) and the target armature (the selected armature in the viewport) against each other. === Supported armatures === MakeWalk works with most straightforward biped rigs with FK arms and legs, such as the Rigify meta-rig. There is also built-in support for some more complex rigs: the MHX advanced rig from MakeHuman, the MHX rig from MakeHuman and Rigify. [[File:makewalk-6.png]] It is often possible to use MakeWalk with other complex rig, but in that case the automatic bone identification may fail. If so, a bone map must be defined manually, see!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining a Target Rig Manually!/LINK!. === Troubleshooting === Retargeting is a rather involved subject, and it can sometimes result in poor motion. The process may even fail completely, usually because MakeWalk failed to automatically identify the bones of a complex rig. If this should happen, see!LINK!http://www.makehumancommunity.org/wiki/Documentation:MakeWalk#Errors_and_Corrective_Actions -- Errors and Corrective Actions!/LINK!. ==== Where to find BVH files ==== There are several different formats that mocap files can be stored in. MakeHuman's mocap tool can only deal with files in Biovision BVH format. BVH files can be bought from many commercial sources, but a large range of mocap files are also available for free download. Here are some sites I found useful. * CMU Graphics Lab Motion Capture Database: Hosted at Carnegie-Mellon University, this is a huge library of mocap files which can be downloaded for free. The web address is!LINK!http://mocap.cs.cmu.edu/ -- http://mocap.cs.cmu.edu!/LINK!. CMU hosts mocap files in three formats: tvd, c3d and amc. However, the mocap tool can only read BVH files, so none of these files can be used directly. Fortunately, B. Hahne at!LINK!http://www.cgspeed.com/ -- www.cgspeed.com!/LINK!has converted the CMU files to BVH. The converted files are located at!LINK!http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture -- http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture!/LINK!. * Advanced Computing Center for the Arts and Design (ACCAD): Hosted at the Ohio State University, this is another great source of free mocap files. BVH files can be downloaded from!LINK!http://accad.osu.edu/research/mocap/mocap_data.htm -- http://accad.osu.edu/research/mocap/mocap_data.htm!/LINK! * Eyes Japan (mocapdata.com):This is a Japanese company that sells mocap data commercially, but they also offer a huge number of motions for free. According to their homepage, mocapdata.com provides 744 premium motion data and 4197 free motion data. The only catch is that downloading requires registration. Not surprisingly, the homepage of mocapdata.com has the address!LINK!http://www.mocapdata.com/ -- http://www.mocapdata.com/!/LINK!. * The Trailer's Park: Free mocap data can also be found at the Trailer's Park,!LINK!http://www.thetrailerspark.com/ -- http://www.thetrailerspark.com!/LINK!. This site does not offer original data, but offer repacks of mocap data from other free sites for download. Free download is limited to some five packs per day, so some patience is required here. * Hochschule der Medien, Universität Bonn (HDM):!LINK!http://www.mpi-inf.mpg.de/resources/HDM05/ -- http://www.mpi-inf.mpg.de/resources/HDM05!/LINK! * The Perfume global site project #001:!LINK!http://perfume-dev.github.com/ -- http://perfume-dev.github.com/!/LINK! === MHBlenderTools: MakeWalk user interface === ==== The user interface ==== The user > interface of MakeWalk is located in under the Armature tab, and becomes visible when an armature is selected. It consists of six panels; the first one is open by default and the others are closed. [[File:makewalk-7_0.png]] * Load And Retarget: Select a BVH file and retarget it to the active armature. * Start Frame: The first frame in the BVH file to considered. * Last Frame: The last frame to be considered, unless the animation stops earlier. The difference last_frame - first_frame is the maximal number of frames after retargeting. The number of frames in the BVH file may be larger, if some frames are skipped due to subsampling * Detailed steps: When this options is selected, further buttons are show below * Load BVH File (.bvh). Load a BVH file, and create an animated armature from it. * Rename And Rescale BVH Rig. With the BVH armature active, and a target armature selected, rename and rescale the bones of the active armature to fit the target. * Load And Rename BVH File (.bvh). A combination of the previous two buttons. With a target armature active, load a BVH file, and create an animated armature with renamed and rescaled bones. * Retarget Selected To Active. Retarget the animation from a renamed and rescaled BVH armature to the active armature. * Simplify FCurves. Simplify the F-curves of the active armature. * Rescale FCurves. Rescale F-curevs of the active armature.What if retargeting fails? MakeWalk is designed to retarget animations to a given armature with a minimum of user intervention. However, retargeting is a complex process, and entirely automatic retargeting may fail or result in suboptimal motion. Information about how to identify and correct problems is found in!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Errors and Corrective Actions!/LINK!. A common problem is that automatic identification of bones in the target armature fails. A bone map can then be assigned manually, cf.!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Defining the Target Rig Manually.!/LINK! ==== Options panel ==== [[File:makewalk-8.png]] * Use Default Subsample. Blender normally plays the animation in 24 fps or 25 fps, but the animation in the BVH file may be recorded at a different speed. In particular, the BVH files from CMU were filmed at 120 fps. Enable this option to have the animation play at natural speed, irrespective of the frame rate in the BVH file. Other subsample options are described below. * Auto scale. Set the scale automatically based on the size of the left thigh. This choice has two motivations: * Almost all character do have a left leg. * The leg size is crucial for making walk cycles look good. * Scale. The default MakeHuman scale is decimeters - 1 unit = 1 decimeter. Translations in a BVH file are expressed in different units; often the base unit is inches, meters or centimeters, but more obscure units can also occur, e.g. in BVH files from CMU. If the scale is set incorrectly, rotations will still be correctly retargeted, but the character will appear to take giant leaps or miniscule steps. * Use Limits: If this option is enabled, MakeWalk honors any Limit Rotation constraints, and will not allow excessive rotations. If the animation in the bvh files exceeds some rotation limits, this makes the retargeted animation less faithful. On the other hand, the rig may not be built for excessive rotations, so unchecking this option can lead to other problems. * Unlock Rotation: If this option is disabled, MakeWalk honors any rotation locks. If the animation in the bvh files bend around locked axes, this makes the retargeted animation less faithful. If Unlock Rotation is enabled, any X or Z rotation locks are disabled. Y rotation locks (bone twisting) are never disabled. The reason for this is that in the MHX and Rigify rigs, forearm rotation is handled by deform bones controlled by hand twisting. * Auto source rig. The source rig (i.e. the armature defined by the BVH file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Source Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the source rig, based on the structure of the bone hierarchy. * Auto target rig. The target rig (i.e. the armature in the blend file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Target Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the target rig, based on the structure of the bone hierarchy. * Ignore Hidden Layers. Ignore bones on hidden layers when identifying the target rig. === Subsample and Rescale === If the Use Default Subsample option is set, the mocap tool will rescale the animation to fit the current frame rate. However, there are at least two reasons why you may want to load an animation at a different frame rate: * * To obtain a slow-motion or rapid-motion effect. * To quickly load an animation to see if the gross features will work out. If the Use Default Subsample option is disabled, the SubSample section becomes visible. * Subsample. Enable subsampling. * Subsample Factor. If the value of this property is n, only every n:th frame of the BVH animation is loaded. * Rescale. Enable rescaling. * Rescale Factor. If the value of this property is n, the time distance between keyframes is changed to n. * Rescale FCurves. Apply the settings above to existing F-curves rather than to the loaded animation. Rescaling differs from simply scaling F-curves in the F-curve editor. === Simplification === * Simplify FCurves. Remove unnecessary keyframes. * Max Loc Error. The maximal allowed error for location keyframes, in Blender units. A larger error results in fewer keyframes but less accuracy. * Max Rot Error. The maximal allowed error for rotation keyframes, in degrees. A larger error results in fewer keyframes but less accuracy. * Only Visible. Simplification only affect F-curves visible in the Graph editor. * Only Between Markers. Simplification only affects F-curves between the two outermost selected markers. The timeline must have at least two selected markers. ==== Edit panel ==== Loading and retargeting is normally only the first step in the creation of an animation from mocap data. There are many reasons why a loaded animation does not behave exactly the way you want it to: artifacts in the mocap data, differences in armature structure not compensated for correctly by the retargeting process, differences in body stature between the mocap actor and the target character, or simply that the filmed sequence does not do exactly what you intend.. It is of course possible to edit the action directly in the graph editor, but this is unpractical due to the amount of mocap data. The mocap tool offers several possibilities to edit an action at a higher level. These tools are colleted in the Edit Action panel which is located just below the Options panel. [[File:edit-action.png]] === Inverse Kinematics === * Transfer FK => IK: The load and retarget steps transfers an animation from a bvh file to the target character. However, only the FK bones are animated. Press this button to transfer the FK animation to the IK bones. Only works for the advanced MHX armature. If two markers are selected, only the animation between the markers is transferred. * Transfer IK => FK: Transfer the animation back from the IK bones to the FK bones. Useful if the IK animation has been edited, * Clear IK Animation: Remove all keyframes from all IK bones (arms and legs). * Clear FK Animation: Remove all keyframes from all FK bones (arms and legs). === Global Edit === * Shift Animation. Shift the keys for the selected bones at all keyframes.If two markers are selected, only the keyframes between the markers are deleted. * X,Y,Z: F-curves affected by the next button. * Fixate Bone Locations:Replace all location keys by their average. Only selected bones and keyframes between selected markers are affected. * Rescale Factor: Factor used by next button. * Rescale FCurves: Rescale all F-curves by the factor above. This is similar to scaling F-curves in the curve editor, but jumps are treated correctly. E.g., rotations of +180 degrees and -180 degrees are the same, but if we scale an F-curve with a factor two, the intermedate keyframe will have the average rotation 0 degrees, The Rescale FCurves button handles this case correctly. === Local Edit === This section could be called "Poor man's animation layers". A loaded mocap animation usually has imperfections that must be edited, but without changing the overall feel of the motion. The Start Edit button creates a new animation layer where differences from the original motion are stored as keys, called delta keys since delta often denotes a difference. * Start Edit: Start editing F-curves. * Undo Edit: Quit F-curve editing, without modifying the original F-curves. * Loc: Set a location delta keyframe. * Rot: Set a rotation delta keyframe. * LocRot: Set a location and rotation delta keyframe. * Delete: Remove all delta keyframes at the current time. * |<: Move to first delta keyframe * <: Move to previous delta keyframe. * >: Move to next delta keyframe. * >|: Move to last delta keyframe. * Confirm Edit: Modify the original F-curves and quit F-curve editing. The delta keys are represented by markers in the timeline. [[File:mwe-315-local-keys.png]] A delta key can be added with the Loc, Rot and LocRot buttons, and removed with Delete. There is no way to view the delta keys directly. In the viewport and the curve editor, the final pose is shown, which is the sum of the original pose and the delta key. A common use for delta keys is to correct for intersection with other objects or the character herself. The typical workflow is as follows: * * Start Edit. * Set a delta key at a good frame just before the intersection. * Set a delta key at a good frame just after the intersection. * Edit the pose a the frame(s) where intersection occurs. * If the intersection has been removed, Confirm Edit. If not, set new delta keys until it has, or Undo Edit to remove the delta layer. === Feet === * Left: Affect the left foot. * Right: Affect the right foot. * Hips: Affect the characters hip (COM) bone. * Offset Toes: Ensure that the toe is below the ball of the foot at all keyframes. Primarily useful for rigs with a reverse foot setup as explained below. * Keep Feet Above Floor: If a mesh object (typically a plane) is selected, shift the keyframes to keep the affected feet above the plane. The plane does not necessarily lie in the XY plane; if the plane is tilted, the feet are kept on the plane's upper side. If no plane is selected, the feet are kept above the XY plane (z = 0). The IK feet are affected if the rig has and uses IK legs, otherwise the FK feet are kept above the floor. If two markers are selected, only the keyframes inbetween are shifted. In a rig with a reverse foot setup, such as the MHX rig, the foot can rotate around the toe, ball, and heel. The reverse foot and toe bones are completely fixed by the corresponding FK bones, but the IK effector can be placed arbitrarily, as long as it ends at the toe tip. The transfer tool uses this freedom to make the IK effector perfectly horizontal, provided that the toe is below the ball and heel. [[File:refoot.png]] To use this feature we must ensure that the toe is below the ball of the foot, which is done by the Offset Toes button. === Loop And Repeat === !LINK! -- Loop Animation!/LINK! Create a loop of the action between two selected time markers, by blending the keyframes in the beginning and end of the loop. This is useful e.g. to create walk and run cycles for games. For good results, the poses at the beginning and end of the selected region should be similar. * Blend Range: The number of keyframes used for blending. * Loop in place: Remove the X and Y components of the root bone's location. * Loop F-curves: Loop the animation. !LINK! -- Repeat Animation!/LINK! Repeat the action between two selected time markers. The actions should preferably be looped before it is repeated, to make the beginning and end match seamlessly. * Repeat Number: The number of repetitions. * Repeat F-curves: Repeat the animation. === Stitching === Create a new action by stitching two actions together seamlessly. * Update Action List: Update the first and second action drop-down lists. * First Action: The name of the first action. * First End Frame: Last frame of the first action * Set Current Action: Set the first action as the current action. * Second Action: The name of the second action. * Second Start Frame: First frame of the second action. * Set Current Action: Set the second action as the current action. * Action Target: Choose between creating a new action and prepending the second action. * Blend Range: The number of keyframes used for blending. Same parameter as in Loop Animations section. * Output Action Name: * Stitch Actions: Stitch the actions together. === MHBlenderTools: MakeWalk armatures === ==== Source Armature panel ==== MakeWalk transfers an animation from a source armature, defined in a bvh file, to a given target armature. It uses an intermediate standard rig described in!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. The bone map from the source armature to the target armature hence consists of two parts: * A map from the source rig to the standard rig. It is defined in the MakeWalk: Source Armature panel. * A map from the target rig to the standard rig. It is defined in the!LINK!http://makehuman.org/doc/node/makewalk_target_armature_panel.html -- MakeWalk: Target Armature panel!/LINK!. [[File:mws-010-panel.png]] When a new scene is opened, the panel consists of the single button Initialize Source Panel. Once this button has been pressed, the following content is available: [[File:mws-020-auto.png]] * Reinit Source Panel: Reinitialization. * Auto Source Rig: If this option is enabled, MakeWalk will try to identify the source rig automatically. It may happen that MakeWalk fails to identify the source rig automatically, but this is very unusual. If it should nevertheless happen, it is possible to define the bone map manually in analogy with !LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- how it is done for target rigs!/LINK!. * Source rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected source rig (if Auto Source Rig is disabled) or to Automatic. * Bones in the active source rig. ==== Target Armature panel ==== The second part of the mapping from source to target armatures is defined by the panel labelled MH Mocap: Target armature. It is the top-most of the mocap tool panels, and is closed by default. When a new scene is opened, the panel consists of the single button Initialize Target Panel. Once this button has been pressed, the following content is available: [[File:mwt-011-panel.png]] * Reinit Target Panel. Reinitialization. * Target rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected Target rig (if Auto Target rig guessing is disabled), or is set to a matching rig (if automatic target rig identificiation is enabled). * Auto Target Rig. If this option is enabled, MakeWalk will try to identify the target rig automatically. However, automatic rig identification is not trivial for complex rigs, and it may fail. If so, the bone map may be specified manually, cf!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. If the bone map is defined. The target rigs available by default correspond mostly to the rig presets that can be exported from MakeHuman * MHX. An advanced rig from MakeHuman alpha 8. * MH Alpha 7. The MHX rig from MakeHuman alpha 7. * Rigify. * Ignore Hidden Layers: Ignore bones on hidden layers during automatic rig identification. * Reverse Hip. Select this option if the armature has an reverse hip. It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. * Identify Target Rig: Identify the target rig, i.e. find out how bone names in the active armature correspond to the internal names. This step is performed automatically during retargeting, but the identification can also be done separately for debugging purposes. The bone map appears in the area called FK bones below. * Set T-pose. Pose the active armature in T-pose. * Save T-pose. Option used by the next button. * Save Target File. Save the current bone map as a .trg file. If the Save T-pose option is set, also save a json file defining the T-pose. * FK bones. The bone map. The picture below shows automatic rig identification of the Rigify meta-rig (Add > Armature > Advanced Human). [[File:mwt-020-metarig.png]] === MHBlenderTools: MakeWalk troubleshooting. === ==== What if retargeting fails? ==== === Errors and Corrective Actions === This document will describe common errors and corrective actions. It may happen that MakeWalk fails to retarget an animation to a given armature. In that case an error message is displayed. [[File:mwa-100-error.png]] The error message consists of the following: Mocap error Category Detailed error message A link to this page MakeWalk errors are grouped into the following categories: * Load Bvh File * Rename And Rescale * Identify Target Rig * Automatic Target Rig * Manual Target Rig * Identify Source Rig * Retarget * General Error Load Bvh File Rename And Rescale Identify Target Rig === Automatic Target Rig === The most common problem is probably that MakeWalk fails to identify the target rig automatically. There are several possible reasons for this: * The character is not oriented correctly. In the rest pose, the character should be standing with up being the positive Z axis and facing -Y. * The armature is complex with extra bones not corresponding to a standard biped rig. * The armature only has IK arms or legs. MakeWalk retargets animations to the FK limbs, so if no such bones exist, the program will not work. [[File:mwa-110-reverse-hip.png]] It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. [[File:mwa-120-reversehip.png]] The advantage of such a setup is that the upper and lower body can be posed independently. However, MakeWalk failes to identify the bones, unless the Reverse Hip option has been enabled. If automatic bone identification still fails, bone mapping has to be made manually. How this is done is described in the next section. === Defining the Target Rig Manually === Internally, MakeWalk retargets animations to an armature with the following bone hierarchy. Here is a visual illustration of the bone hierarchy: [[File:mwa-010-armature.png]] In order to retarget to an armature with different bone names, we must define a map between the given bones and the internal names. By default, MakeWalk attempts to do this automatically. However, automatic bone mapping may easily be confused for non-trivial rigs. If this happens, one can define the bone map manually. A bone map for a target armature is defined by a .trg file located in the target_rigs folder under the makewalk directory. The folder already contains three files, for retargeting the MHX advanced rig, the MakeHuman, and Rigify. These rigs are too complicated to identify the bone map automatically, so MakeWalk recognizes these rigs and use the predefined bone map. Create a .trg file using an existing file as a template. E.g., a .trg file could look like this: Note that it is not necessary to define maps to all bones. Bone names must not contain spaces, since whitespace is used as a delimiter in the .trg file. If the bones in your armature do contain spaces, replace them by underscore ( _ ). MakeWalk treats space and underscore as equivalent, so this is not a problem, except for very strange naming convention. [[File:mwa-020-myrig.png]] Save the .trg file with the name my_rig.trg in the target_rigs folder and press the Reinit Target Panel button. My_Rig should now appear in the Target rig list. Select it. In the FK bones sections, the My_Rig bone names are now listed. Make sure that the Auto Target Rig option is deselected, to override automatic bone mapping. Finally go to the main panel and press Load And Retarget. The animation should now be loaded. === MHBlenderTools: MakeWalk utilities === ==== Utilities panel ==== This panel contains material that does not naturally fit into the other panels. [[File:mwu-010-panel.png]] === Default Settings === * Save Defaults: Save current settings as the default settings. * Load Defaults: Load the default settings from file. === Manage Actions === * Actions: A list of all actions in the scene, at the time when the Update Action List button was last pressed. * Filter: If selected, only actions belonging to the active character are included in the action list. When the mocap tool creates an action, the first four letters in the action name are taken from the rig name. * Update Action List: * Set Current Action: Set the action selected in the Actions list as the active action. * Delete Action: Permanently delete the action selected in the Actions list. The action must have zero users. It is quite cumbersome to permanently delete actions in Blender. The reason is that creating an action with hand animation takes much work, which should not be lost accidentally. The situation is different with mocap, where it is easy to fill up a blend file with many irrelevant actions. This button makes it easier to clean out such junk motions. * Delete Temporary Actions: Some tools create temporary actions, whose names start with a hash sign (#). Deletes all such actions. === Temporary properties === * Delete Temporary Properties. MakeWalk creates some properties for relevant posebones during retargeting. Pressing this button removes these properties. However, be aware that some of the tools in the Edit panel may fail if the temporrary properties are deleted. The temporary properties for the active posebone can be inspected in the N-panel. [[File:mwu-030-temp-props.png]] * McpBone: The name of this bone in the internal hierarchy. * McpParent: The parent of this bone in the internal hierarchy. * McpQuatW, McpQuatX, McpQuatY, McpQuatZ: The rotation of this bone in T-pose, represented as a quaternion. === T-pose === * Set T-pose: Set the current pose to T-pose. * Clear T-pose: Set the current pose to the default pose. * Load T-pose: Load a T-pose from a .json file to the active armature. * Save T-pose: Save the current pose as a .json file. === Rest Pose === * Current Pose => Rest Pose: Set the current pose to rest pose. 596261c49bb16ffce4d19e4c9195ff4153d7b958 1351 1350 2017-03-15T01:08:24Z Robbaer 12 /* NOTE */ wikitext text/x-wiki === NOTE === There is a wealth of important information in this document, but some of the detail is badly out of date. Most of the fundamental information is quite usable, nevertheless. Things that need repairing: * Broken links * Reference to armatures in older version of MakeHuman * The MakeWalk tool is now found as a tab on the T-side-panel in Blender ------------------------------------ MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ==== Retargeting: how it works ==== The goal of retargeting is to transfer a motion from a source armature (e.g. from a BVH file) to a given target armature (e.g. the MHX rig). However, it is not straightforward to assign the source action to the target rig, even if the bones have identical names. The motion of each bone is specified in local coordinates, relative to the parent and the bone's own rest pose. If the rest poses of the source and target armatures differ, the source F-curves can not be used directly by the target armature. [[File:makewalk-1.png]] The picture above shows a transformation in the local coordinate system. Since the parent's local Y points along its axis and its local Z points up, the child bone is rotated around the local X axis. This is not very useful if the target armature has a diffent rest pose. To retarget the pose, we therefore reexpress the transformation in the global coordinate system, as shown below. The local X rotation corresponds to a global Y rotation, and by a different angle. Once the global transformation matrix is known, we can reexpress it in the target bone's local coordinate system. The retargeting process thus consists of making two coordinate transformations: Source local => Global => Target local. This will ensure that the source bone and the target bone will have the same global orientation. [[File:makewalk_2.png]] Unfortunately, things are a little more complicated. We do not always want the source and target bones to have identical orientation. In particular, the root or pelvis bone may point in entirely different directions in different armatures. E.g. in the CMU armature rest pose the pelvis points forward-down, and in the MHX rig it points straight up. [[File:makewalk-3.png]] If we insisted that the root bone in the MHX rig would point in the same direction as in the CMU rig, the retargeting would not be very successful, as shown in the figure above. If we instead keep the rotation offset from the rest poses, the target pose becomes much better, as shown below. To calibrate the source and target armature against each other, MalkWalk introduces extra keyframes at frame 0, where both armatures are posed in T-pose. [[File:mcp-ret-060-calibrate.png]] In the rest of the animation, bones in the target armature copy the global rotations of the source armature, apart from differences present in the T-poses. In this way we can transfer animations from CMU to the MHX rig, despite the fact that the rest poses are very different. ==== Basic Workflow ==== === Retargeting === The MakeWalk panels appear in the tool shelf whenever an armature is the active object. Select the armature and press the Load And Retarget button. In the file selector, select the .bvh file. We choose the file 90_04.bvh from the CMU database. It is a cartwheel animation. [[File:makewalk-4.png]] After a short wait, the armature is doing gymnastics. [[File:makewalk-5.png]] At frame 0 of the animation the armature has been placed in T-pose. This is not part of the originial .bvh file, but inserted by MakeWalk to calibrate the source armature (defined by the bvh file) and the target armature (the selected armature in the viewport) against each other. === Supported armatures === MakeWalk works with most straightforward biped rigs with FK arms and legs, such as the Rigify meta-rig. There is also built-in support for some more complex rigs: the MHX advanced rig from MakeHuman, the MHX rig from MakeHuman and Rigify. [[File:makewalk-6.png]] It is often possible to use MakeWalk with other complex rig, but in that case the automatic bone identification may fail. If so, a bone map must be defined manually, see!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining a Target Rig Manually!/LINK!. === Troubleshooting === Retargeting is a rather involved subject, and it can sometimes result in poor motion. The process may even fail completely, usually because MakeWalk failed to automatically identify the bones of a complex rig. If this should happen, see!LINK!http://www.makehuman.org/doc/node/makewalk_errors_and_corrective_actions.html -- Errors and Corrective Actions!/LINK!. ==== Where to find BVH files ==== There are several different formats that mocap files can be stored in. MakeHuman's mocap tool can only deal with files in Biovision BVH format. BVH files can be bought from many commercial sources, but a large range of mocap files are also available for free download. Here are some sites I found useful. * CMU Graphics Lab Motion Capture Database: Hosted at Carnegie-Mellon University, this is a huge library of mocap files which can be downloaded for free. The web address is!LINK!http://mocap.cs.cmu.edu/ -- http://mocap.cs.cmu.edu!/LINK!. CMU hosts mocap files in three formats: tvd, c3d and amc. However, the mocap tool can only read BVH files, so none of these files can be used directly. Fortunately, B. Hahne at!LINK!http://www.cgspeed.com/ -- www.cgspeed.com!/LINK!has converted the CMU files to BVH. The converted files are located at!LINK!http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture -- http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture!/LINK!. * Advanced Computing Center for the Arts and Design (ACCAD): Hosted at the Ohio State University, this is another great source of free mocap files. BVH files can be downloaded from!LINK!http://accad.osu.edu/research/mocap/mocap_data.htm -- http://accad.osu.edu/research/mocap/mocap_data.htm!/LINK! * Eyes Japan (mocapdata.com):This is a Japanese company that sells mocap data commercially, but they also offer a huge number of motions for free. According to their homepage, mocapdata.com provides 744 premium motion data and 4197 free motion data. The only catch is that downloading requires registration. Not surprisingly, the homepage of mocapdata.com has the address!LINK!http://www.mocapdata.com/ -- http://www.mocapdata.com/!/LINK!. * The Trailer's Park: Free mocap data can also be found at the Trailer's Park,!LINK!http://www.thetrailerspark.com/ -- http://www.thetrailerspark.com!/LINK!. This site does not offer original data, but offer repacks of mocap data from other free sites for download. Free download is limited to some five packs per day, so some patience is required here. * Hochschule der Medien, Universität Bonn (HDM):!LINK!http://www.mpi-inf.mpg.de/resources/HDM05/ -- http://www.mpi-inf.mpg.de/resources/HDM05!/LINK! * The Perfume global site project #001:!LINK!http://perfume-dev.github.com/ -- http://perfume-dev.github.com/!/LINK! === MHBlenderTools: MakeWalk user interface === ==== The user interface ==== The user > interface of MakeWalk is located in under the Armature tab, and becomes visible when an armature is selected. It consists of six panels; the first one is open by default and the others are closed. [[File:makewalk-7_0.png]] * Load And Retarget: Select a BVH file and retarget it to the active armature. * Start Frame: The first frame in the BVH file to considered. * Last Frame: The last frame to be considered, unless the animation stops earlier. The difference last_frame - first_frame is the maximal number of frames after retargeting. The number of frames in the BVH file may be larger, if some frames are skipped due to subsampling * Detailed steps: When this options is selected, further buttons are show below * Load BVH File (.bvh). Load a BVH file, and create an animated armature from it. * Rename And Rescale BVH Rig. With the BVH armature active, and a target armature selected, rename and rescale the bones of the active armature to fit the target. * Load And Rename BVH File (.bvh). A combination of the previous two buttons. With a target armature active, load a BVH file, and create an animated armature with renamed and rescaled bones. * Retarget Selected To Active. Retarget the animation from a renamed and rescaled BVH armature to the active armature. * Simplify FCurves. Simplify the F-curves of the active armature. * Rescale FCurves. Rescale F-curevs of the active armature.What if retargeting fails? MakeWalk is designed to retarget animations to a given armature with a minimum of user intervention. However, retargeting is a complex process, and entirely automatic retargeting may fail or result in suboptimal motion. Information about how to identify and correct problems is found in!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Errors and Corrective Actions!/LINK!. A common problem is that automatic identification of bones in the target armature fails. A bone map can then be assigned manually, cf.!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Defining the Target Rig Manually.!/LINK! ==== Options panel ==== [[File:makewalk-8.png]] * Use Default Subsample. Blender normally plays the animation in 24 fps or 25 fps, but the animation in the BVH file may be recorded at a different speed. In particular, the BVH files from CMU were filmed at 120 fps. Enable this option to have the animation play at natural speed, irrespective of the frame rate in the BVH file. Other subsample options are described below. * Auto scale. Set the scale automatically based on the size of the left thigh. This choice has two motivations: * Almost all character do have a left leg. * The leg size is crucial for making walk cycles look good. * Scale. The default MakeHuman scale is decimeters - 1 unit = 1 decimeter. Translations in a BVH file are expressed in different units; often the base unit is inches, meters or centimeters, but more obscure units can also occur, e.g. in BVH files from CMU. If the scale is set incorrectly, rotations will still be correctly retargeted, but the character will appear to take giant leaps or miniscule steps. * Use Limits: If this option is enabled, MakeWalk honors any Limit Rotation constraints, and will not allow excessive rotations. If the animation in the bvh files exceeds some rotation limits, this makes the retargeted animation less faithful. On the other hand, the rig may not be built for excessive rotations, so unchecking this option can lead to other problems. * Unlock Rotation: If this option is disabled, MakeWalk honors any rotation locks. If the animation in the bvh files bend around locked axes, this makes the retargeted animation less faithful. If Unlock Rotation is enabled, any X or Z rotation locks are disabled. Y rotation locks (bone twisting) are never disabled. The reason for this is that in the MHX and Rigify rigs, forearm rotation is handled by deform bones controlled by hand twisting. * Auto source rig. The source rig (i.e. the armature defined by the BVH file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Source Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the source rig, based on the structure of the bone hierarchy. * Auto target rig. The target rig (i.e. the armature in the blend file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Target Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the target rig, based on the structure of the bone hierarchy. * Ignore Hidden Layers. Ignore bones on hidden layers when identifying the target rig. === Subsample and Rescale === If the Use Default Subsample option is set, the mocap tool will rescale the animation to fit the current frame rate. However, there are at least two reasons why you may want to load an animation at a different frame rate: * * To obtain a slow-motion or rapid-motion effect. * To quickly load an animation to see if the gross features will work out. If the Use Default Subsample option is disabled, the SubSample section becomes visible. * Subsample. Enable subsampling. * Subsample Factor. If the value of this property is n, only every n:th frame of the BVH animation is loaded. * Rescale. Enable rescaling. * Rescale Factor. If the value of this property is n, the time distance between keyframes is changed to n. * Rescale FCurves. Apply the settings above to existing F-curves rather than to the loaded animation. Rescaling differs from simply scaling F-curves in the F-curve editor. === Simplification === * Simplify FCurves. Remove unnecessary keyframes. * Max Loc Error. The maximal allowed error for location keyframes, in Blender units. A larger error results in fewer keyframes but less accuracy. * Max Rot Error. The maximal allowed error for rotation keyframes, in degrees. A larger error results in fewer keyframes but less accuracy. * Only Visible. Simplification only affect F-curves visible in the Graph editor. * Only Between Markers. Simplification only affects F-curves between the two outermost selected markers. The timeline must have at least two selected markers. ==== Edit panel ==== Loading and retargeting is normally only the first step in the creation of an animation from mocap data. There are many reasons why a loaded animation does not behave exactly the way you want it to: artifacts in the mocap data, differences in armature structure not compensated for correctly by the retargeting process, differences in body stature between the mocap actor and the target character, or simply that the filmed sequence does not do exactly what you intend.. It is of course possible to edit the action directly in the graph editor, but this is unpractical due to the amount of mocap data. The mocap tool offers several possibilities to edit an action at a higher level. These tools are colleted in the Edit Action panel which is located just below the Options panel. [[File:edit-action.png]] === Inverse Kinematics === * Transfer FK => IK: The load and retarget steps transfers an animation from a bvh file to the target character. However, only the FK bones are animated. Press this button to transfer the FK animation to the IK bones. Only works for the advanced MHX armature. If two markers are selected, only the animation between the markers is transferred. * Transfer IK => FK: Transfer the animation back from the IK bones to the FK bones. Useful if the IK animation has been edited, * Clear IK Animation: Remove all keyframes from all IK bones (arms and legs). * Clear FK Animation: Remove all keyframes from all FK bones (arms and legs). === Global Edit === * Shift Animation. Shift the keys for the selected bones at all keyframes.If two markers are selected, only the keyframes between the markers are deleted. * X,Y,Z: F-curves affected by the next button. * Fixate Bone Locations:Replace all location keys by their average. Only selected bones and keyframes between selected markers are affected. * Rescale Factor: Factor used by next button. * Rescale FCurves: Rescale all F-curves by the factor above. This is similar to scaling F-curves in the curve editor, but jumps are treated correctly. E.g., rotations of +180 degrees and -180 degrees are the same, but if we scale an F-curve with a factor two, the intermedate keyframe will have the average rotation 0 degrees, The Rescale FCurves button handles this case correctly. === Local Edit === This section could be called "Poor man's animation layers". A loaded mocap animation usually has imperfections that must be edited, but without changing the overall feel of the motion. The Start Edit button creates a new animation layer where differences from the original motion are stored as keys, called delta keys since delta often denotes a difference. * Start Edit: Start editing F-curves. * Undo Edit: Quit F-curve editing, without modifying the original F-curves. * Loc: Set a location delta keyframe. * Rot: Set a rotation delta keyframe. * LocRot: Set a location and rotation delta keyframe. * Delete: Remove all delta keyframes at the current time. * |<: Move to first delta keyframe * <: Move to previous delta keyframe. * >: Move to next delta keyframe. * >|: Move to last delta keyframe. * Confirm Edit: Modify the original F-curves and quit F-curve editing. The delta keys are represented by markers in the timeline. [[File:mwe-315-local-keys.png]] A delta key can be added with the Loc, Rot and LocRot buttons, and removed with Delete. There is no way to view the delta keys directly. In the viewport and the curve editor, the final pose is shown, which is the sum of the original pose and the delta key. A common use for delta keys is to correct for intersection with other objects or the character herself. The typical workflow is as follows: * * Start Edit. * Set a delta key at a good frame just before the intersection. * Set a delta key at a good frame just after the intersection. * Edit the pose a the frame(s) where intersection occurs. * If the intersection has been removed, Confirm Edit. If not, set new delta keys until it has, or Undo Edit to remove the delta layer. === Feet === * Left: Affect the left foot. * Right: Affect the right foot. * Hips: Affect the characters hip (COM) bone. * Offset Toes: Ensure that the toe is below the ball of the foot at all keyframes. Primarily useful for rigs with a reverse foot setup as explained below. * Keep Feet Above Floor: If a mesh object (typically a plane) is selected, shift the keyframes to keep the affected feet above the plane. The plane does not necessarily lie in the XY plane; if the plane is tilted, the feet are kept on the plane's upper side. If no plane is selected, the feet are kept above the XY plane (z = 0). The IK feet are affected if the rig has and uses IK legs, otherwise the FK feet are kept above the floor. If two markers are selected, only the keyframes inbetween are shifted. In a rig with a reverse foot setup, such as the MHX rig, the foot can rotate around the toe, ball, and heel. The reverse foot and toe bones are completely fixed by the corresponding FK bones, but the IK effector can be placed arbitrarily, as long as it ends at the toe tip. The transfer tool uses this freedom to make the IK effector perfectly horizontal, provided that the toe is below the ball and heel. [[File:refoot.png]] To use this feature we must ensure that the toe is below the ball of the foot, which is done by the Offset Toes button. === Loop And Repeat === !LINK! -- Loop Animation!/LINK! Create a loop of the action between two selected time markers, by blending the keyframes in the beginning and end of the loop. This is useful e.g. to create walk and run cycles for games. For good results, the poses at the beginning and end of the selected region should be similar. * Blend Range: The number of keyframes used for blending. * Loop in place: Remove the X and Y components of the root bone's location. * Loop F-curves: Loop the animation. !LINK! -- Repeat Animation!/LINK! Repeat the action between two selected time markers. The actions should preferably be looped before it is repeated, to make the beginning and end match seamlessly. * Repeat Number: The number of repetitions. * Repeat F-curves: Repeat the animation. === Stitching === Create a new action by stitching two actions together seamlessly. * Update Action List: Update the first and second action drop-down lists. * First Action: The name of the first action. * First End Frame: Last frame of the first action * Set Current Action: Set the first action as the current action. * Second Action: The name of the second action. * Second Start Frame: First frame of the second action. * Set Current Action: Set the second action as the current action. * Action Target: Choose between creating a new action and prepending the second action. * Blend Range: The number of keyframes used for blending. Same parameter as in Loop Animations section. * Output Action Name: * Stitch Actions: Stitch the actions together. === MHBlenderTools: MakeWalk armatures === ==== Source Armature panel ==== MakeWalk transfers an animation from a source armature, defined in a bvh file, to a given target armature. It uses an intermediate standard rig described in!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. The bone map from the source armature to the target armature hence consists of two parts: * A map from the source rig to the standard rig. It is defined in the MakeWalk: Source Armature panel. * A map from the target rig to the standard rig. It is defined in the!LINK!http://makehuman.org/doc/node/makewalk_target_armature_panel.html -- MakeWalk: Target Armature panel!/LINK!. [[File:mws-010-panel.png]] When a new scene is opened, the panel consists of the single button Initialize Source Panel. Once this button has been pressed, the following content is available: [[File:mws-020-auto.png]] * Reinit Source Panel: Reinitialization. * Auto Source Rig: If this option is enabled, MakeWalk will try to identify the source rig automatically. It may happen that MakeWalk fails to identify the source rig automatically, but this is very unusual. If it should nevertheless happen, it is possible to define the bone map manually in analogy with !LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- how it is done for target rigs!/LINK!. * Source rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected source rig (if Auto Source Rig is disabled) or to Automatic. * Bones in the active source rig. ==== Target Armature panel ==== The second part of the mapping from source to target armatures is defined by the panel labelled MH Mocap: Target armature. It is the top-most of the mocap tool panels, and is closed by default. When a new scene is opened, the panel consists of the single button Initialize Target Panel. Once this button has been pressed, the following content is available: [[File:mwt-011-panel.png]] * Reinit Target Panel. Reinitialization. * Target rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected Target rig (if Auto Target rig guessing is disabled), or is set to a matching rig (if automatic target rig identificiation is enabled). * Auto Target Rig. If this option is enabled, MakeWalk will try to identify the target rig automatically. However, automatic rig identification is not trivial for complex rigs, and it may fail. If so, the bone map may be specified manually, cf!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. If the bone map is defined. The target rigs available by default correspond mostly to the rig presets that can be exported from MakeHuman * MHX. An advanced rig from MakeHuman alpha 8. * MH Alpha 7. The MHX rig from MakeHuman alpha 7. * Rigify. * Ignore Hidden Layers: Ignore bones on hidden layers during automatic rig identification. * Reverse Hip. Select this option if the armature has an reverse hip. It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. * Identify Target Rig: Identify the target rig, i.e. find out how bone names in the active armature correspond to the internal names. This step is performed automatically during retargeting, but the identification can also be done separately for debugging purposes. The bone map appears in the area called FK bones below. * Set T-pose. Pose the active armature in T-pose. * Save T-pose. Option used by the next button. * Save Target File. Save the current bone map as a .trg file. If the Save T-pose option is set, also save a json file defining the T-pose. * FK bones. The bone map. The picture below shows automatic rig identification of the Rigify meta-rig (Add > Armature > Advanced Human). [[File:mwt-020-metarig.png]] === MHBlenderTools: MakeWalk troubleshooting. === ==== What if retargeting fails? ==== === Errors and Corrective Actions === This document will describe common errors and corrective actions. It may happen that MakeWalk fails to retarget an animation to a given armature. In that case an error message is displayed. [[File:mwa-100-error.png]] The error message consists of the following: Mocap error Category Detailed error message A link to this page MakeWalk errors are grouped into the following categories: * Load Bvh File * Rename And Rescale * Identify Target Rig * Automatic Target Rig * Manual Target Rig * Identify Source Rig * Retarget * General Error Load Bvh File Rename And Rescale Identify Target Rig === Automatic Target Rig === The most common problem is probably that MakeWalk fails to identify the target rig automatically. There are several possible reasons for this: * The character is not oriented correctly. In the rest pose, the character should be standing with up being the positive Z axis and facing -Y. * The armature is complex with extra bones not corresponding to a standard biped rig. * The armature only has IK arms or legs. MakeWalk retargets animations to the FK limbs, so if no such bones exist, the program will not work. [[File:mwa-110-reverse-hip.png]] It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. [[File:mwa-120-reversehip.png]] The advantage of such a setup is that the upper and lower body can be posed independently. However, MakeWalk failes to identify the bones, unless the Reverse Hip option has been enabled. If automatic bone identification still fails, bone mapping has to be made manually. How this is done is described in the next section. === Defining the Target Rig Manually === Internally, MakeWalk retargets animations to an armature with the following bone hierarchy. Here is a visual illustration of the bone hierarchy: [[File:mwa-010-armature.png]] In order to retarget to an armature with different bone names, we must define a map between the given bones and the internal names. By default, MakeWalk attempts to do this automatically. However, automatic bone mapping may easily be confused for non-trivial rigs. If this happens, one can define the bone map manually. A bone map for a target armature is defined by a .trg file located in the target_rigs folder under the makewalk directory. The folder already contains three files, for retargeting the MHX advanced rig, the MakeHuman, and Rigify. These rigs are too complicated to identify the bone map automatically, so MakeWalk recognizes these rigs and use the predefined bone map. Create a .trg file using an existing file as a template. E.g., a .trg file could look like this: Note that it is not necessary to define maps to all bones. Bone names must not contain spaces, since whitespace is used as a delimiter in the .trg file. If the bones in your armature do contain spaces, replace them by underscore ( _ ). MakeWalk treats space and underscore as equivalent, so this is not a problem, except for very strange naming convention. [[File:mwa-020-myrig.png]] Save the .trg file with the name my_rig.trg in the target_rigs folder and press the Reinit Target Panel button. My_Rig should now appear in the Target rig list. Select it. In the FK bones sections, the My_Rig bone names are now listed. Make sure that the Auto Target Rig option is deselected, to override automatic bone mapping. Finally go to the main panel and press Load And Retarget. The animation should now be loaded. === MHBlenderTools: MakeWalk utilities === ==== Utilities panel ==== This panel contains material that does not naturally fit into the other panels. [[File:mwu-010-panel.png]] === Default Settings === * Save Defaults: Save current settings as the default settings. * Load Defaults: Load the default settings from file. === Manage Actions === * Actions: A list of all actions in the scene, at the time when the Update Action List button was last pressed. * Filter: If selected, only actions belonging to the active character are included in the action list. When the mocap tool creates an action, the first four letters in the action name are taken from the rig name. * Update Action List: * Set Current Action: Set the action selected in the Actions list as the active action. * Delete Action: Permanently delete the action selected in the Actions list. The action must have zero users. It is quite cumbersome to permanently delete actions in Blender. The reason is that creating an action with hand animation takes much work, which should not be lost accidentally. The situation is different with mocap, where it is easy to fill up a blend file with many irrelevant actions. This button makes it easier to clean out such junk motions. * Delete Temporary Actions: Some tools create temporary actions, whose names start with a hash sign (#). Deletes all such actions. === Temporary properties === * Delete Temporary Properties. MakeWalk creates some properties for relevant posebones during retargeting. Pressing this button removes these properties. However, be aware that some of the tools in the Edit panel may fail if the temporrary properties are deleted. The temporary properties for the active posebone can be inspected in the N-panel. [[File:mwu-030-temp-props.png]] * McpBone: The name of this bone in the internal hierarchy. * McpParent: The parent of this bone in the internal hierarchy. * McpQuatW, McpQuatX, McpQuatY, McpQuatZ: The rotation of this bone in T-pose, represented as a quaternion. === T-pose === * Set T-pose: Set the current pose to T-pose. * Clear T-pose: Set the current pose to the default pose. * Load T-pose: Load a T-pose from a .json file to the active armature. * Save T-pose: Save the current pose as a .json file. === Rest Pose === * Current Pose => Rest Pose: Set the current pose to rest pose. 43cdd3b03d9ee230311a6cd0063b5a2d2cb7b2a0 1350 1121 2017-03-15T01:04:50Z Robbaer 12 wikitext text/x-wiki === NOTE === There is a wealth of important information in this document, but some of the detail is badly out of date. Things that need repairing: * Broken links * Reference to armatures in older version of MakeHuman * The MakeWalk tool is now found as a tab on the T-side-panel in Blender ------------------------------------ MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ==== Retargeting: how it works ==== The goal of retargeting is to transfer a motion from a source armature (e.g. from a BVH file) to a given target armature (e.g. the MHX rig). However, it is not straightforward to assign the source action to the target rig, even if the bones have identical names. The motion of each bone is specified in local coordinates, relative to the parent and the bone's own rest pose. If the rest poses of the source and target armatures differ, the source F-curves can not be used directly by the target armature. [[File:makewalk-1.png]] The picture above shows a transformation in the local coordinate system. Since the parent's local Y points along its axis and its local Z points up, the child bone is rotated around the local X axis. This is not very useful if the target armature has a diffent rest pose. To retarget the pose, we therefore reexpress the transformation in the global coordinate system, as shown below. The local X rotation corresponds to a global Y rotation, and by a different angle. Once the global transformation matrix is known, we can reexpress it in the target bone's local coordinate system. The retargeting process thus consists of making two coordinate transformations: Source local => Global => Target local. This will ensure that the source bone and the target bone will have the same global orientation. [[File:makewalk_2.png]] Unfortunately, things are a little more complicated. We do not always want the source and target bones to have identical orientation. In particular, the root or pelvis bone may point in entirely different directions in different armatures. E.g. in the CMU armature rest pose the pelvis points forward-down, and in the MHX rig it points straight up. [[File:makewalk-3.png]] If we insisted that the root bone in the MHX rig would point in the same direction as in the CMU rig, the retargeting would not be very successful, as shown in the figure above. If we instead keep the rotation offset from the rest poses, the target pose becomes much better, as shown below. To calibrate the source and target armature against each other, MalkWalk introduces extra keyframes at frame 0, where both armatures are posed in T-pose. [[File:mcp-ret-060-calibrate.png]] In the rest of the animation, bones in the target armature copy the global rotations of the source armature, apart from differences present in the T-poses. In this way we can transfer animations from CMU to the MHX rig, despite the fact that the rest poses are very different. ==== Basic Workflow ==== === Retargeting === The MakeWalk panels appear in the tool shelf whenever an armature is the active object. Select the armature and press the Load And Retarget button. In the file selector, select the .bvh file. We choose the file 90_04.bvh from the CMU database. It is a cartwheel animation. [[File:makewalk-4.png]] After a short wait, the armature is doing gymnastics. [[File:makewalk-5.png]] At frame 0 of the animation the armature has been placed in T-pose. This is not part of the originial .bvh file, but inserted by MakeWalk to calibrate the source armature (defined by the bvh file) and the target armature (the selected armature in the viewport) against each other. === Supported armatures === MakeWalk works with most straightforward biped rigs with FK arms and legs, such as the Rigify meta-rig. There is also built-in support for some more complex rigs: the MHX advanced rig from MakeHuman, the MHX rig from MakeHuman and Rigify. [[File:makewalk-6.png]] It is often possible to use MakeWalk with other complex rig, but in that case the automatic bone identification may fail. If so, a bone map must be defined manually, see!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining a Target Rig Manually!/LINK!. === Troubleshooting === Retargeting is a rather involved subject, and it can sometimes result in poor motion. The process may even fail completely, usually because MakeWalk failed to automatically identify the bones of a complex rig. If this should happen, see!LINK!http://www.makehuman.org/doc/node/makewalk_errors_and_corrective_actions.html -- Errors and Corrective Actions!/LINK!. ==== Where to find BVH files ==== There are several different formats that mocap files can be stored in. MakeHuman's mocap tool can only deal with files in Biovision BVH format. BVH files can be bought from many commercial sources, but a large range of mocap files are also available for free download. Here are some sites I found useful. * CMU Graphics Lab Motion Capture Database: Hosted at Carnegie-Mellon University, this is a huge library of mocap files which can be downloaded for free. The web address is!LINK!http://mocap.cs.cmu.edu/ -- http://mocap.cs.cmu.edu!/LINK!. CMU hosts mocap files in three formats: tvd, c3d and amc. However, the mocap tool can only read BVH files, so none of these files can be used directly. Fortunately, B. Hahne at!LINK!http://www.cgspeed.com/ -- www.cgspeed.com!/LINK!has converted the CMU files to BVH. The converted files are located at!LINK!http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture -- http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture!/LINK!. * Advanced Computing Center for the Arts and Design (ACCAD): Hosted at the Ohio State University, this is another great source of free mocap files. BVH files can be downloaded from!LINK!http://accad.osu.edu/research/mocap/mocap_data.htm -- http://accad.osu.edu/research/mocap/mocap_data.htm!/LINK! * Eyes Japan (mocapdata.com):This is a Japanese company that sells mocap data commercially, but they also offer a huge number of motions for free. According to their homepage, mocapdata.com provides 744 premium motion data and 4197 free motion data. The only catch is that downloading requires registration. Not surprisingly, the homepage of mocapdata.com has the address!LINK!http://www.mocapdata.com/ -- http://www.mocapdata.com/!/LINK!. * The Trailer's Park: Free mocap data can also be found at the Trailer's Park,!LINK!http://www.thetrailerspark.com/ -- http://www.thetrailerspark.com!/LINK!. This site does not offer original data, but offer repacks of mocap data from other free sites for download. Free download is limited to some five packs per day, so some patience is required here. * Hochschule der Medien, Universität Bonn (HDM):!LINK!http://www.mpi-inf.mpg.de/resources/HDM05/ -- http://www.mpi-inf.mpg.de/resources/HDM05!/LINK! * The Perfume global site project #001:!LINK!http://perfume-dev.github.com/ -- http://perfume-dev.github.com/!/LINK! === MHBlenderTools: MakeWalk user interface === ==== The user interface ==== The user > interface of MakeWalk is located in under the Armature tab, and becomes visible when an armature is selected. It consists of six panels; the first one is open by default and the others are closed. [[File:makewalk-7_0.png]] * Load And Retarget: Select a BVH file and retarget it to the active armature. * Start Frame: The first frame in the BVH file to considered. * Last Frame: The last frame to be considered, unless the animation stops earlier. The difference last_frame - first_frame is the maximal number of frames after retargeting. The number of frames in the BVH file may be larger, if some frames are skipped due to subsampling * Detailed steps: When this options is selected, further buttons are show below * Load BVH File (.bvh). Load a BVH file, and create an animated armature from it. * Rename And Rescale BVH Rig. With the BVH armature active, and a target armature selected, rename and rescale the bones of the active armature to fit the target. * Load And Rename BVH File (.bvh). A combination of the previous two buttons. With a target armature active, load a BVH file, and create an animated armature with renamed and rescaled bones. * Retarget Selected To Active. Retarget the animation from a renamed and rescaled BVH armature to the active armature. * Simplify FCurves. Simplify the F-curves of the active armature. * Rescale FCurves. Rescale F-curevs of the active armature.What if retargeting fails? MakeWalk is designed to retarget animations to a given armature with a minimum of user intervention. However, retargeting is a complex process, and entirely automatic retargeting may fail or result in suboptimal motion. Information about how to identify and correct problems is found in!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Errors and Corrective Actions!/LINK!. A common problem is that automatic identification of bones in the target armature fails. A bone map can then be assigned manually, cf.!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Defining the Target Rig Manually.!/LINK! ==== Options panel ==== [[File:makewalk-8.png]] * Use Default Subsample. Blender normally plays the animation in 24 fps or 25 fps, but the animation in the BVH file may be recorded at a different speed. In particular, the BVH files from CMU were filmed at 120 fps. Enable this option to have the animation play at natural speed, irrespective of the frame rate in the BVH file. Other subsample options are described below. * Auto scale. Set the scale automatically based on the size of the left thigh. This choice has two motivations: * Almost all character do have a left leg. * The leg size is crucial for making walk cycles look good. * Scale. The default MakeHuman scale is decimeters - 1 unit = 1 decimeter. Translations in a BVH file are expressed in different units; often the base unit is inches, meters or centimeters, but more obscure units can also occur, e.g. in BVH files from CMU. If the scale is set incorrectly, rotations will still be correctly retargeted, but the character will appear to take giant leaps or miniscule steps. * Use Limits: If this option is enabled, MakeWalk honors any Limit Rotation constraints, and will not allow excessive rotations. If the animation in the bvh files exceeds some rotation limits, this makes the retargeted animation less faithful. On the other hand, the rig may not be built for excessive rotations, so unchecking this option can lead to other problems. * Unlock Rotation: If this option is disabled, MakeWalk honors any rotation locks. If the animation in the bvh files bend around locked axes, this makes the retargeted animation less faithful. If Unlock Rotation is enabled, any X or Z rotation locks are disabled. Y rotation locks (bone twisting) are never disabled. The reason for this is that in the MHX and Rigify rigs, forearm rotation is handled by deform bones controlled by hand twisting. * Auto source rig. The source rig (i.e. the armature defined by the BVH file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Source Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the source rig, based on the structure of the bone hierarchy. * Auto target rig. The target rig (i.e. the armature in the blend file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Target Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the target rig, based on the structure of the bone hierarchy. * Ignore Hidden Layers. Ignore bones on hidden layers when identifying the target rig. === Subsample and Rescale === If the Use Default Subsample option is set, the mocap tool will rescale the animation to fit the current frame rate. However, there are at least two reasons why you may want to load an animation at a different frame rate: * * To obtain a slow-motion or rapid-motion effect. * To quickly load an animation to see if the gross features will work out. If the Use Default Subsample option is disabled, the SubSample section becomes visible. * Subsample. Enable subsampling. * Subsample Factor. If the value of this property is n, only every n:th frame of the BVH animation is loaded. * Rescale. Enable rescaling. * Rescale Factor. If the value of this property is n, the time distance between keyframes is changed to n. * Rescale FCurves. Apply the settings above to existing F-curves rather than to the loaded animation. Rescaling differs from simply scaling F-curves in the F-curve editor. === Simplification === * Simplify FCurves. Remove unnecessary keyframes. * Max Loc Error. The maximal allowed error for location keyframes, in Blender units. A larger error results in fewer keyframes but less accuracy. * Max Rot Error. The maximal allowed error for rotation keyframes, in degrees. A larger error results in fewer keyframes but less accuracy. * Only Visible. Simplification only affect F-curves visible in the Graph editor. * Only Between Markers. Simplification only affects F-curves between the two outermost selected markers. The timeline must have at least two selected markers. ==== Edit panel ==== Loading and retargeting is normally only the first step in the creation of an animation from mocap data. There are many reasons why a loaded animation does not behave exactly the way you want it to: artifacts in the mocap data, differences in armature structure not compensated for correctly by the retargeting process, differences in body stature between the mocap actor and the target character, or simply that the filmed sequence does not do exactly what you intend.. It is of course possible to edit the action directly in the graph editor, but this is unpractical due to the amount of mocap data. The mocap tool offers several possibilities to edit an action at a higher level. These tools are colleted in the Edit Action panel which is located just below the Options panel. [[File:edit-action.png]] === Inverse Kinematics === * Transfer FK => IK: The load and retarget steps transfers an animation from a bvh file to the target character. However, only the FK bones are animated. Press this button to transfer the FK animation to the IK bones. Only works for the advanced MHX armature. If two markers are selected, only the animation between the markers is transferred. * Transfer IK => FK: Transfer the animation back from the IK bones to the FK bones. Useful if the IK animation has been edited, * Clear IK Animation: Remove all keyframes from all IK bones (arms and legs). * Clear FK Animation: Remove all keyframes from all FK bones (arms and legs). === Global Edit === * Shift Animation. Shift the keys for the selected bones at all keyframes.If two markers are selected, only the keyframes between the markers are deleted. * X,Y,Z: F-curves affected by the next button. * Fixate Bone Locations:Replace all location keys by their average. Only selected bones and keyframes between selected markers are affected. * Rescale Factor: Factor used by next button. * Rescale FCurves: Rescale all F-curves by the factor above. This is similar to scaling F-curves in the curve editor, but jumps are treated correctly. E.g., rotations of +180 degrees and -180 degrees are the same, but if we scale an F-curve with a factor two, the intermedate keyframe will have the average rotation 0 degrees, The Rescale FCurves button handles this case correctly. === Local Edit === This section could be called "Poor man's animation layers". A loaded mocap animation usually has imperfections that must be edited, but without changing the overall feel of the motion. The Start Edit button creates a new animation layer where differences from the original motion are stored as keys, called delta keys since delta often denotes a difference. * Start Edit: Start editing F-curves. * Undo Edit: Quit F-curve editing, without modifying the original F-curves. * Loc: Set a location delta keyframe. * Rot: Set a rotation delta keyframe. * LocRot: Set a location and rotation delta keyframe. * Delete: Remove all delta keyframes at the current time. * |<: Move to first delta keyframe * <: Move to previous delta keyframe. * >: Move to next delta keyframe. * >|: Move to last delta keyframe. * Confirm Edit: Modify the original F-curves and quit F-curve editing. The delta keys are represented by markers in the timeline. [[File:mwe-315-local-keys.png]] A delta key can be added with the Loc, Rot and LocRot buttons, and removed with Delete. There is no way to view the delta keys directly. In the viewport and the curve editor, the final pose is shown, which is the sum of the original pose and the delta key. A common use for delta keys is to correct for intersection with other objects or the character herself. The typical workflow is as follows: * * Start Edit. * Set a delta key at a good frame just before the intersection. * Set a delta key at a good frame just after the intersection. * Edit the pose a the frame(s) where intersection occurs. * If the intersection has been removed, Confirm Edit. If not, set new delta keys until it has, or Undo Edit to remove the delta layer. === Feet === * Left: Affect the left foot. * Right: Affect the right foot. * Hips: Affect the characters hip (COM) bone. * Offset Toes: Ensure that the toe is below the ball of the foot at all keyframes. Primarily useful for rigs with a reverse foot setup as explained below. * Keep Feet Above Floor: If a mesh object (typically a plane) is selected, shift the keyframes to keep the affected feet above the plane. The plane does not necessarily lie in the XY plane; if the plane is tilted, the feet are kept on the plane's upper side. If no plane is selected, the feet are kept above the XY plane (z = 0). The IK feet are affected if the rig has and uses IK legs, otherwise the FK feet are kept above the floor. If two markers are selected, only the keyframes inbetween are shifted. In a rig with a reverse foot setup, such as the MHX rig, the foot can rotate around the toe, ball, and heel. The reverse foot and toe bones are completely fixed by the corresponding FK bones, but the IK effector can be placed arbitrarily, as long as it ends at the toe tip. The transfer tool uses this freedom to make the IK effector perfectly horizontal, provided that the toe is below the ball and heel. [[File:refoot.png]] To use this feature we must ensure that the toe is below the ball of the foot, which is done by the Offset Toes button. === Loop And Repeat === !LINK! -- Loop Animation!/LINK! Create a loop of the action between two selected time markers, by blending the keyframes in the beginning and end of the loop. This is useful e.g. to create walk and run cycles for games. For good results, the poses at the beginning and end of the selected region should be similar. * Blend Range: The number of keyframes used for blending. * Loop in place: Remove the X and Y components of the root bone's location. * Loop F-curves: Loop the animation. !LINK! -- Repeat Animation!/LINK! Repeat the action between two selected time markers. The actions should preferably be looped before it is repeated, to make the beginning and end match seamlessly. * Repeat Number: The number of repetitions. * Repeat F-curves: Repeat the animation. === Stitching === Create a new action by stitching two actions together seamlessly. * Update Action List: Update the first and second action drop-down lists. * First Action: The name of the first action. * First End Frame: Last frame of the first action * Set Current Action: Set the first action as the current action. * Second Action: The name of the second action. * Second Start Frame: First frame of the second action. * Set Current Action: Set the second action as the current action. * Action Target: Choose between creating a new action and prepending the second action. * Blend Range: The number of keyframes used for blending. Same parameter as in Loop Animations section. * Output Action Name: * Stitch Actions: Stitch the actions together. === MHBlenderTools: MakeWalk armatures === ==== Source Armature panel ==== MakeWalk transfers an animation from a source armature, defined in a bvh file, to a given target armature. It uses an intermediate standard rig described in!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. The bone map from the source armature to the target armature hence consists of two parts: * A map from the source rig to the standard rig. It is defined in the MakeWalk: Source Armature panel. * A map from the target rig to the standard rig. It is defined in the!LINK!http://makehuman.org/doc/node/makewalk_target_armature_panel.html -- MakeWalk: Target Armature panel!/LINK!. [[File:mws-010-panel.png]] When a new scene is opened, the panel consists of the single button Initialize Source Panel. Once this button has been pressed, the following content is available: [[File:mws-020-auto.png]] * Reinit Source Panel: Reinitialization. * Auto Source Rig: If this option is enabled, MakeWalk will try to identify the source rig automatically. It may happen that MakeWalk fails to identify the source rig automatically, but this is very unusual. If it should nevertheless happen, it is possible to define the bone map manually in analogy with !LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- how it is done for target rigs!/LINK!. * Source rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected source rig (if Auto Source Rig is disabled) or to Automatic. * Bones in the active source rig. ==== Target Armature panel ==== The second part of the mapping from source to target armatures is defined by the panel labelled MH Mocap: Target armature. It is the top-most of the mocap tool panels, and is closed by default. When a new scene is opened, the panel consists of the single button Initialize Target Panel. Once this button has been pressed, the following content is available: [[File:mwt-011-panel.png]] * Reinit Target Panel. Reinitialization. * Target rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected Target rig (if Auto Target rig guessing is disabled), or is set to a matching rig (if automatic target rig identificiation is enabled). * Auto Target Rig. If this option is enabled, MakeWalk will try to identify the target rig automatically. However, automatic rig identification is not trivial for complex rigs, and it may fail. If so, the bone map may be specified manually, cf!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. If the bone map is defined. The target rigs available by default correspond mostly to the rig presets that can be exported from MakeHuman * MHX. An advanced rig from MakeHuman alpha 8. * MH Alpha 7. The MHX rig from MakeHuman alpha 7. * Rigify. * Ignore Hidden Layers: Ignore bones on hidden layers during automatic rig identification. * Reverse Hip. Select this option if the armature has an reverse hip. It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. * Identify Target Rig: Identify the target rig, i.e. find out how bone names in the active armature correspond to the internal names. This step is performed automatically during retargeting, but the identification can also be done separately for debugging purposes. The bone map appears in the area called FK bones below. * Set T-pose. Pose the active armature in T-pose. * Save T-pose. Option used by the next button. * Save Target File. Save the current bone map as a .trg file. If the Save T-pose option is set, also save a json file defining the T-pose. * FK bones. The bone map. The picture below shows automatic rig identification of the Rigify meta-rig (Add > Armature > Advanced Human). [[File:mwt-020-metarig.png]] === MHBlenderTools: MakeWalk troubleshooting. === ==== What if retargeting fails? ==== === Errors and Corrective Actions === This document will describe common errors and corrective actions. It may happen that MakeWalk fails to retarget an animation to a given armature. In that case an error message is displayed. [[File:mwa-100-error.png]] The error message consists of the following: Mocap error Category Detailed error message A link to this page MakeWalk errors are grouped into the following categories: * Load Bvh File * Rename And Rescale * Identify Target Rig * Automatic Target Rig * Manual Target Rig * Identify Source Rig * Retarget * General Error Load Bvh File Rename And Rescale Identify Target Rig === Automatic Target Rig === The most common problem is probably that MakeWalk fails to identify the target rig automatically. There are several possible reasons for this: * The character is not oriented correctly. In the rest pose, the character should be standing with up being the positive Z axis and facing -Y. * The armature is complex with extra bones not corresponding to a standard biped rig. * The armature only has IK arms or legs. MakeWalk retargets animations to the FK limbs, so if no such bones exist, the program will not work. [[File:mwa-110-reverse-hip.png]] It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. [[File:mwa-120-reversehip.png]] The advantage of such a setup is that the upper and lower body can be posed independently. However, MakeWalk failes to identify the bones, unless the Reverse Hip option has been enabled. If automatic bone identification still fails, bone mapping has to be made manually. How this is done is described in the next section. === Defining the Target Rig Manually === Internally, MakeWalk retargets animations to an armature with the following bone hierarchy. Here is a visual illustration of the bone hierarchy: [[File:mwa-010-armature.png]] In order to retarget to an armature with different bone names, we must define a map between the given bones and the internal names. By default, MakeWalk attempts to do this automatically. However, automatic bone mapping may easily be confused for non-trivial rigs. If this happens, one can define the bone map manually. A bone map for a target armature is defined by a .trg file located in the target_rigs folder under the makewalk directory. The folder already contains three files, for retargeting the MHX advanced rig, the MakeHuman, and Rigify. These rigs are too complicated to identify the bone map automatically, so MakeWalk recognizes these rigs and use the predefined bone map. Create a .trg file using an existing file as a template. E.g., a .trg file could look like this: Note that it is not necessary to define maps to all bones. Bone names must not contain spaces, since whitespace is used as a delimiter in the .trg file. If the bones in your armature do contain spaces, replace them by underscore ( _ ). MakeWalk treats space and underscore as equivalent, so this is not a problem, except for very strange naming convention. [[File:mwa-020-myrig.png]] Save the .trg file with the name my_rig.trg in the target_rigs folder and press the Reinit Target Panel button. My_Rig should now appear in the Target rig list. Select it. In the FK bones sections, the My_Rig bone names are now listed. Make sure that the Auto Target Rig option is deselected, to override automatic bone mapping. Finally go to the main panel and press Load And Retarget. The animation should now be loaded. === MHBlenderTools: MakeWalk utilities === ==== Utilities panel ==== This panel contains material that does not naturally fit into the other panels. [[File:mwu-010-panel.png]] === Default Settings === * Save Defaults: Save current settings as the default settings. * Load Defaults: Load the default settings from file. === Manage Actions === * Actions: A list of all actions in the scene, at the time when the Update Action List button was last pressed. * Filter: If selected, only actions belonging to the active character are included in the action list. When the mocap tool creates an action, the first four letters in the action name are taken from the rig name. * Update Action List: * Set Current Action: Set the action selected in the Actions list as the active action. * Delete Action: Permanently delete the action selected in the Actions list. The action must have zero users. It is quite cumbersome to permanently delete actions in Blender. The reason is that creating an action with hand animation takes much work, which should not be lost accidentally. The situation is different with mocap, where it is easy to fill up a blend file with many irrelevant actions. This button makes it easier to clean out such junk motions. * Delete Temporary Actions: Some tools create temporary actions, whose names start with a hash sign (#). Deletes all such actions. === Temporary properties === * Delete Temporary Properties. MakeWalk creates some properties for relevant posebones during retargeting. Pressing this button removes these properties. However, be aware that some of the tools in the Edit panel may fail if the temporrary properties are deleted. The temporary properties for the active posebone can be inspected in the N-panel. [[File:mwu-030-temp-props.png]] * McpBone: The name of this bone in the internal hierarchy. * McpParent: The parent of this bone in the internal hierarchy. * McpQuatW, McpQuatX, McpQuatY, McpQuatZ: The rotation of this bone in T-pose, represented as a quaternion. === T-pose === * Set T-pose: Set the current pose to T-pose. * Clear T-pose: Set the current pose to the default pose. * Load T-pose: Load a T-pose from a .json file to the active armature. * Save T-pose: Save the current pose as a .json file. === Rest Pose === * Current Pose => Rest Pose: Set the current pose to rest pose. acc20ec85dd4b36c8c67a5b169cabf5c87d4aa79 1121 707 2016-07-05T17:40:41Z Aranuvir 17 wikitext text/x-wiki MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ==== Retargeting: how it works ==== The goal of retargeting is to transfer a motion from a source armature (e.g. from a BVH file) to a given target armature (e.g. the MHX rig). However, it is not straightforward to assign the source action to the target rig, even if the bones have identical names. The motion of each bone is specified in local coordinates, relative to the parent and the bone's own rest pose. If the rest poses of the source and target armatures differ, the source F-curves can not be used directly by the target armature. [[File:makewalk-1.png]] The picture above shows a transformation in the local coordinate system. Since the parent's local Y points along its axis and its local Z points up, the child bone is rotated around the local X axis. This is not very useful if the target armature has a diffent rest pose. To retarget the pose, we therefore reexpress the transformation in the global coordinate system, as shown below. The local X rotation corresponds to a global Y rotation, and by a different angle. Once the global transformation matrix is known, we can reexpress it in the target bone's local coordinate system. The retargeting process thus consists of making two coordinate transformations: Source local => Global => Target local. This will ensure that the source bone and the target bone will have the same global orientation. [[File:makewalk_2.png]] Unfortunately, things are a little more complicated. We do not always want the source and target bones to have identical orientation. In particular, the root or pelvis bone may point in entirely different directions in different armatures. E.g. in the CMU armature rest pose the pelvis points forward-down, and in the MHX rig it points straight up. [[File:makewalk-3.png]] If we insisted that the root bone in the MHX rig would point in the same direction as in the CMU rig, the retargeting would not be very successful, as shown in the figure above. If we instead keep the rotation offset from the rest poses, the target pose becomes much better, as shown below. To calibrate the source and target armature against each other, MalkWalk introduces extra keyframes at frame 0, where both armatures are posed in T-pose. [[File:mcp-ret-060-calibrate.png]] In the rest of the animation, bones in the target armature copy the global rotations of the source armature, apart from differences present in the T-poses. In this way we can transfer animations from CMU to the MHX rig, despite the fact that the rest poses are very different. ==== Basic Workflow ==== === Retargeting === The MakeWalk panels appear in the tool shelf whenever an armature is the active object. Select the armature and press the Load And Retarget button. In the file selector, select the .bvh file. We choose the file 90_04.bvh from the CMU database. It is a cartwheel animation. [[File:makewalk-4.png]] After a short wait, the armature is doing gymnastics. [[File:makewalk-5.png]] At frame 0 of the animation the armature has been placed in T-pose. This is not part of the originial .bvh file, but inserted by MakeWalk to calibrate the source armature (defined by the bvh file) and the target armature (the selected armature in the viewport) against each other. === Supported armatures === MakeWalk works with most straightforward biped rigs with FK arms and legs, such as the Rigify meta-rig. There is also built-in support for some more complex rigs: the MHX advanced rig from MakeHuman, the MHX rig from MakeHuman and Rigify. [[File:makewalk-6.png]] It is often possible to use MakeWalk with other complex rig, but in that case the automatic bone identification may fail. If so, a bone map must be defined manually, see!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining a Target Rig Manually!/LINK!. === Troubleshooting === Retargeting is a rather involved subject, and it can sometimes result in poor motion. The process may even fail completely, usually because MakeWalk failed to automatically identify the bones of a complex rig. If this should happen, see!LINK!http://www.makehuman.org/doc/node/makewalk_errors_and_corrective_actions.html -- Errors and Corrective Actions!/LINK!. ==== Where to find BVH files ==== There are several different formats that mocap files can be stored in. MakeHuman's mocap tool can only deal with files in Biovision BVH format. BVH files can be bought from many commercial sources, but a large range of mocap files are also available for free download. Here are some sites I found useful. * CMU Graphics Lab Motion Capture Database: Hosted at Carnegie-Mellon University, this is a huge library of mocap files which can be downloaded for free. The web address is!LINK!http://mocap.cs.cmu.edu/ -- http://mocap.cs.cmu.edu!/LINK!. CMU hosts mocap files in three formats: tvd, c3d and amc. However, the mocap tool can only read BVH files, so none of these files can be used directly. Fortunately, B. Hahne at!LINK!http://www.cgspeed.com/ -- www.cgspeed.com!/LINK!has converted the CMU files to BVH. The converted files are located at!LINK!http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture -- http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture!/LINK!. * Advanced Computing Center for the Arts and Design (ACCAD): Hosted at the Ohio State University, this is another great source of free mocap files. BVH files can be downloaded from!LINK!http://accad.osu.edu/research/mocap/mocap_data.htm -- http://accad.osu.edu/research/mocap/mocap_data.htm!/LINK! * Eyes Japan (mocapdata.com):This is a Japanese company that sells mocap data commercially, but they also offer a huge number of motions for free. According to their homepage, mocapdata.com provides 744 premium motion data and 4197 free motion data. The only catch is that downloading requires registration. Not surprisingly, the homepage of mocapdata.com has the address!LINK!http://www.mocapdata.com/ -- http://www.mocapdata.com/!/LINK!. * The Trailer's Park: Free mocap data can also be found at the Trailer's Park,!LINK!http://www.thetrailerspark.com/ -- http://www.thetrailerspark.com!/LINK!. This site does not offer original data, but offer repacks of mocap data from other free sites for download. Free download is limited to some five packs per day, so some patience is required here. * Hochschule der Medien, Universität Bonn (HDM):!LINK!http://www.mpi-inf.mpg.de/resources/HDM05/ -- http://www.mpi-inf.mpg.de/resources/HDM05!/LINK! * The Perfume global site project #001:!LINK!http://perfume-dev.github.com/ -- http://perfume-dev.github.com/!/LINK! === MHBlenderTools: MakeWalk user interface === ==== The user interface ==== The user > interface of MakeWalk is located in under the Armature tab, and becomes visible when an armature is selected. It consists of six panels; the first one is open by default and the others are closed. [[File:makewalk-7_0.png]] * Load And Retarget: Select a BVH file and retarget it to the active armature. * Start Frame: The first frame in the BVH file to considered. * Last Frame: The last frame to be considered, unless the animation stops earlier. The difference last_frame - first_frame is the maximal number of frames after retargeting. The number of frames in the BVH file may be larger, if some frames are skipped due to subsampling * Detailed steps: When this options is selected, further buttons are show below * Load BVH File (.bvh). Load a BVH file, and create an animated armature from it. * Rename And Rescale BVH Rig. With the BVH armature active, and a target armature selected, rename and rescale the bones of the active armature to fit the target. * Load And Rename BVH File (.bvh). A combination of the previous two buttons. With a target armature active, load a BVH file, and create an animated armature with renamed and rescaled bones. * Retarget Selected To Active. Retarget the animation from a renamed and rescaled BVH armature to the active armature. * Simplify FCurves. Simplify the F-curves of the active armature. * Rescale FCurves. Rescale F-curevs of the active armature.What if retargeting fails? MakeWalk is designed to retarget animations to a given armature with a minimum of user intervention. However, retargeting is a complex process, and entirely automatic retargeting may fail or result in suboptimal motion. Information about how to identify and correct problems is found in!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Errors and Corrective Actions!/LINK!. A common problem is that automatic identification of bones in the target armature fails. A bone map can then be assigned manually, cf.!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Defining the Target Rig Manually.!/LINK! ==== Options panel ==== [[File:makewalk-8.png]] * Use Default Subsample. Blender normally plays the animation in 24 fps or 25 fps, but the animation in the BVH file may be recorded at a different speed. In particular, the BVH files from CMU were filmed at 120 fps. Enable this option to have the animation play at natural speed, irrespective of the frame rate in the BVH file. Other subsample options are described below. * Auto scale. Set the scale automatically based on the size of the left thigh. This choice has two motivations: * Almost all character do have a left leg. * The leg size is crucial for making walk cycles look good. * Scale. The default MakeHuman scale is decimeters - 1 unit = 1 decimeter. Translations in a BVH file are expressed in different units; often the base unit is inches, meters or centimeters, but more obscure units can also occur, e.g. in BVH files from CMU. If the scale is set incorrectly, rotations will still be correctly retargeted, but the character will appear to take giant leaps or miniscule steps. * Use Limits: If this option is enabled, MakeWalk honors any Limit Rotation constraints, and will not allow excessive rotations. If the animation in the bvh files exceeds some rotation limits, this makes the retargeted animation less faithful. On the other hand, the rig may not be built for excessive rotations, so unchecking this option can lead to other problems. * Unlock Rotation: If this option is disabled, MakeWalk honors any rotation locks. If the animation in the bvh files bend around locked axes, this makes the retargeted animation less faithful. If Unlock Rotation is enabled, any X or Z rotation locks are disabled. Y rotation locks (bone twisting) are never disabled. The reason for this is that in the MHX and Rigify rigs, forearm rotation is handled by deform bones controlled by hand twisting. * Auto source rig. The source rig (i.e. the armature defined by the BVH file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Source Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the source rig, based on the structure of the bone hierarchy. * Auto target rig. The target rig (i.e. the armature in the blend file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Target Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the target rig, based on the structure of the bone hierarchy. * Ignore Hidden Layers. Ignore bones on hidden layers when identifying the target rig. === Subsample and Rescale === If the Use Default Subsample option is set, the mocap tool will rescale the animation to fit the current frame rate. However, there are at least two reasons why you may want to load an animation at a different frame rate: * * To obtain a slow-motion or rapid-motion effect. * To quickly load an animation to see if the gross features will work out. If the Use Default Subsample option is disabled, the SubSample section becomes visible. * Subsample. Enable subsampling. * Subsample Factor. If the value of this property is n, only every n:th frame of the BVH animation is loaded. * Rescale. Enable rescaling. * Rescale Factor. If the value of this property is n, the time distance between keyframes is changed to n. * Rescale FCurves. Apply the settings above to existing F-curves rather than to the loaded animation. Rescaling differs from simply scaling F-curves in the F-curve editor. === Simplification === * Simplify FCurves. Remove unnecessary keyframes. * Max Loc Error. The maximal allowed error for location keyframes, in Blender units. A larger error results in fewer keyframes but less accuracy. * Max Rot Error. The maximal allowed error for rotation keyframes, in degrees. A larger error results in fewer keyframes but less accuracy. * Only Visible. Simplification only affect F-curves visible in the Graph editor. * Only Between Markers. Simplification only affects F-curves between the two outermost selected markers. The timeline must have at least two selected markers. ==== Edit panel ==== Loading and retargeting is normally only the first step in the creation of an animation from mocap data. There are many reasons why a loaded animation does not behave exactly the way you want it to: artifacts in the mocap data, differences in armature structure not compensated for correctly by the retargeting process, differences in body stature between the mocap actor and the target character, or simply that the filmed sequence does not do exactly what you intend.. It is of course possible to edit the action directly in the graph editor, but this is unpractical due to the amount of mocap data. The mocap tool offers several possibilities to edit an action at a higher level. These tools are colleted in the Edit Action panel which is located just below the Options panel. [[File:edit-action.png]] === Inverse Kinematics === * Transfer FK => IK: The load and retarget steps transfers an animation from a bvh file to the target character. However, only the FK bones are animated. Press this button to transfer the FK animation to the IK bones. Only works for the advanced MHX armature. If two markers are selected, only the animation between the markers is transferred. * Transfer IK => FK: Transfer the animation back from the IK bones to the FK bones. Useful if the IK animation has been edited, * Clear IK Animation: Remove all keyframes from all IK bones (arms and legs). * Clear FK Animation: Remove all keyframes from all FK bones (arms and legs). === Global Edit === * Shift Animation. Shift the keys for the selected bones at all keyframes.If two markers are selected, only the keyframes between the markers are deleted. * X,Y,Z: F-curves affected by the next button. * Fixate Bone Locations:Replace all location keys by their average. Only selected bones and keyframes between selected markers are affected. * Rescale Factor: Factor used by next button. * Rescale FCurves: Rescale all F-curves by the factor above. This is similar to scaling F-curves in the curve editor, but jumps are treated correctly. E.g., rotations of +180 degrees and -180 degrees are the same, but if we scale an F-curve with a factor two, the intermedate keyframe will have the average rotation 0 degrees, The Rescale FCurves button handles this case correctly. === Local Edit === This section could be called "Poor man's animation layers". A loaded mocap animation usually has imperfections that must be edited, but without changing the overall feel of the motion. The Start Edit button creates a new animation layer where differences from the original motion are stored as keys, called delta keys since delta often denotes a difference. * Start Edit: Start editing F-curves. * Undo Edit: Quit F-curve editing, without modifying the original F-curves. * Loc: Set a location delta keyframe. * Rot: Set a rotation delta keyframe. * LocRot: Set a location and rotation delta keyframe. * Delete: Remove all delta keyframes at the current time. * |<: Move to first delta keyframe * <: Move to previous delta keyframe. * >: Move to next delta keyframe. * >|: Move to last delta keyframe. * Confirm Edit: Modify the original F-curves and quit F-curve editing. The delta keys are represented by markers in the timeline. [[File:mwe-315-local-keys.png]] A delta key can be added with the Loc, Rot and LocRot buttons, and removed with Delete. There is no way to view the delta keys directly. In the viewport and the curve editor, the final pose is shown, which is the sum of the original pose and the delta key. A common use for delta keys is to correct for intersection with other objects or the character herself. The typical workflow is as follows: * * Start Edit. * Set a delta key at a good frame just before the intersection. * Set a delta key at a good frame just after the intersection. * Edit the pose a the frame(s) where intersection occurs. * If the intersection has been removed, Confirm Edit. If not, set new delta keys until it has, or Undo Edit to remove the delta layer. === Feet === * Left: Affect the left foot. * Right: Affect the right foot. * Hips: Affect the characters hip (COM) bone. * Offset Toes: Ensure that the toe is below the ball of the foot at all keyframes. Primarily useful for rigs with a reverse foot setup as explained below. * Keep Feet Above Floor: If a mesh object (typically a plane) is selected, shift the keyframes to keep the affected feet above the plane. The plane does not necessarily lie in the XY plane; if the plane is tilted, the feet are kept on the plane's upper side. If no plane is selected, the feet are kept above the XY plane (z = 0). The IK feet are affected if the rig has and uses IK legs, otherwise the FK feet are kept above the floor. If two markers are selected, only the keyframes inbetween are shifted. In a rig with a reverse foot setup, such as the MHX rig, the foot can rotate around the toe, ball, and heel. The reverse foot and toe bones are completely fixed by the corresponding FK bones, but the IK effector can be placed arbitrarily, as long as it ends at the toe tip. The transfer tool uses this freedom to make the IK effector perfectly horizontal, provided that the toe is below the ball and heel. [[File:refoot.png]] To use this feature we must ensure that the toe is below the ball of the foot, which is done by the Offset Toes button. === Loop And Repeat === !LINK! -- Loop Animation!/LINK! Create a loop of the action between two selected time markers, by blending the keyframes in the beginning and end of the loop. This is useful e.g. to create walk and run cycles for games. For good results, the poses at the beginning and end of the selected region should be similar. * Blend Range: The number of keyframes used for blending. * Loop in place: Remove the X and Y components of the root bone's location. * Loop F-curves: Loop the animation. !LINK! -- Repeat Animation!/LINK! Repeat the action between two selected time markers. The actions should preferably be looped before it is repeated, to make the beginning and end match seamlessly. * Repeat Number: The number of repetitions. * Repeat F-curves: Repeat the animation. === Stitching === Create a new action by stitching two actions together seamlessly. * Update Action List: Update the first and second action drop-down lists. * First Action: The name of the first action. * First End Frame: Last frame of the first action * Set Current Action: Set the first action as the current action. * Second Action: The name of the second action. * Second Start Frame: First frame of the second action. * Set Current Action: Set the second action as the current action. * Action Target: Choose between creating a new action and prepending the second action. * Blend Range: The number of keyframes used for blending. Same parameter as in Loop Animations section. * Output Action Name: * Stitch Actions: Stitch the actions together. === MHBlenderTools: MakeWalk armatures === ==== Source Armature panel ==== MakeWalk transfers an animation from a source armature, defined in a bvh file, to a given target armature. It uses an intermediate standard rig described in!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. The bone map from the source armature to the target armature hence consists of two parts: * A map from the source rig to the standard rig. It is defined in the MakeWalk: Source Armature panel. * A map from the target rig to the standard rig. It is defined in the!LINK!http://makehuman.org/doc/node/makewalk_target_armature_panel.html -- MakeWalk: Target Armature panel!/LINK!. [[File:mws-010-panel.png]] When a new scene is opened, the panel consists of the single button Initialize Source Panel. Once this button has been pressed, the following content is available: [[File:mws-020-auto.png]] * Reinit Source Panel: Reinitialization. * Auto Source Rig: If this option is enabled, MakeWalk will try to identify the source rig automatically. It may happen that MakeWalk fails to identify the source rig automatically, but this is very unusual. If it should nevertheless happen, it is possible to define the bone map manually in analogy with !LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- how it is done for target rigs!/LINK!. * Source rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected source rig (if Auto Source Rig is disabled) or to Automatic. * Bones in the active source rig. ==== Target Armature panel ==== The second part of the mapping from source to target armatures is defined by the panel labelled MH Mocap: Target armature. It is the top-most of the mocap tool panels, and is closed by default. When a new scene is opened, the panel consists of the single button Initialize Target Panel. Once this button has been pressed, the following content is available: [[File:mwt-011-panel.png]] * Reinit Target Panel. Reinitialization. * Target rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected Target rig (if Auto Target rig guessing is disabled), or is set to a matching rig (if automatic target rig identificiation is enabled). * Auto Target Rig. If this option is enabled, MakeWalk will try to identify the target rig automatically. However, automatic rig identification is not trivial for complex rigs, and it may fail. If so, the bone map may be specified manually, cf!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. If the bone map is defined. The target rigs available by default correspond mostly to the rig presets that can be exported from MakeHuman * MHX. An advanced rig from MakeHuman alpha 8. * MH Alpha 7. The MHX rig from MakeHuman alpha 7. * Rigify. * Ignore Hidden Layers: Ignore bones on hidden layers during automatic rig identification. * Reverse Hip. Select this option if the armature has an reverse hip. It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. * Identify Target Rig: Identify the target rig, i.e. find out how bone names in the active armature correspond to the internal names. This step is performed automatically during retargeting, but the identification can also be done separately for debugging purposes. The bone map appears in the area called FK bones below. * Set T-pose. Pose the active armature in T-pose. * Save T-pose. Option used by the next button. * Save Target File. Save the current bone map as a .trg file. If the Save T-pose option is set, also save a json file defining the T-pose. * FK bones. The bone map. The picture below shows automatic rig identification of the Rigify meta-rig (Add > Armature > Advanced Human). [[File:mwt-020-metarig.png]] === MHBlenderTools: MakeWalk troubleshooting. === ==== What if retargeting fails? ==== === Errors and Corrective Actions === This document will describe common errors and corrective actions. It may happen that MakeWalk fails to retarget an animation to a given armature. In that case an error message is displayed. [[File:mwa-100-error.png]] The error message consists of the following: Mocap error Category Detailed error message A link to this page MakeWalk errors are grouped into the following categories: * Load Bvh File * Rename And Rescale * Identify Target Rig * Automatic Target Rig * Manual Target Rig * Identify Source Rig * Retarget * General Error Load Bvh File Rename And Rescale Identify Target Rig === Automatic Target Rig === The most common problem is probably that MakeWalk fails to identify the target rig automatically. There are several possible reasons for this: * The character is not oriented correctly. In the rest pose, the character should be standing with up being the positive Z axis and facing -Y. * The armature is complex with extra bones not corresponding to a standard biped rig. * The armature only has IK arms or legs. MakeWalk retargets animations to the FK limbs, so if no such bones exist, the program will not work. [[File:mwa-110-reverse-hip.png]] It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. [[File:mwa-120-reversehip.png]] The advantage of such a setup is that the upper and lower body can be posed independently. However, MakeWalk failes to identify the bones, unless the Reverse Hip option has been enabled. If automatic bone identification still fails, bone mapping has to be made manually. How this is done is described in the next section. === Defining the Target Rig Manually === Internally, MakeWalk retargets animations to an armature with the following bone hierarchy. Here is a visual illustration of the bone hierarchy: [[File:mwa-010-armature.png]] In order to retarget to an armature with different bone names, we must define a map between the given bones and the internal names. By default, MakeWalk attempts to do this automatically. However, automatic bone mapping may easily be confused for non-trivial rigs. If this happens, one can define the bone map manually. A bone map for a target armature is defined by a .trg file located in the target_rigs folder under the makewalk directory. The folder already contains three files, for retargeting the MHX advanced rig, the MakeHuman, and Rigify. These rigs are too complicated to identify the bone map automatically, so MakeWalk recognizes these rigs and use the predefined bone map. Create a .trg file using an existing file as a template. E.g., a .trg file could look like this: Note that it is not necessary to define maps to all bones. Bone names must not contain spaces, since whitespace is used as a delimiter in the .trg file. If the bones in your armature do contain spaces, replace them by underscore ( _ ). MakeWalk treats space and underscore as equivalent, so this is not a problem, except for very strange naming convention. [[File:mwa-020-myrig.png]] Save the .trg file with the name my_rig.trg in the target_rigs folder and press the Reinit Target Panel button. My_Rig should now appear in the Target rig list. Select it. In the FK bones sections, the My_Rig bone names are now listed. Make sure that the Auto Target Rig option is deselected, to override automatic bone mapping. Finally go to the main panel and press Load And Retarget. The animation should now be loaded. === MHBlenderTools: MakeWalk utilities === ==== Utilities panel ==== This panel contains material that does not naturally fit into the other panels. [[File:mwu-010-panel.png]] === Default Settings === * Save Defaults: Save current settings as the default settings. * Load Defaults: Load the default settings from file. === Manage Actions === * Actions: A list of all actions in the scene, at the time when the Update Action List button was last pressed. * Filter: If selected, only actions belonging to the active character are included in the action list. When the mocap tool creates an action, the first four letters in the action name are taken from the rig name. * Update Action List: * Set Current Action: Set the action selected in the Actions list as the active action. * Delete Action: Permanently delete the action selected in the Actions list. The action must have zero users. It is quite cumbersome to permanently delete actions in Blender. The reason is that creating an action with hand animation takes much work, which should not be lost accidentally. The situation is different with mocap, where it is easy to fill up a blend file with many irrelevant actions. This button makes it easier to clean out such junk motions. * Delete Temporary Actions: Some tools create temporary actions, whose names start with a hash sign (#). Deletes all such actions. === Temporary properties === * Delete Temporary Properties. MakeWalk creates some properties for relevant posebones during retargeting. Pressing this button removes these properties. However, be aware that some of the tools in the Edit panel may fail if the temporrary properties are deleted. The temporary properties for the active posebone can be inspected in the N-panel. [[File:mwu-030-temp-props.png]] * McpBone: The name of this bone in the internal hierarchy. * McpParent: The parent of this bone in the internal hierarchy. * McpQuatW, McpQuatX, McpQuatY, McpQuatZ: The rotation of this bone in T-pose, represented as a quaternion. === T-pose === * Set T-pose: Set the current pose to T-pose. * Clear T-pose: Set the current pose to the default pose. * Load T-pose: Load a T-pose from a .json file to the active armature. * Save T-pose: Save the current pose as a .json file. === Rest Pose === * Current Pose => Rest Pose: Set the current pose to rest pose. ce77f281b262489ed8b8db5f0cbe7cc1e1a375ad 707 2016-05-20T11:19:08Z Joepal 14 Created page with "MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ==== Retargeting: how it works ==== The goal of retargeting is to transfer a motion..." wikitext text/x-wiki MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ==== Retargeting: how it works ==== The goal of retargeting is to transfer a motion from a source armature (e.g. from a BVH file) to a given target armature (e.g. the MHX rig). However, it is not straightforward to assign the source action to the target rig, even if the bones have identical names. The motion of each bone is specified in local coordinates, relative to the parent and the bone's own rest pose. If the rest poses of the source and target armatures differ, the source F-curves can not be used directly by the target armature. !IMAGE!Pictures/makewalk-1.png!/IMAGE! The picture above shows a transformation in the local coordinate system. Since the parent's local Y points along its axis and its local Z points up, the child bone is rotated around the local X axis. This is not very useful if the target armature has a diffent rest pose. To retarget the pose, we therefore reexpress the transformation in the global coordinate system, as shown below. The local X rotation corresponds to a global Y rotation, and by a different angle. Once the global transformation matrix is known, we can reexpress it in the target bone's local coordinate system. The retargeting process thus consists of making two coordinate transformations: Source local => Global => Target local. This will ensure that the source bone and the target bone will have the same global orientation. !IMAGE!Pictures/makewalk_2.png!/IMAGE! Unfortunately, things are a little more complicated. We do not always want the source and target bones to have identical orientation. In particular, the root or pelvis bone may point in entirely different directions in different armatures. E.g. in the CMU armature rest pose the pelvis points forward-down, and in the MHX rig it points straight up. !IMAGE!Pictures/makewalk-3.png!/IMAGE! If we insisted that the root bone in the MHX rig would point in the same direction as in the CMU rig, the retargeting would not be very successful, as shown in the figure above. If we instead keep the rotation offset from the rest poses, the target pose becomes much better, as shown below. To calibrate the source and target armature against each other, MalkWalk introduces extra keyframes at frame 0, where both armatures are posed in T-pose. !IMAGE!Pictures/mcp-ret-060-calibrate.png!/IMAGE! In the rest of the animation, bones in the target armature copy the global rotations of the source armature, apart from differences present in the T-poses. In this way we can transfer animations from CMU to the MHX rig, despite the fact that the rest poses are very different. ==== Basic Workflow ==== === Retargeting === The MakeWalk panels appear in the tool shelf whenever an armature is the active object. Select the armature and press the Load And Retarget button. In the file selector, select the .bvh file. We choose the file 90_04.bvh from the CMU database. It is a cartwheel animation. !IMAGE!Pictures/makewalk-4.png!/IMAGE! After a short wait, the armature is doing gymnastics. !IMAGE!Pictures/makewalk-5.png!/IMAGE! At frame 0 of the animation the armature has been placed in T-pose. This is not part of the originial .bvh file, but inserted by MakeWalk to calibrate the source armature (defined by the bvh file) and the target armature (the selected armature in the viewport) against each other. === Supported armatures === MakeWalk works with most straightforward biped rigs with FK arms and legs, such as the Rigify meta-rig. There is also built-in support for some more complex rigs: the MHX advanced rig from MakeHuman, the MHX rig from MakeHuman and Rigify. !IMAGE!Pictures/makewalk-6.png!/IMAGE! It is often possible to use MakeWalk with other complex rig, but in that case the automatic bone identification may fail. If so, a bone map must be defined manually, see!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining a Target Rig Manually!/LINK!. === Troubleshooting === Retargeting is a rather involved subject, and it can sometimes result in poor motion. The process may even fail completely, usually because MakeWalk failed to automatically identify the bones of a complex rig. If this should happen, see!LINK!http://www.makehuman.org/doc/node/makewalk_errors_and_corrective_actions.html -- Errors and Corrective Actions!/LINK!. ==== Where to find BVH files ==== There are several different formats that mocap files can be stored in. MakeHuman's mocap tool can only deal with files in Biovision BVH format. BVH files can be bought from many commercial sources, but a large range of mocap files are also available for free download. Here are some sites I found useful. * CMU Graphics Lab Motion Capture Database: Hosted at Carnegie-Mellon University, this is a huge library of mocap files which can be downloaded for free. The web address is!LINK!http://mocap.cs.cmu.edu/ -- http://mocap.cs.cmu.edu!/LINK!. CMU hosts mocap files in three formats: tvd, c3d and amc. However, the mocap tool can only read BVH files, so none of these files can be used directly. Fortunately, B. Hahne at!LINK!http://www.cgspeed.com/ -- www.cgspeed.com!/LINK!has converted the CMU files to BVH. The converted files are located at!LINK!http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture -- http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture!/LINK!. * Advanced Computing Center for the Arts and Design (ACCAD): Hosted at the Ohio State University, this is another great source of free mocap files. BVH files can be downloaded from!LINK!http://accad.osu.edu/research/mocap/mocap_data.htm -- http://accad.osu.edu/research/mocap/mocap_data.htm!/LINK! * Eyes Japan (mocapdata.com):This is a Japanese company that sells mocap data commercially, but they also offer a huge number of motions for free. According to their homepage, mocapdata.com provides 744 premium motion data and 4197 free motion data. The only catch is that downloading requires registration. Not surprisingly, the homepage of mocapdata.com has the address!LINK!http://www.mocapdata.com/ -- http://www.mocapdata.com/!/LINK!. * The Trailer's Park: Free mocap data can also be found at the Trailer's Park,!LINK!http://www.thetrailerspark.com/ -- http://www.thetrailerspark.com!/LINK!. This site does not offer original data, but offer repacks of mocap data from other free sites for download. Free download is limited to some five packs per day, so some patience is required here. * Hochschule der Medien, Universität Bonn (HDM):!LINK!http://www.mpi-inf.mpg.de/resources/HDM05/ -- http://www.mpi-inf.mpg.de/resources/HDM05!/LINK! * The Perfume global site project #001:!LINK!http://perfume-dev.github.com/ -- http://perfume-dev.github.com/!/LINK! === MHBlenderTools: MakeWalk user interface === ==== The user interface ==== The user > interface of MakeWalk is located in under the Armature tab, and becomes visible when an armature is selected. It consists of six panels; the first one is open by default and the others are closed. !IMAGE!Pictures/makewalk-7_0.png!/IMAGE! * Load And Retarget: Select a BVH file and retarget it to the active armature. * Start Frame: The first frame in the BVH file to considered. * Last Frame: The last frame to be considered, unless the animation stops earlier. The difference last_frame - first_frame is the maximal number of frames after retargeting. The number of frames in the BVH file may be larger, if some frames are skipped due to subsampling * Detailed steps: When this options is selected, further buttons are show below * Load BVH File (.bvh). Load a BVH file, and create an animated armature from it. * Rename And Rescale BVH Rig. With the BVH armature active, and a target armature selected, rename and rescale the bones of the active armature to fit the target. * Load And Rename BVH File (.bvh). A combination of the previous two buttons. With a target armature active, load a BVH file, and create an animated armature with renamed and rescaled bones. * Retarget Selected To Active. Retarget the animation from a renamed and rescaled BVH armature to the active armature. * Simplify FCurves. Simplify the F-curves of the active armature. * Rescale FCurves. Rescale F-curevs of the active armature.What if retargeting fails? MakeWalk is designed to retarget animations to a given armature with a minimum of user intervention. However, retargeting is a complex process, and entirely automatic retargeting may fail or result in suboptimal motion. Information about how to identify and correct problems is found in!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Errors and Corrective Actions!/LINK!. A common problem is that automatic identification of bones in the target armature fails. A bone map can then be assigned manually, cf.!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Defining the Target Rig Manually.!/LINK! ==== Options panel ==== !IMAGE!Pictures/makewalk-8.png!/IMAGE! * Use Default Subsample. Blender normally plays the animation in 24 fps or 25 fps, but the animation in the BVH file may be recorded at a different speed. In particular, the BVH files from CMU were filmed at 120 fps. Enable this option to have the animation play at natural speed, irrespective of the frame rate in the BVH file. Other subsample options are described below. * Auto scale. Set the scale automatically based on the size of the left thigh. This choice has two motivations: * Almost all character do have a left leg. * The leg size is crucial for making walk cycles look good. * Scale. The default MakeHuman scale is decimeters - 1 unit = 1 decimeter. Translations in a BVH file are expressed in different units; often the base unit is inches, meters or centimeters, but more obscure units can also occur, e.g. in BVH files from CMU. If the scale is set incorrectly, rotations will still be correctly retargeted, but the character will appear to take giant leaps or miniscule steps. * Use Limits: If this option is enabled, MakeWalk honors any Limit Rotation constraints, and will not allow excessive rotations. If the animation in the bvh files exceeds some rotation limits, this makes the retargeted animation less faithful. On the other hand, the rig may not be built for excessive rotations, so unchecking this option can lead to other problems. * Unlock Rotation: If this option is disabled, MakeWalk honors any rotation locks. If the animation in the bvh files bend around locked axes, this makes the retargeted animation less faithful. If Unlock Rotation is enabled, any X or Z rotation locks are disabled. Y rotation locks (bone twisting) are never disabled. The reason for this is that in the MHX and Rigify rigs, forearm rotation is handled by deform bones controlled by hand twisting. * Auto source rig. The source rig (i.e. the armature defined by the BVH file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Source Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the source rig, based on the structure of the bone hierarchy. * Auto target rig. The target rig (i.e. the armature in the blend file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Target Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the target rig, based on the structure of the bone hierarchy. * Ignore Hidden Layers. Ignore bones on hidden layers when identifying the target rig. === Subsample and Rescale === If the Use Default Subsample option is set, the mocap tool will rescale the animation to fit the current frame rate. However, there are at least two reasons why you may want to load an animation at a different frame rate: * * To obtain a slow-motion or rapid-motion effect. * To quickly load an animation to see if the gross features will work out. If the Use Default Subsample option is disabled, the SubSample section becomes visible. * Subsample. Enable subsampling. * Subsample Factor. If the value of this property is n, only every n:th frame of the BVH animation is loaded. * Rescale. Enable rescaling. * Rescale Factor. If the value of this property is n, the time distance between keyframes is changed to n. * Rescale FCurves. Apply the settings above to existing F-curves rather than to the loaded animation. Rescaling differs from simply scaling F-curves in the F-curve editor. === Simplification === * Simplify FCurves. Remove unnecessary keyframes. * Max Loc Error. The maximal allowed error for location keyframes, in Blender units. A larger error results in fewer keyframes but less accuracy. * Max Rot Error. The maximal allowed error for rotation keyframes, in degrees. A larger error results in fewer keyframes but less accuracy. * Only Visible. Simplification only affect F-curves visible in the Graph editor. * Only Between Markers. Simplification only affects F-curves between the two outermost selected markers. The timeline must have at least two selected markers. ==== Edit panel ==== Loading and retargeting is normally only the first step in the creation of an animation from mocap data. There are many reasons why a loaded animation does not behave exactly the way you want it to: artifacts in the mocap data, differences in armature structure not compensated for correctly by the retargeting process, differences in body stature between the mocap actor and the target character, or simply that the filmed sequence does not do exactly what you intend.. It is of course possible to edit the action directly in the graph editor, but this is unpractical due to the amount of mocap data. The mocap tool offers several possibilities to edit an action at a higher level. These tools are colleted in the Edit Action panel which is located just below the Options panel. !IMAGE!Pictures/edit-action.png!/IMAGE! === Inverse Kinematics === * Transfer FK => IK: The load and retarget steps transfers an animation from a bvh file to the target character. However, only the FK bones are animated. Press this button to transfer the FK animation to the IK bones. Only works for the advanced MHX armature. If two markers are selected, only the animation between the markers is transferred. * Transfer IK => FK: Transfer the animation back from the IK bones to the FK bones. Useful if the IK animation has been edited, * Clear IK Animation: Remove all keyframes from all IK bones (arms and legs). * Clear FK Animation: Remove all keyframes from all FK bones (arms and legs). === Global Edit === * Shift Animation. Shift the keys for the selected bones at all keyframes.If two markers are selected, only the keyframes between the markers are deleted. * X,Y,Z: F-curves affected by the next button. * Fixate Bone Locations:Replace all location keys by their average. Only selected bones and keyframes between selected markers are affected. * Rescale Factor: Factor used by next button. * Rescale FCurves: Rescale all F-curves by the factor above. This is similar to scaling F-curves in the curve editor, but jumps are treated correctly. E.g., rotations of +180 degrees and -180 degrees are the same, but if we scale an F-curve with a factor two, the intermedate keyframe will have the average rotation 0 degrees, The Rescale FCurves button handles this case correctly. === Local Edit === This section could be called "Poor man's animation layers". A loaded mocap animation usually has imperfections that must be edited, but without changing the overall feel of the motion. The Start Edit button creates a new animation layer where differences from the original motion are stored as keys, called delta keys since delta often denotes a difference. * Start Edit: Start editing F-curves. * Undo Edit: Quit F-curve editing, without modifying the original F-curves. * Loc: Set a location delta keyframe. * Rot: Set a rotation delta keyframe. * LocRot: Set a location and rotation delta keyframe. * Delete: Remove all delta keyframes at the current time. * |<: Move to first delta keyframe * <: Move to previous delta keyframe. * >: Move to next delta keyframe. * >|: Move to last delta keyframe. * Confirm Edit: Modify the original F-curves and quit F-curve editing. The delta keys are represented by markers in the timeline. !IMAGE!Pictures/mwe-315-local-keys.png!/IMAGE! A delta key can be added with the Loc, Rot and LocRot buttons, and removed with Delete. There is no way to view the delta keys directly. In the viewport and the curve editor, the final pose is shown, which is the sum of the original pose and the delta key. A common use for delta keys is to correct for intersection with other objects or the character herself. The typical workflow is as follows: * * Start Edit. * Set a delta key at a good frame just before the intersection. * Set a delta key at a good frame just after the intersection. * Edit the pose a the frame(s) where intersection occurs. * If the intersection has been removed, Confirm Edit. If not, set new delta keys until it has, or Undo Edit to remove the delta layer. === Feet === * Left: Affect the left foot. * Right: Affect the right foot. * Hips: Affect the characters hip (COM) bone. * Offset Toes: Ensure that the toe is below the ball of the foot at all keyframes. Primarily useful for rigs with a reverse foot setup as explained below. * Keep Feet Above Floor: If a mesh object (typically a plane) is selected, shift the keyframes to keep the affected feet above the plane. The plane does not necessarily lie in the XY plane; if the plane is tilted, the feet are kept on the plane's upper side. If no plane is selected, the feet are kept above the XY plane (z = 0). The IK feet are affected if the rig has and uses IK legs, otherwise the FK feet are kept above the floor. If two markers are selected, only the keyframes inbetween are shifted. In a rig with a reverse foot setup, such as the MHX rig, the foot can rotate around the toe, ball, and heel. The reverse foot and toe bones are completely fixed by the corresponding FK bones, but the IK effector can be placed arbitrarily, as long as it ends at the toe tip. The transfer tool uses this freedom to make the IK effector perfectly horizontal, provided that the toe is below the ball and heel. !IMAGE!Pictures/refoot.png!/IMAGE! To use this feature we must ensure that the toe is below the ball of the foot, which is done by the Offset Toes button. === Loop And Repeat === !LINK! -- Loop Animation!/LINK! Create a loop of the action between two selected time markers, by blending the keyframes in the beginning and end of the loop. This is useful e.g. to create walk and run cycles for games. For good results, the poses at the beginning and end of the selected region should be similar. * Blend Range: The number of keyframes used for blending. * Loop in place: Remove the X and Y components of the root bone's location. * Loop F-curves: Loop the animation. !LINK! -- Repeat Animation!/LINK! Repeat the action between two selected time markers. The actions should preferably be looped before it is repeated, to make the beginning and end match seamlessly. * Repeat Number: The number of repetitions. * Repeat F-curves: Repeat the animation. === Stitching === Create a new action by stitching two actions together seamlessly. * Update Action List: Update the first and second action drop-down lists. * First Action: The name of the first action. * First End Frame: Last frame of the first action * Set Current Action: Set the first action as the current action. * Second Action: The name of the second action. * Second Start Frame: First frame of the second action. * Set Current Action: Set the second action as the current action. * Action Target: Choose between creating a new action and prepending the second action. * Blend Range: The number of keyframes used for blending. Same parameter as in Loop Animations section. * Output Action Name: * Stitch Actions: Stitch the actions together. === MHBlenderTools: MakeWalk armatures === ==== Source Armature panel ==== MakeWalk transfers an animation from a source armature, defined in a bvh file, to a given target armature. It uses an intermediate standard rig described in!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. The bone map from the source armature to the target armature hence consists of two parts: * A map from the source rig to the standard rig. It is defined in the MakeWalk: Source Armature panel. * A map from the target rig to the standard rig. It is defined in the!LINK!http://makehuman.org/doc/node/makewalk_target_armature_panel.html -- MakeWalk: Target Armature panel!/LINK!. !IMAGE!Pictures/mws-010-panel.png!/IMAGE! When a new scene is opened, the panel consists of the single button Initialize Source Panel. Once this button has been pressed, the following content is available: !IMAGE!Pictures/mws-020-auto.png!/IMAGE! * Reinit Source Panel: Reinitialization. * Auto Source Rig: If this option is enabled, MakeWalk will try to identify the source rig automatically. It may happen that MakeWalk fails to identify the source rig automatically, but this is very unusual. If it should nevertheless happen, it is possible to define the bone map manually in analogy with !LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- how it is done for target rigs!/LINK!. * Source rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected source rig (if Auto Source Rig is disabled) or to Automatic. * Bones in the active source rig. ==== Target Armature panel ==== The second part of the mapping from source to target armatures is defined by the panel labelled MH Mocap: Target armature. It is the top-most of the mocap tool panels, and is closed by default. When a new scene is opened, the panel consists of the single button Initialize Target Panel. Once this button has been pressed, the following content is available: !IMAGE!Pictures/mwt-011-panel.png!/IMAGE! * Reinit Target Panel. Reinitialization. * Target rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected Target rig (if Auto Target rig guessing is disabled), or is set to a matching rig (if automatic target rig identificiation is enabled). * Auto Target Rig. If this option is enabled, MakeWalk will try to identify the target rig automatically. However, automatic rig identification is not trivial for complex rigs, and it may fail. If so, the bone map may be specified manually, cf!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. If the bone map is defined. The target rigs available by default correspond mostly to the rig presets that can be exported from MakeHuman * MHX. An advanced rig from MakeHuman alpha 8. * MH Alpha 7. The MHX rig from MakeHuman alpha 7. * Rigify. * Ignore Hidden Layers: Ignore bones on hidden layers during automatic rig identification. * Reverse Hip. Select this option if the armature has an reverse hip. It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. * Identify Target Rig: Identify the target rig, i.e. find out how bone names in the active armature correspond to the internal names. This step is performed automatically during retargeting, but the identification can also be done separately for debugging purposes. The bone map appears in the area called FK bones below. * Set T-pose. Pose the active armature in T-pose. * Save T-pose. Option used by the next button. * Save Target File. Save the current bone map as a .trg file. If the Save T-pose option is set, also save a json file defining the T-pose. * FK bones. The bone map. The picture below shows automatic rig identification of the Rigify meta-rig (Add > Armature > Advanced Human). !IMAGE!Pictures/mwt-020-metarig.png!/IMAGE! === MHBlenderTools: MakeWalk troubleshooting. === ==== What if retargeting fails? ==== === Errors and Corrective Actions === This document will describe common errors and corrective actions. It may happen that MakeWalk fails to retarget an animation to a given armature. In that case an error message is displayed. !IMAGE!Pictures/mwa-100-error.png!/IMAGE! The error message consists of the following: Mocap error Category Detailed error message A link to this page MakeWalk errors are grouped into the following categories: * Load Bvh File * Rename And Rescale * Identify Target Rig * Automatic Target Rig * Manual Target Rig * Identify Source Rig * Retarget * General Error Load Bvh File Rename And Rescale Identify Target Rig === Automatic Target Rig === The most common problem is probably that MakeWalk fails to identify the target rig automatically. There are several possible reasons for this: * The character is not oriented correctly. In the rest pose, the character should be standing with up being the positive Z axis and facing -Y. * The armature is complex with extra bones not corresponding to a standard biped rig. * The armature only has IK arms or legs. MakeWalk retargets animations to the FK limbs, so if no such bones exist, the program will not work. !IMAGE!Pictures/mwa-110-reverse-hip.png!/IMAGE! It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. !IMAGE!Pictures/mwa-120-reversehip.png!/IMAGE! The advantage of such a setup is that the upper and lower body can be posed independently. However, MakeWalk failes to identify the bones, unless the Reverse Hip option has been enabled. If automatic bone identification still fails, bone mapping has to be made manually. How this is done is described in the next section. === Defining the Target Rig Manually === Internally, MakeWalk retargets animations to an armature with the following bone hierarchy. Here is a visual illustration of the bone hierarchy: !IMAGE!Pictures/mwa-010-armature.png!/IMAGE! In order to retarget to an armature with different bone names, we must define a map between the given bones and the internal names. By default, MakeWalk attempts to do this automatically. However, automatic bone mapping may easily be confused for non-trivial rigs. If this happens, one can define the bone map manually. A bone map for a target armature is defined by a .trg file located in the target_rigs folder under the makewalk directory. The folder already contains three files, for retargeting the MHX advanced rig, the MakeHuman, and Rigify. These rigs are too complicated to identify the bone map automatically, so MakeWalk recognizes these rigs and use the predefined bone map. Create a .trg file using an existing file as a template. E.g., a .trg file could look like this: Note that it is not necessary to define maps to all bones. Bone names must not contain spaces, since whitespace is used as a delimiter in the .trg file. If the bones in your armature do contain spaces, replace them by underscore ( _ ). MakeWalk treats space and underscore as equivalent, so this is not a problem, except for very strange naming convention. !IMAGE!Pictures/mwa-020-myrig.png!/IMAGE! Save the .trg file with the name my_rig.trg in the target_rigs folder and press the Reinit Target Panel button. My_Rig should now appear in the Target rig list. Select it. In the FK bones sections, the My_Rig bone names are now listed. Make sure that the Auto Target Rig option is deselected, to override automatic bone mapping. Finally go to the main panel and press Load And Retarget. The animation should now be loaded. === MHBlenderTools: MakeWalk utilities === ==== Utilities panel ==== This panel contains material that does not naturally fit into the other panels. !IMAGE!Pictures/mwu-010-panel.png!/IMAGE! === Default Settings === * Save Defaults: Save current settings as the default settings. * Load Defaults: Load the default settings from file. === Manage Actions === * Actions: A list of all actions in the scene, at the time when the Update Action List button was last pressed. * Filter: If selected, only actions belonging to the active character are included in the action list. When the mocap tool creates an action, the first four letters in the action name are taken from the rig name. * Update Action List: * Set Current Action: Set the action selected in the Actions list as the active action. * Delete Action: Permanently delete the action selected in the Actions list. The action must have zero users. It is quite cumbersome to permanently delete actions in Blender. The reason is that creating an action with hand animation takes much work, which should not be lost accidentally. The situation is different with mocap, where it is easy to fill up a blend file with many irrelevant actions. This button makes it easier to clean out such junk motions. * Delete Temporary Actions: Some tools create temporary actions, whose names start with a hash sign (#). Deletes all such actions. === Temporary properties === * Delete Temporary Properties. MakeWalk creates some properties for relevant posebones during retargeting. Pressing this button removes these properties. However, be aware that some of the tools in the Edit panel may fail if the temporrary properties are deleted. The temporary properties for the active posebone can be inspected in the N-panel. !IMAGE!Pictures/mwu-030-temp-props.png!/IMAGE! * McpBone: The name of this bone in the internal hierarchy. * McpParent: The parent of this bone in the internal hierarchy. * McpQuatW, McpQuatX, McpQuatY, McpQuatZ: The rotation of this bone in T-pose, represented as a quaternion. === T-pose === * Set T-pose: Set the current pose to T-pose. * Clear T-pose: Set the current pose to the default pose. * Load T-pose: Load a T-pose from a .json file to the active armature. * Save T-pose: Save the current pose as a .json file. === Rest Pose === * Current Pose => Rest Pose: Set the current pose to rest pose. b649bc868cb2c461265fee893615e06385591290 Documentation:Making a simple dress 3000 328 859 858 2016-05-26T12:50:51Z Joepal 14 wikitext text/x-wiki [[File:mc2a-010-female.png]] Start with an empty scene and add a character. Since dresses are mainly worn by women, we select the character type Average Female. A dress is typically attached to the tights and skirt helpers, so we need to load a Human With Helpers. A human mesh appears in the viewport. [[File:mc2a-020-model-dress.png]] Now model the dress using the human mesh as a reference. Give the dress mesh the object name Dress. This is important, because the object name will determine the file paths as well as the clothing's name in MakeHuman. [[File:mc2a-030-material.png]] Assign a material to the dress. We will go for a simple, monochromatic material without textures. Again we must choose a name for the material. The name will appear in the mhmat file that describes the clothing's material properties. Note that the render engine must be set to Blender Internal to create the material. MakeClothes does not work with the Cycles renderer. [[File:mc2a-040-seams.png]] Before we can associate the dress mesh with the human mesh, it must first be UV unwrapped. To this end, create seams at suitable edges. [[File:mc2a-050-uvs.png]] UV unwrap the mesh. At this point we could paint a texture for the dress, but for our simple monochromatic material this is not necessary. [[File:mc2a-060-make-clothes.png]] Finally, we are ready to create the clothes. Press the Make Clothes button. [[File:mc2a-070-terminal.png]] Since the program can take quite a while to complete, we can monitor progress in the terminal/dos window. For every tenth vertex, the following information is printed in the terminal: * Clothing vertex number * Closest human vertex in same vertex group. * Distance between clothes vertex and human mesh face. * Vertex group * Clothes vertex group index * Human vertex group index The output files are also listed in the terminal window. [[File:mc2a-090-files.png]] MakeClothes creates a new folder named like the clothing name (in this case, Dress), with three files in it: * <em>dress.mhclo</em>: Describes the associate between clothing and human vertices. * <em>dress.obj</em>: Describes the clothes mesh. This is a standard .obj file which can be imported into most packages. * <em>dress.mhmat</em>: Describes the material properties. By default, the dress folder is created in the following directory: * On Windows: Documents\makehuman\data\clothes * On Linux: ~\makehuman\data\clothes [[File:mc2a-100-mh.png]] If the new clothing is saved in the default directory, MakeHuman should find it automatically. Open MakeHuman and go to the Geometries &gt; Clothes tab. A new button named Dress should appear in the right-hand panel. Press it, and the character is wearing the dress you just created. [[File:mc2a-110-adjust.png]] The size and shape of the dress adjusts itself automatically when the character sliders are moved. == Modelling clothes starting from helper geometry == It is sometimes convenient to use the helper geometry as a starting point for modelling; in fact, this is how the dress in this tutorial was modelled. However, there are some pitfalls. [[File:mc2a-210-separate-skirt.png]] Enter edit mode and select the tights and skirt helpers. This is most easily done in the Materials tab. Press Shift-D to duplicate the selection, and P to separate the duplicated geometry into a separate object. [[File:mc2a-220-rename.png]] Rename the new mesh to Dress and move it to a separate layer. The mesh type is still Human, so change that to Clothing. [[File:mc2a-230-snap-waist.png]] Delete the tights vertices below the waist, and snap the tights waist to the skirt waist. The waist now consists of pairs of vertices at identical locations. Remove doubles to join the upper and lower parts. [[File:mc2a-240-materials.png]] The dress now consists of a contiguous mesh, but the materials are still those of the human. Unlink the human materials and create the bluish Dress material, as we did in the first part above. [[File:mc2a-250-error.png]] We now proceed to press the Make Clothes button, but there is a surprise. MakeClothes displays an error message, saying that some vertex belongs to three groups. This happens because automatic vertex group assignment works differently for humans and clothes. In a piece of clothing, each vertex must belong to exactly on group, but in a human model there is no such restriction. In particular, the vertices along the symmetry plane x = 0 are assigned to all three groups, Mid, Left, Right. [[File:mc2a-260-auto.png]] To fix this, Show Automatic Vertex Groups and press Auto Vertex Groups. Since the mesh type is now set to Clothing, vertex groups are assigned in the correct fashion, and in particular each vertex belongs to exactly one group. == Adding a texture == In this section we replace the simple monochromatic material with a texture. [[File:mc2a-410-texture.png]] First create the image, e.g. using Blender's texture paint mode. Save the image in the same folder as the blend file. [[File:mc2a-420-assign-texture.png]] Assign the texture as an image texture in Blender's texture tab. Note that MakeClothes expects that the old Blender Internal renderer is used, not Cycles. MakeClothes automatically recognizes that the material has a texture, and the image is copied to the dress folder in the data/clothes directory. Next time you enable the dress, it has a non-trivial texture. [[File:mc2a-430-tex-in-mh.png]] Sometimes it is necessary to restart MakeHuman after clothes have been edited to make the changes stick. Other types of textures, such as normal and specular maps, are created in an analogous fashion. Add them to the Blender material, and the corresponding textures are used in MakeHuman, to the extent that a feature has been implemented. == Hiding faces == Clothes adapt to the character, but sometimes blotches of skin can be visible through clothes. The problem is particularly severe for tight and low-poly clothes, and is further aggravated by posing. [[File:mc2a-510-blotches.png]] Here we see that the dress does not quite cover a fat womans' belly on the sides. [[File:mc2a-520-delete-group.png]] Our solution to this problem is to hide faces in the human mesh that are hidden by clothes. This is not a perfact solution, for several reasons: * It does not work for multiple clothes stacked upon each other. * Hidden faces may in fact be visible from other camera angles. * It makes it impossible to undress an exported character in another application, since the underlying body is not there. Imperfact as it is, removing hidden faces does fix some of the most blatant problems. In Blender, select the human vertices that are covered by the dress, and assign them to the Delete vertex groups that was automatically created. Note that when a vertex is removed, so are all faces that it belongs to. We must therefore be careful not to assign to many vertices close to the clothes' boundary to the Delete group. [[File:mc2a-530-mh-deleted.png]] With hidden vertices assigned to the Delete group, press Make Clothes. In MakeHuman, the blotch of skin poking through the skirt is gone. [[File:mc2a-540-behind.png]] The option Hide faces under clothes controls the visibility of hidden faces. We see that it greatly improves the view from behind, but there are still some problems at the top of the thighs. [[File:mc2a-550-better-delete.png]] The situation can be improved by tweaking the Delete vertex group. The picture above shows the best I could do. There are still some problems at the bottom of the dress, both with skin poking through the skirt, and with visible faces being deleted. In situations like this, it is probably necessary to edit the mesh, moving the bottom of the skirt away from the body. [[File:mc2a-560-updating.png]] The clothes do not update while a slider is being dragged, but only when it is released. We can then see how hidden surface removal works. == Creating an thumbnail == So far the dress has appeared with the default thumbnail in the clothes file browser, i.e. as a face with a question mark. [[File:mc2a-610-icon.png]] Move the human to a hidden layer and arrange the camera and lights. Set the render resolution to 128 x 128 and 100%. Change the camera to orthographic and adjust the scale so that the dress fills the camera view. [[File:mc2a-620-render.png]] Render and save the image as a png file with the name dress.thumb in the same folder as the other files. When I wrote this document, Blender automatically changed the file name to dress.thumb.png in the file selector, but the extra .png suffix was not actually included in the file name. Note that the thumbnail suffix is .thumb; the file Dress.png is the diffuse texture. [[File:mc2a-630-thumb.png]] Here is the content of the dress folder. dress.npz is a compiled .obj file. MakeClothes automatically deletes .npz files after saving .obj files, to prevent update problems. [[File:mc2a-640-mh.png]] a8d24ad978b96d578e30bedaf173e24454fe5243 858 2016-05-26T12:50:03Z Joepal 14 Created page with " [[File:mc2a-010-female.png|left]] Start with an empty scene and add a character. Since dresses are mainly worn by women, we select the character type Average Female. A dress..." wikitext text/x-wiki [[File:mc2a-010-female.png|left]] Start with an empty scene and add a character. Since dresses are mainly worn by women, we select the character type Average Female. A dress is typically attached to the tights and skirt helpers, so we need to load a Human With Helpers. A human mesh appears in the viewport. [[File:mc2a-020-model-dress.png|left]] Now model the dress using the human mesh as a reference. Give the dress mesh the object name Dress. This is important, because the object name will determine the file paths as well as the clothing's name in MakeHuman. [[File:mc2a-030-material.png|left]] Assign a material to the dress. We will go for a simple, monochromatic material without textures. Again we must choose a name for the material. The name will appear in the mhmat file that describes the clothing's material properties. Note that the render engine must be set to Blender Internal to create the material. MakeClothes does not work with the Cycles renderer. [[File:mc2a-040-seams.png|left]] Before we can associate the dress mesh with the human mesh, it must first be UV unwrapped. To this end, create seams at suitable edges. [[File:mc2a-050-uvs.png|left]] UV unwrap the mesh. At this point we could paint a texture for the dress, but for our simple monochromatic material this is not necessary. [[File:mc2a-060-make-clothes.png|left]] Finally, we are ready to create the clothes. Press the Make Clothes button. [[File:mc2a-070-terminal.png|left]] Since the program can take quite a while to complete, we can monitor progress in the terminal/dos window. For every tenth vertex, the following information is printed in the terminal: * Clothing vertex number * Closest human vertex in same vertex group. * Distance between clothes vertex and human mesh face. * Vertex group * Clothes vertex group index * Human vertex group index The output files are also listed in the terminal window. [[File:mc2a-090-files.png|left]] MakeClothes creates a new folder named like the clothing name (in this case, Dress), with three files in it: * <em>dress.mhclo</em>: Describes the associate between clothing and human vertices. * <em>dress.obj</em>: Describes the clothes mesh. This is a standard .obj file which can be imported into most packages. * <em>dress.mhmat</em>: Describes the material properties. By default, the dress folder is created in the following directory: * On Windows: Documents\makehuman\data\clothes * On Linux: ~\makehuman\data\clothes [[File:mc2a-100-mh.png|left]] If the new clothing is saved in the default directory, MakeHuman should find it automatically. Open MakeHuman and go to the Geometries &gt; Clothes tab. A new button named Dress should appear in the right-hand panel. Press it, and the character is wearing the dress you just created. [[File:mc2a-110-adjust.png|left]] The size and shape of the dress adjusts itself automatically when the character sliders are moved. == Modelling clothes starting from helper geometry == It is sometimes convenient to use the helper geometry as a starting point for modelling; in fact, this is how the dress in this tutorial was modelled. However, there are some pitfalls. [[File:mc2a-210-separate-skirt.png|left]] Enter edit mode and select the tights and skirt helpers. This is most easily done in the Materials tab. Press Shift-D to duplicate the selection, and P to separate the duplicated geometry into a separate object. [[File:mc2a-220-rename.png|left]] Rename the new mesh to Dress and move it to a separate layer. The mesh type is still Human, so change that to Clothing. [[File:mc2a-230-snap-waist.png|left]] Delete the tights vertices below the waist, and snap the tights waist to the skirt waist. The waist now consists of pairs of vertices at identical locations. Remove doubles to join the upper and lower parts. [[File:mc2a-240-materials.png|left]] The dress now consists of a contiguous mesh, but the materials are still those of the human. Unlink the human materials and create the bluish Dress material, as we did in the first part above. [[File:mc2a-250-error.png|left]] We now proceed to press the Make Clothes button, but there is a surprise. MakeClothes displays an error message, saying that some vertex belongs to three groups. This happens because automatic vertex group assignment works differently for humans and clothes. In a piece of clothing, each vertex must belong to exactly on group, but in a human model there is no such restriction. In particular, the vertices along the symmetry plane x = 0 are assigned to all three groups, Mid, Left, Right. [[File:mc2a-260-auto.png|left]] To fix this, Show Automatic Vertex Groups and press Auto Vertex Groups. Since the mesh type is now set to Clothing, vertex groups are assigned in the correct fashion, and in particular each vertex belongs to exactly one group. == Adding a texture == In this section we replace the simple monochromatic material with a texture. [[File:mc2a-410-texture.png|left]] First create the image, e.g. using Blender's texture paint mode. Save the image in the same folder as the blend file. [[File:mc2a-420-assign-texture.png|left]] Assign the texture as an image texture in Blender's texture tab. Note that MakeClothes expects that the old Blender Internal renderer is used, not Cycles. MakeClothes automatically recognizes that the material has a texture, and the image is copied to the dress folder in the data/clothes directory. Next time you enable the dress, it has a non-trivial texture. [[File:mc2a-430-tex-in-mh.png|left]] Sometimes it is necessary to restart MakeHuman after clothes have been edited to make the changes stick. Other types of textures, such as normal and specular maps, are created in an analogous fashion. Add them to the Blender material, and the corresponding textures are used in MakeHuman, to the extent that a feature has been implemented. == Hiding faces == Clothes adapt to the character, but sometimes blotches of skin can be visible through clothes. The problem is particularly severe for tight and low-poly clothes, and is further aggravated by posing. [[File:mc2a-510-blotches.png|left]] Here we see that the dress does not quite cover a fat womans' belly on the sides. [[File:mc2a-520-delete-group.png|left]] Our solution to this problem is to hide faces in the human mesh that are hidden by clothes. This is not a perfact solution, for several reasons: * It does not work for multiple clothes stacked upon each other. * Hidden faces may in fact be visible from other camera angles. * It makes it impossible to undress an exported character in another application, since the underlying body is not there. Imperfact as it is, removing hidden faces does fix some of the most blatant problems. In Blender, select the human vertices that are covered by the dress, and assign them to the Delete vertex groups that was automatically created. Note that when a vertex is removed, so are all faces that it belongs to. We must therefore be careful not to assign to many vertices close to the clothes' boundary to the Delete group. [[File:mc2a-530-mh-deleted.png|left]] With hidden vertices assigned to the Delete group, press Make Clothes. In MakeHuman, the blotch of skin poking through the skirt is gone. [[File:mc2a-540-behind.png|left]] The option Hide faces under clothes controls the visibility of hidden faces. We see that it greatly improves the view from behind, but there are still some problems at the top of the thighs. [[File:mc2a-550-better-delete.png|left]] The situation can be improved by tweaking the Delete vertex group. The picture above shows the best I could do. There are still some problems at the bottom of the dress, both with skin poking through the skirt, and with visible faces being deleted. In situations like this, it is probably necessary to edit the mesh, moving the bottom of the skirt away from the body. [[File:mc2a-560-updating.png|left]] The clothes do not update while a slider is being dragged, but only when it is released. We can then see how hidden surface removal works. == Creating an thumbnail == So far the dress has appeared with the default thumbnail in the clothes file browser, i.e. as a face with a question mark. [[File:mc2a-610-icon.png|left]] Move the human to a hidden layer and arrange the camera and lights. Set the render resolution to 128 x 128 and 100%. Change the camera to orthographic and adjust the scale so that the dress fills the camera view. [[File:mc2a-620-render.png|left]] Render and save the image as a png file with the name dress.thumb in the same folder as the other files. When I wrote this document, Blender automatically changed the file name to dress.thumb.png in the file selector, but the extra .png suffix was not actually included in the file name. Note that the thumbnail suffix is .thumb; the file Dress.png is the diffuse texture. [[File:mc2a-630-thumb.png|left]] Here is the content of the dress folder. dress.npz is a compiled .obj file. MakeClothes automatically deletes .npz files after saving .obj files, to prevent update problems. [[File:mc2a-640-mh.png|left]] f678fb4b6978593020a211c7e938ec3c119adaac Documentation:Making diapers for a baby 3000 329 860 2016-05-26T12:52:49Z Joepal 14 Created page with "== Enable add-ons == MakeClothes is a Blender add-on. In order to use it, the add-on must first be enabled. Select User Preferences from the File menu, and open the add-ons t..." wikitext text/x-wiki == Enable add-ons == MakeClothes is a Blender add-on. In order to use it, the add-on must first be enabled. Select User Preferences from the File menu, and open the add-ons tab. In the MakeHuman category, enable the MakeClothes add-on by checking the little box to the right, next to the running man. To make MakeClothes load every time you start Blender, press the Save User Settings button. [[File:mc-1010-user-pref.png]] MakeClothes depends on MakeTarget, so you must enable this add-on as well, even if you do not intend to use MakeTarget itself. == Loading a human == The simplest way to load a human into MakeClothes is to use the buttons in the middle of the Make Clothes panel, which is located in the N-pane to the left of the viewport. If the pane is not there, it can be made visible by hitting N-key. Select the type of human (currently the average male, female, child and baby are available, as well as the MakeHuman base mesh. Then press either Nude Human or Human with Helpers, depending on whether you intend to associate your clothes with the body itself or with the helper geometry. A human character is loaded into the viewport. [[File:mc-1022-load-human.png]] The helper geometry can be obtrusive, and there are several ways to get rid of it. We could simply delete annoying helpers, but since MakeClothes relies on vertex numbers being correct, that will only work if for helpers with higher vertex numbers than the part of the human that we will use. A better way is to scale down unused helpers and then hide them somewhere, e.g. inside the body. They must be far away from the surface of the body. To hide hair and penis, select them from the materials tab, and scale down by a factor 10. They are now safely hidden inside the body. [[File:mc-1040-hide-hair.png]] == Preparing a piece of clothing == Once the human is in place, we proceed to model his clothes. The best practise is to place the human on one layer (e.g. layer 1) and the piece of clothing on another (e.g. layer 2). This makes it easy to quickly show or hide the human. If we make an entire outfit, the individual clothes can be put on different layers. The clothing object should be given a descriptive name. This is important, because this will be the name of the exported file, and the name that is shown in MakeHuman. The clothes mesh must also consist of quad faces only, due to internal limitations in MakeHuman., [[File:mc-1110-model.png]] It is good practise to also give the human name a descriptive name, e.g. Human. This name is not important because it is not used for anything, but it is helpful to immediately see whether the human is selected. [[File:mc-1120-human.png]] A common problem is that the body mesh may penetrate clothes, causing strange blotches of skin to shine through. This can mostly be avoided by making sure that the clothes mesh is everywhere on or outside the red tights helper, and that it is at least as dense as the body mesh. The baggier the clothes, the smaller the risk that skin will be visible through it. == UV unwrapping == The mesh must be UV unwrapped. MakeClothes supports multiple UV layers, but every piece of clothing must have at least one UV layer. [[File:mc-1130-unwrap.png]] == Assign vertex groups == Vertex groups must be assigned to both the human and the clothing to guide the vertex association process. It is often sufficient to let MakeClothes do that automatically. [[File:mc-1240-left.png]] The association of clothes mesh vertices to human mesh triangles is restricted to vertex groups with the same name. Therefore each clothes vertex must belong to exactly one vertex group, and the human and clothing must have the same vertex group names. The pictures above show the Left vertex groups, when Helpers and Tights were selected. The Mid group (and any vertex group that starts with "Mid" or ends with "_M") plays a special role. Instead of associating a clothes vertex with a triangle (a triplet of human vertices), it associates it with a line (a pair of human vertices). If all vertices of the Mid group lie in the x = 0 plane, this plane will be preserved as long the targets do so. [[File:mc-1250-delete.png]] Finally, the Delete vertex groups plays a special role. It is only created for the human mesh, and it is empty by default. The intention is that human vertices that will be hidden by the clothing should be added to this group, so MakeHuman can delete them and thus reduce the risk for penetration. == Assign material and textures == Materials and textures are specified by creating them in Blender, using the old-fashion material editor; nodes materials are not supported. Since MakeHuman only supports one single material, the settings of the first material in the clothing's material stack are exported. If the mesh has no material, it will be displayed as white in MakeHuman. This may be useful for debugging purposes, and it is what we will do here. However, if the mesh has a material, it must at least contain a diffuse texture, because otherwise the clothing will be invisible in MakeHuman. Therefore MakeClothes reports an error if the mesh has a material without diffuse texture. == Making clothes == [[File:mc-1412-makeclothes.png]] Once the clothes have been modelled and UV-unwrapped and all settings have been filled in, it is time to create the mhclo file. Select both the clothing and the human. The order is not important, because one mesh must be declared to be human (and to have the correct number of vertices), and the other must be a clothing. Vertex coordinates must correspond exactly to what is shown in the viewport. This means that translation, rotation and scale transforms must be applied, all shapekeys must be applied, any parent relation or armature modifier must be applied, etc.This is done automatically by MakeClothes itself, to the extent that this is possible. [[File:mc-1420-progress.png]] The vertex association is now made. This is a quite time-consuming process. You can follow the progress in the console window. For every tenth vertex, MakeClothes prints a line with the following content: Clothes vertex - Human vertex - Offset - Vertex group name - Clothes vertex group number - Human vertex group number. If you used the default settings for the output directory, the diapers should now show up in MakeHuman, under the Geometries &gt; Clothes tab. [[File:mc-1430-mh.png]] MakeClothes creates a folder named diapers, containing the two files diapers.obj and diapers.mhclo which describe the clothes mesh and vertex association to the human mesh, respectively. If a material had been created for the diapers, the file diapers.mhmat, describing the material properties, is also created. Moreover, all relevant textures are copied to this folder as well. The diapers show up as a head with a question mark in the clothes selector. To avoid this, a thumbnail file must be created manually and placed in the diapers folder. The thumbnail should be a 128x128 pixel png image of the piece of clothing. 5ff61d4b17f418900cefc56db6583f23ff69d7d9 Documentation:MaterialsMakeSkin 3000 645 1840 2020-07-26T10:32:36Z Punkduck 38 Created page with "(documentation is under construction) [[File:Ms_menu.png|right]] = MakeSkin = MakeSkin is part of the new blender tools and was created to have a better way to create mater..." wikitext text/x-wiki (documentation is under construction) [[File:Ms_menu.png|right]] = MakeSkin = MakeSkin is part of the new blender tools and was created to have a better way to create materials for MakeHuman. Especially after geometry is created in MakeClothes, MakeSkin is designed to create a material which can be used in MakeHuman. When MakeSkin is installed, it is detected and used by MakeClothes and Makehuman Plugin For Blender to get support for the full material model. In the longer run, it is intended that the full MHMAT model should be supported, with both import and export to/from blender node setups. However, at this point, there are areas which do not map. There are two ways to create a material: * '''create a new material''' * '''modify an existent material''' == Create a new material == After a mesh for a piece of cloth was created and it was unwrapped to get an UV map, it is ready to export with MakeClothes to MakeHuman. However without a material, only a simple white default material is attached. It is possible to change this in MakeHuman using the '''Material Editor''' (Utilities). But in many cases it makes more sense to see the result in Blender before export, so it is also possible to create a material in Blender for MakeHuman. First step is to decide which texture maps are needed. Typically a diffuse texture (containing the colors of the material) is a minimum. For clothes a normal map can be used to simulate the structure of the fabric. There are 7 maps/textures available: * '''diffuse texture''' * '''normal map''' * '''bump map''' * '''transmission map''' * '''roughness map''' * '''metallic map''' * '''displacement map''' Select the ones needed. The blender material currently assigned to the mesh must be replaced. To allow this, select "Replace object materials". If you want a representation of the MakeHuman internal variables as Blender nodes, select "Extended node visualization". This is still an experimental feature and only shows a few additional nodes in node map. ---- For a makehuman material, the following parameters can also be changed, but they have no effect in blender. For most of the parameters the default settings are the best way, but there are some cases were they should be changed: * '''Backface culling''' - set this to "off", when you are able to see the backfaces, typical for hair or skirt * '''Cast shadows''' * '''Receive shadows''' * '''AlphaToCoverage''' * '''Shadeless''' * '''Wireframe''' * '''Transparent''' - set this to "on" for a material, where more than one transparent layer will be visible, typical for hair * '''Enable SSS''' * '''Litsphere''' - typically leather is used. for hair and shiny assets some of the aniso-litspheres produce a better result For the example the transparency effect is needed and it is also possible to see the backfaces. ---- After editing these parameters press '''Create material'''. A node map is created with some empty texture nodes. The material name would be the same like the object name (if it does not already exist). [[File:Ms_newsetup.png]] Assuming that the textures are already existent (e.g. created inside Blender or with a program like GIMP), now the texture names must be inserted into the nodes. After opening the file browser, select the filenames to insert. If you are not 100% sure, what filename is used in the properties of the node, press "n" to see the properties. There should be an absolute path (starting from filesystem root like in the illustration) or a relative one of the file you selected. When filenames are added, the piece of cloth will be shown with texture like in the illustration. [[File:Ms_assignmtextures.png]] Last step is to save the material. Before a few additional parameters can be added: * '''description''' * '''tags''' * '''license''' * '''author''' <additional information about some parameters is still missing> ---- When you press '''Save material''', file requester is opened and you have to search for the correct path and save material. All textures are copied to the destination as well. If a material was created with MakeSkin, MakeClothes saves the material as well. ---- <import material must be explained> 38d551e398d4d327c56772699ac3e1cb2d353c59 Documentation:Modeling Clothes 3000 676 1948 1947 2020-11-15T14:22:59Z Punkduck 38 wikitext text/x-wiki == Creating a dress from the scratch == There are a lot of ways to model a piece of cloth. There is also 3rd party software available, where it is possible to model clothes like a tailor does. Here is one way to create it with simple elements and then use Blender cloth simulation. To show an easy way, the work is done with a t-pose female mesh (with and without helper), so this time not the standard MakeHuman pose is used. These t-posed meshes are included in MakeClothes. We only use cylinders, inset faces, extruding, loop cuts and edge bridging. Therefore we will have quads in the end. Furthermore this dress is made without lose geometry (all vertices are connected). So it can be used in a cloth simulation directly. This is not necessarily needed, at the end of this document I added an example with a mesh using lose geometry [[File:Dress-example-geometry.png|none]] Now the mesh must be UV-unwrapped. For some tips and tricks just read the next chapter about texturing. After modeling the dress the vertex groups must be assigned. Therefore the female mesh without helper is deleted and the predefined one with helpers is loaded with MakeClothes. [[File:Dress-example-vgroups.png|none]] Then all missing parameters are supplied and the dress is ready to go, but without texture. [[File:Dress-example-save.png|none]] === Maximum number of poles === The newest version of MakeHuman is able to handle also bigger number of poles. But especially quad-meshes with a high number of poles are not very good for subdivision. A high number of poles often appears, when a disc (with even number of vertices) must be filled. This can be easily avoided. The example shows 3 methods of a 32 vertices circle to do it: # left: select the yellow circle, use checker deselect to select every second vertex, extrude to center and press CTRL m to connect all vertices. This results is a pole of 16, which is not good. # middle: do it manually by connecting some of them according to the pattern. This results in a regular pattern of only 8 poles in the middle # right: use grid fill, the easiest method which will not have more then 4 poles. Only one tiny disadvantage: if you need the middle (e.g. to be elevated) this might be less accurate [[File:Dress-example-poles.png|none]] === Sharp edges === MakeHuman normally saves files with smooth faces for import in Blender. When smoothing in MakeHuman or Blender is switched on, all geometry is smoothed. For most of the geometry (for clothes) this works as desired. But there are some exceptions where a sharp edge is needed. The demo-picture shows one example for a smooth surface (the button) and one for a sharp edge. For the sharp edge tiny faces at the edges are needed. Further information: be aware that both geometries in this example should have an own vertex group made from 3 vertices on body or helper not to be distorted. Very small geometry will be distorted when two vertices, which are very near, correspond to different vertex-combinations on the base mesh. [[File:Dress-example-smoothing.jpg|none]] Further hint: MakeHuman's algorithm for subdivision-surface does not work correctly for textures. The geometry is smoothed but the texture coordinates are also distributed in the same ratio. This results in a wrong representation of the texture especially when small and large faces join a common edge. Blender is able to use a mode with correct UV representation. [[File:Dress-example-smooth-mh.jpg|none]] == Texturing the clothes == For the example we use a texture which is not created inside Blender with e.g. perspective painting. We use GIMP (or any other paint program) to create png-Files. When the dress appears in MakeHuman it looked like the one on the left side. Result should be the one of the right side. [[File:Dress-example-texturedchar.png|frame|none|hair CC-BY Elvaerwyn]] To have a base for a paint program the layout of the UV-Map must be exported. Depending on the details and to get a visible structure a minimum size of 2048x2048 is chosen. When you create parts which are used multiple times (like buttons), you should UV-unwrap this geometry before you copy it. The copy of the texture will then be on the same position. Sometimes it makes sense to align some of the unwrapped geometry, in the example we do that for the edges and sleeves. There are Blender tools to support this in the UV-map. In the paint program we need a seamless texture (which can be repeated without visible seams). This can be created by a function inside the paint program or by mirroring. In the example mirroring was used. The texture is inserted in an extra layer. The plane was simply filled with the pattern, the black mask is added in a third layer for clarification. Side effect of the black mask is that the file becomes a little shorter. [[File:Dress-example-gimtex.png|none]] In the end we will supply a normalmap, which is created by the paint program and not in Blender. In this case we need to do a height map first. If we use a black and white image white means low and black means high. If the software works the other way round, just the inverted image is needed. This following steps are done for the edges of the dress. [[File:Dress-example-manual-normalmap.png|none]] === Lose geometry and transparent textures === Finally I will add an example how a simple mesh (657 vertices) will create a rather realistic looking piece of cloth. This mesh stays close to the body and because of lose geometry cannot be used for a cloth simulation directly (it will fall apart). Furthermode the rims intersect with the body to simulate a close fit. For a cloth simulation with the body as a collision object this will give unpredictable results. I marked the elements of the lingerie with 3 colors: # blue for the main part # orange for the rims # green for the bow tie The blue part was modeled directly on the body (one half) and then mirrored. The rims were separated and then extruded in z direction. Second extrude was made so that the resulting vertices are inside the body. The bow tie was "painted" with a single vertex by extruding a "curve" in x-z plane. Then this was extruded in y direction and changed to a u-shape. All 3 elements use different parts of the texture. It makes sense to align the rim and put the texture on a special part which then is repeated. Same for the bow tie. The rest is a normal UV-unwrap. Seams are at the sides and in crotch area (identical to reality). To get the very fine structure I manually created a hexagon mesh, used it as a fill pattern and combined that with the rest of the texture. [[File:Dress-example-lose-geom1.png|none]] This is the result (using a diffuse and normal map): [[File:Dress-example-lose-geom2.png|none]] 1d5e6c4ce63297f76233c414f2f750eea08857b9 1947 1946 2020-11-15T13:49:22Z Punkduck 38 wikitext text/x-wiki == Creating a dress from the scratch == There are a lot of ways to model a piece of cloth. There is also 3rd party software available, where it is possible to model clothes like a tailor does. Here is one way to create it with simple elements and then use Blender cloth simulation. To show an easy way, the work is done with a t-pose female mesh (with and without helper), so this time not the standard MakeHuman pose is used. These t-posed meshes are included in MakeClothes. We only use cylinders, inset faces, extruding, loop cuts and edge bridging. Therefore we will have quads in the end. [[File:Dress-example-geometry.png|none]] Now the mesh must be UV-unwrapped. For some tips and tricks just read the next chapter about texturing. After modeling the dress the vertex groups must be assigned. Therefore the female mesh without helper is deleted and the predefined one with helpers is loaded with MakeClothes. [[File:Dress-example-vgroups.png|none]] Then all missing parameters are supplied and the dress is ready to go, but without texture. [[File:Dress-example-save.png|none]] === Maximum number of poles === The newest version of MakeHuman is able to handle also bigger number of poles. But especially quad-meshes with a high number of poles are not very good for subdivision. A high number of poles often appears, when a disc (with even number of vertices) must be filled. This can be easily avoided. The example shows 3 methods of a 32 vertices circle to do it: # left: select the yellow circle, use checker deselect to select every second vertex, extrude to center and press CTRL m to connect all vertices. This results is a pole of 16, which is not good. # middle: do it manually by connecting some of them according to the pattern. This results in a regular pattern of only 8 poles in the middle # right: use grid fill, the easiest method which will not have more then 4 poles. Only one tiny disadvantage: if you need the middle (e.g. to be elevated) this might be less accurate [[File:Dress-example-poles.png|none]] === Sharp edges === MakeHuman normally saves files with smooth faces for import in Blender. When smoothing in MakeHuman or Blender is switched on, all geometry is smoothed. For most of the geometry (for clothes) this works as desired. But there are some exceptions where a sharp edge is needed. The demo-picture shows one example for a smooth surface (the button) and one for a sharp edge. For the sharp edge tiny faces at the edges are needed. Further information: be aware that both geometries in this example should have an own vertex group made from 3 vertices on body or helper not to be distorted. Very small geometry will be distorted when two vertices, which are very near correspond with different vertex-combinations on the base mesh. [[File:Dress-example-smoothing.jpg|none]] Further hint: MakeHuman's algorithm for subdivision-surface does not work correctly for textures. The geometry is smoothed but the texture coordinates are also distributed in the same ration. This results in a wrong representation of the texture especially when small and large faces join a common edge. [[File:Dress-example-smooth-mh.jpg|none]] == Texturing the clothes == For the example we use a texture which is not created inside Blender with e.g. perspective painting. We use GIMP (or any other paint program) to create png-Files. When the dress appears in MakeHuman it looked like the one on the left side. Result should be the one of the right side. [[File:Dress-example-texturedchar.png|frame|none|hair CC-BY Elvaerwyn]] To have a base for a paint program the layout of the UV-Map must be exported. Depending on the details and to get a visible structure a minimum size of 2048x2048 is chosen. When you create parts which are used multiple times (like buttons), you should UV-unwrap this geometry before you copy it. The copy of the texture will then be on the same position. Sometimes it makes sense to align some of the unwrapped geometry, in the example we do that for the edges and sleeves. There are Blender tools to support this in the UV-map. In the paint program we need a seamless texture (which can be repeated without visible seams). This can be created by a function inside the paint program or by mirroring. In the example mirroring was used. The texture is inserted in an extra layer. The plane was simply filled with the pattern, the black mask is added in a third layer for clarification. Side effect of the black mask is that the file becomes a little shorter. [[File:Dress-example-gimtex.png|none]] In the end we will supply a normalmap, which is created by the paint program and not in Blender. In this case we need to do a height map first. If we use a black and white image white means low and black means high. If the software works the other way round, just the inverted image is needed. This following steps are done for the edges of the dress. [[File:Dress-example-manual-normalmap.png|none]] (do be continued and improved :) ) fe60ec04341cfd52adc8959d2a0438c0416daf5c 1946 1940 2020-11-15T13:29:55Z Punkduck 38 wikitext text/x-wiki == Creating a dress from the scratch == There are a lot of ways to model a piece of cloth. There is also 3rd party software available, where it is possible to model clothes like a tailor does. Here is one way to create it with simple elements and then use Blender cloth simulation. To show an easy way, the work is done with a t-pose female mesh (with and without helper), so this time not the standard MakeHuman pose is used. These t-posed meshes are included in MakeClothes. We only use cylinders, inset faces, extruding, loop cuts and edge bridging. Therefore we will have quads in the end. [[File:Dress-example-geometry.png|none]] Now the mesh must be UV-unwrapped. For some tips and tricks just read the next chapter about texturing. After modeling the dress the vertex groups must be assigned. Therefore the female mesh without helper is deleted and the predefined one with helpers is loaded with MakeClothes. [[File:Dress-example-vgroups.png|none]] Then all missing parameters are supplied and the dress is ready to go, but without texture. [[File:Dress-example-save.png|none]] === Maximum number of poles === The newest version of MakeHuman is able to handle also bigger number of poles. But especially quad-meshes with a high number of poles are not very good for subdivision. A high number of poles often appears, when a disc (with even number of vertices) must be filled. This can be easily avoided. The example shows 3 methods of a 32 vertices circle to do it: # left: select the yellow circle, use checker deselect to select every second vertex, extrude to center and press CTRL m to connect all vertices. This results is a pole of 16, which is not good. # middle: do it manually by connecting some of them according to the pattern. This results in a regular pattern of only 8 poles in the middle # right: use grid fill, the easiest method which will not have more then 4 poles. Only one tiny disadvantage: if you need the middle (e.g. to be elevated) this might be less accurate [[File:Dress-example-poles.png|none]] == Texturing the clothes == For the example we use a texture which is not created inside Blender with e.g. perspective painting. We use GIMP (or any other paint program) to create png-Files. When the dress appears in MakeHuman it looked like the one on the left side. Result should be the one of the right side. [[File:Dress-example-texturedchar.png|frame|none|hair CC-BY Elvaerwyn]] To have a base for a paint program the layout of the UV-Map must be exported. Depending on the details and to get a visible structure a minimum size of 2048x2048 is chosen. When you create parts which are used multiple times (like buttons), you should UV-unwrap this geometry before you copy it. The copy of the texture will then be on the same position. Sometimes it makes sense to align some of the unwrapped geometry, in the example we do that for the edges and sleeves. There are Blender tools to support this in the UV-map. In the paint program we need a seamless texture (which can be repeated without visible seams). This can be created by a function inside the paint program or by mirroring. In the example mirroring was used. The texture is inserted in an extra layer. The plane was simply filled with the pattern, the black mask is added in a third layer for clarification. Side effect of the black mask is that the file becomes a little shorter. [[File:Dress-example-gimtex.png|none]] In the end we will supply a normalmap, which is created by the paint program and not in Blender. In this case we need to do a height map first. If we use a black and white image white means low and black means high. If the software works the other way round, just the inverted image is needed. This following steps are done for the edges of the dress. [[File:Dress-example-manual-normalmap.png|none]] (do be continued and improved :) ) 19d56ace6967edce86c7a5ef59954c786ff53bc3 1940 2020-11-14T21:16:18Z Punkduck 38 Created page with " == Creating a dress from the scratch == There are a lot of ways to model a piece of cloth. There is also 3rd party software available, where it is possible to model clothes..." wikitext text/x-wiki == Creating a dress from the scratch == There are a lot of ways to model a piece of cloth. There is also 3rd party software available, where it is possible to model clothes like a tailor does. Here is one way to create it with simple elements and then use Blender cloth simulation. To show an easy way, the work is done with a t-pose female mesh (with and without helper), so this time not the standard MakeHuman pose is used. These t-posed meshes are included in MakeClothes. We only use cylinders, inset faces, extruding, loop cuts and edge bridging. Therefore we will have quads in the end. [[File:Dress-example-geometry.png|center]] Now the mesh must be UV-unwrapped. For some tips and tricks just read the next chapter about texturing. After modeling the dress the vertex groups must be assigned. Therefore the female mesh without helper is deleted and the predefined one with helpers is loaded with MakeClothes. [[File:Dress-example-vgroups.png|center]] Then all missing parameters are supplied and the dress is ready to go, but without texture. [[File:Dress-example-save.png|center]] == Texturing the clothes == For the example we use a texture which is not created inside Blender with e.g. perspective painting. We use GIMP (or any other paint program) to create png-Files. When the dress appears in MakeHuman it looked like the one on the left side. Result should be the one of the right side. [[File:Dress-example-texturedchar.png|frame|center|hair CC-BY Elvaerwyn]] To have a base for a paint program the layout of the UV-Map must be exported. Depending on the details and to get a visible structure a minimum size of 2048x2048 is chosen. When you create parts which are used multiple times (like buttons), you should UV-unwrap this geometry before you copy it. The copy of the texture will then be on the same position. Sometimes it makes sense to align some of the unwrapped geometry, in the example we do that for the edges and sleeves. There are Blender tools to support this in the UV-map. In the paint program we need a seamless texture (which can be repeated without visible seams). This can be created by a function inside the paint program or by mirroring. In the example mirroring was used. The texture is inserted in an extra layer. The plane was simply filled with the pattern, the black mask is added in a third layer for clarification. Side effect of the black mask is that the file becomes a little shorter. [[File:Dress-example-gimtex.png|center]] In the end we will supply a normalmap, which is created by the paint program and not in Blender. In this case we need to do a height map first. If we use a black and white image white means low and black means high. If the software works the other way round, just the inverted image is needed. This following steps are done for the edges of the dress. [[File:Dress-example-manual-normalmap.png|center]] (do be continued and improved :) ) 7e96d696083bd9b2cee9a1fa93a01fec0db4b137 Documentation:Modeling a sword 3000 492 1294 1237 2017-01-28T12:03:54Z Robbaer 12 /* Other hints for hard items */ wikitext text/x-wiki A common problem with creating "hard" items is that they tend to look very strange in MakeHuman. As the character changes (for example between male and female), items deform to fit the new shape. This is what you want with soft items (for example clothes), but is undesirable in the case of hard items (for example tools, buttons, glasses and similar). == The "*" group == Fortunately, it is possible to tell MakeClothes that a set of vertices should scale linearly instead of deform. This is done by creating a vertex group with an asterisk. When doing so, the vertext group will scale only in size, but the relative distance between all the vertices in the group will remain the same. == Case in point: a sword == A sword would look strange if it got all bent just because a female toon held it (even disregarding the misogynist implications). It's entirely possible to make a sword that looks good with most toons, even babies. First start with making a sword. Here's quick draft of how it could look. The thing to note is that it has depth, it's just not a single 2d plane. [[File:Blender-sword.png]] Mark seams, UV-unwrap and set a material as noted elsewhere in the MakeClothes docs. Assign all vertices of the sword object to a new vertex group called "*sword" [[File:Blender-sword-vertex1.png]] Mark exactly three vertices on the palm of the human toon. These are what will control the size of the sword [[File:Blender-sword-palm.png]] Assign these to a new vertex group (on the human) called "*sword" [[File:Blender-sword-vertex2.png]] Set license, author, homepage and so on and so forth and click "MakeClothes". You now have a non-deforming sword in MakeHuman [[File:CrudeSword-render.png]] The item used to create this tutorial is available at http://www.makehumancommunity.org/clothes/crude_sword.html == Other hints for hard items == For clothes, it will usually makes the most sense to select the "*" group on the "clothes helper" layer of the human rather than on the body itself. Particularly in the breast are for female toons, the scaling might become problematic otherwise. [[File:Blender_buckle.png]] 694422e7c40be8c0dcdbf3584f1b2245a9be5b20 1237 1226 2016-11-20T20:18:39Z Joepal 14 wikitext text/x-wiki A common problem with creating "hard" items is that they tend to look very strange in MakeHuman. As the character changes (for example between male and female), items deform to fit the new shape. This is what you want with soft items (for example clothes), but is undesirable in the case of hard items (for example tools, buttons, glasses and similar). == The "*" group == Fortunately, it is possible to tell MakeClothes that a set of vertices should scale linearly instead of deform. This is done by creating a vertex group with an asterisk. When doing so, the vertext group will scale only in size, but the relative distance between all the vertices in the group will remain the same. == Case in point: a sword == A sword would look strange if it got all bent just because a female toon held it (even disregarding the misogynist implications). It's entirely possible to make a sword that looks good with most toons, even babies. First start with making a sword. Here's quick draft of how it could look. The thing to note is that it has depth, it's just not a single 2d plane. [[File:Blender-sword.png]] Mark seams, UV-unwrap and set a material as noted elsewhere in the MakeClothes docs. Assign all vertices of the sword object to a new vertex group called "*sword" [[File:Blender-sword-vertex1.png]] Mark exactly three vertices on the palm of the human toon. These are what will control the size of the sword [[File:Blender-sword-palm.png]] Assign these to a new vertex group (on the human) called "*sword" [[File:Blender-sword-vertex2.png]] Set license, author, homepage and so on and so forth and click "MakeClothes". You now have a non-deforming sword in MakeHuman [[File:CrudeSword-render.png]] The item used to create this tutorial is available at http://www.makehumancommunity.org/clothes/crude_sword.html == Other hints for hard items == For clothes, it will usually makes the most sense to select the "*" group on the clothes layer rather than on the body of the human. Particularly in the breast are for female toons, the scaling might become problematic otherwise. [[File:Blender_buckle.png]] bdb176cab2b53658f6f6970493e7a2734722b4b0 1226 1225 2016-11-12T18:34:21Z Joepal 14 wikitext text/x-wiki A common problem with creating "hard" items is that they tend to look very strange in MakeHuman. As the character changes (for example between male and female), items deform to fit the new shape. This is what you want with soft items (for example clothes), but is undesirable in the case of hard items (for example tools, buttons, glasses and similar). == The "*" group == Fortunately, it is possible to tell MakeClothes that a set of vertices should scale linearly instead of deform. This is done by creating a vertex group with an asterisk. When doing so, the vertext group will scale only in size, but the relative distance between all the vertices in the group will remain the same. == Case in point: a sword == A sword would look strange if it got all bent just because a female toon held it (even disregarding the misogynist implications). It's entirely possible to make a sword that looks good with most toons, even babies. First start with making a sword. Here's quick draft of how it could look. The thing to note is that it has depth, it's just not a single 2d plane. [[File:Blender-sword.png]] Mark seams, UV-unwrap and set a material as noted elsewhere in the MakeClothes docs. Assign all vertices of the sword object to a new vertex group called "*sword" [[File:Blender-sword-vertex1.png]] Mark exactly three vertices on the palm of the human toon. These are what will control the size of the sword [[File:Blender-sword-palm.png]] Assign these to a new vertex group (on the human) called "*sword" [[File:Blender-sword-vertex2.png]] Set license, author, homepage and so on and so forth and click "MakeClothes". You now have a non-deforming sword in MakeHuman [[File:CrudeSword-render.png]] The item used to create this tutorial is available at http://www.makehumancommunity.org/clothes/crude_sword.html 16ff176fb5cf7c20bbcea55f421c729ecd493f7a 1225 2016-11-12T18:32:32Z Joepal 14 Created page with "A common problem with creating "hard" items is that they tend to look very strange in MakeHuman. As the character changes (for example between male and female), items deform t..." wikitext text/x-wiki A common problem with creating "hard" items is that they tend to look very strange in MakeHuman. As the character changes (for example between male and female), items deform to fit the new shape. This is what you want with soft items (for example clothes), but is undesirable in the case of hard items (for example tools, buttons, glasses and similar). == The "*" group == Fortunately, it is possible to tell MakeClothes that a set of vertices should scale linearly instead of deform. This is done by creating a vertex group with an asterisk. When doing so, the vertext group will scale only in size, but the relative distance between all the vertices in the group will remain the same. == Case in point: a sword == A sword would look strange if it got all bent just because a female toon held it (even disregarding the misogynistic implications). It's entirely possible to make a sword that looks good with most toons, even babies. First start with making a sword. Here's quick draft of how it could look. The thing to note is that it has depth, it's just not a single 2d plane. [[File:Blender-sword.png]] Mark seams, UV-unwrap and set a material as noted elsewhere in the MakeClothes docs. Assign all vertices of the sword object to a new vertex group called "*sword" [[File:Blender-sword-vertex1.png]] Mark exactly three vertices on the palm of the human toon. These are what will control the size of the sword [[File:Blender-sword-palm.png]] Assign these to a new vertex group (on the human) called "*sword" [[File:Blender-sword-vertex2.png]] Set license, author, homepage and so on and so forth and click "MakeClothes". You now have a non-deforming sword in MakeHuman [[File:CrudeSword-render.png]] The item used to create this tutorial is available at http://www.makehumancommunity.org/clothes/crude_sword.html 9f7dcb67513024e2126c3502001687b587ad5f22 Documentation:Modeling the body 3000 232 1109 691 2016-07-05T17:20:34Z Aranuvir 17 wikitext text/x-wiki [[File:main_labelled.png]] The Main controls are accessed by going to the 'Modelling' tab and selecting the “Main” sub-tab. These controls define the major characteristics of a human being. controls are used to define the character's macro features. The first six corresponding to Gender, Age, Muscle, Weight, Height, Proportions respectively and the last three ( African, Asian, and Caucasian) correspond to ethnicity. [[File:age_0.png]] * Gender:The gender tab is used to define what gender the human being poseeses. Male or female or a mixture of both characteristics with either being dorminant. * Age:The age slider is used to alter the age of the human being as a whole. The above image shows human beings at various ages ranging from young to old. * Muscle:The muscle sider is used adjust the amount of muscle possesed by the human character. * Weight:The Weight silder is used to adjust the weight of the character. The default setting is the character with average weight. Used along with "Muscle" it can be used to specify the proportion of muscle and fat contributing to the weight. * Height:The Height slider is used to adjust the height of the characters. * Proportions:The proportions slider is used to adjust the the proportions, from "uncommon" to "idealistic". Ethnicity sliders:THe ethinicity sliders (African, Asian, Caucasian) are used to alter the ethnic traits of the human being. These slidersare dependent on each other such that the sum of all three sliders is always 100 percent or a value on 1. This means that an increase in the value of "African" slider will lead to a decrease in the value of the "Caucasian" and "Asian" sliders. This is rational because if for instance a human being is of pure African origin then he/she is expected to possess only African traits whereas if he/she is of mixed decent the character is expected to have a fusion of ethnic characteristics. A human being cannot be hundred percent African and hundred percent Asian. ==== Face modifiers: ==== [[File:face_modifier_labelled.png]] The makehuman face modifiers in makehuman are organised into several categories(eyes, nose , chine etc.) comprising of the morphs pertaining to varios facial features. The morphs available on the right hand side pertain to the category currently active. E.g. When the Head category is selected all morphs pertaining to the head such as head shape (oval ,round , triangular etc), angle and age are available. If the category was to be switched to Mouth size however all sliders related to that category would be visible and manipulatable. ==== Adjusting the Torso Shape: ==== [[File:torso_cropped_labelled.png]] In order to alter the torso-related features of the human we have to select the "Torso" sub-tab located under the main "Modeling" tab. In the torso section we are able toalter various attibutes such as stomach (size, pregnancy shape), body height, width and so on. ==== Arms and Legs Shape: ==== [[File:legs_modelling_2_0.png]] The "Arms and Legs" sub-tab is again located under the main "Modeling" tab. Here we can alter the various attributes related to the arms and legs such as hands, arms and feet. 1e33ec36778ca50e7c71be7df4f2f50de0f2bd4e 691 2016-05-20T09:03:33Z Joepal 14 Created page with " !IMAGE!Pictures/main_labelled.png!/IMAGE! The Main controls are accessed by going to the 'Modelling' tab and selecting the “Main” sub-tab. These controls define the..." wikitext text/x-wiki !IMAGE!Pictures/main_labelled.png!/IMAGE! The Main controls are accessed by going to the 'Modelling' tab and selecting the “Main” sub-tab. These controls define the major characteristics of a human being. controls are used to define the character's macro features. The first six corresponding to Gender, Age, Muscle, Weight, Height, Proportions respectively and the last three ( African, Asian, and Caucasian) correspond to ethnicity. !IMAGE!Pictures/age_0.png!/IMAGE! * Gender:The gender tab is used to define what gender the human being poseeses. Male or female or a mixture of both characteristics with either being dorminant. * Age:The age slider is used to alter the age of the human being as a whole. The above image shows human beings at various ages ranging from young to old. * Muscle:The muscle sider is used adjust the amount of muscle possesed by the human character. * Weight:The Weight silder is used to adjust the weight of the character. The default setting is the character with average weight. Used along with "Muscle" it can be used to specify the proportion of muscle and fat contributing to the weight. * Height:The Height slider is used to adjust the height of the characters. * Proportions:The proportions slider is used to adjust the the proportions, from "uncommon" to "idealistic". Ethnicity sliders:THe ethinicity sliders (African, Asian, Caucasian) are used to alter the ethnic traits of the human being. These slidersare dependent on each other such that the sum of all three sliders is always 100 percent or a value on 1. This means that an increase in the value of "African" slider will lead to a decrease in the value of the "Caucasian" and "Asian" sliders. This is rational because if for instance a human being is of pure African origin then he/she is expected to possess only African traits whereas if he/she is of mixed decent the character is expected to have a fusion of ethnic characteristics. A human being cannot be hundred percent African and hundred percent Asian. ==== Face modifiers: ==== !IMAGE!Pictures/face_modifier_labelled.png!/IMAGE! The makehuman face modifiers in makehuman are organised into several categories(eyes, nose , chine etc.) comprising of the morphs pertaining to varios facial features. The morphs available on the right hand side pertain to the category currently active. E.g. When the Head category is selected all morphs pertaining to the head such as head shape (oval ,round , triangular etc), angle and age are available. If the category was to be switched to Mouth size however all sliders related to that category would be visible and manipulatable. ==== Adjusting the Torso Shape: ==== !IMAGE!Pictures/torso_cropped_labelled.png!/IMAGE! In order to alter the torso-related features of the human we have to select the "Torso" sub-tab located under the main "Modeling" tab. In the torso section we are able toalter various attibutes such as stomach (size, pregnancy shape), body height, width and so on. ==== Arms and Legs Shape: ==== !IMAGE!Pictures/legs_modelling_2_0.png!/IMAGE! The "Arms and Legs" sub-tab is again located under the main "Modeling" tab. Here we can alter the various attributes related to the arms and legs such as hands, arms and feet. 6f5a638528ddf18570bd5c5245fa35f0d38b27ef Documentation:OpenGL Notes 3000 244 1534 712 2018-12-01T09:47:40Z Robbaer 12 /* Basics */ wikitext text/x-wiki Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. OpenGL is a 3D graphics library that enables a 3D world to be defined, with a camera, objects, lights, textures etc. It then enables that 3D world to be visualised as a 2D representation that can be displayed on a computer screen and provides functions to enable an application (in response to user input) to navigate around the scene. ==== Basics ==== OpenGL takes a 3D scene and draws it into a 2D viewing area on your screen known as the viewport. OpenGL can project the scene onto the viewport in a variety of different ways, but the most common are: * Perspective projection, as you would get if you could place a camera in the scene * Orthographic projection, as a draftsman may contstruct technical drawings such as plans and elevations. MakeHuman only uses Orthographic projection. ==== Projection Transformation ==== You tell OpenGL how to project 3D objects onto the 2D viewport by defining a projection transformation, which indicates whether you wish to use perspective or orthographic projection (or an alternative projection pattern) and specifies other projection settings. This can be imagined as being comparable to specifying the characteristics of a camera (field of view, aspect ratio etc.) where an orthographic projection is equivalent to a camera at an infinite distance. The main difference being that with OpenGL you can change the settings between drawing different objects, which is a bit like taking a photo, changing the lens and moving the camera, then taking another photo without winding the film on. MakeHuman sets a perspective projection using the function gluPerspective(fovAngle,aspectRatio,near,far) where: * fovAngle: is the vertical field of view angle (45 degrees) * aspectRatio: is the viewport width divided by the viewport height which, by default, is 800/600 (4/3) * near: is the distance to the centre of the viewing plane (0.1) * far: is the distance to the centre of the rear clippling plane (100) ==== Modelview Transformation ==== For OpenGL to know what to display in the viewport it also needs to know where the camera is relative to the 3D model. For this you need to define a modelview which defines the position and orientation of the camera and the position and orientation of objects that go to make up the model inside a virtual 3D world. You do this by moving through and around the 3D world and by creating objects relative to your current position. OpenGL keeps track of your current position and orientation in the 3D world by recording the modelview transformation. Both the projection transformation and the modelview transformation are stored internally in 4x4 transformation matrices. You can modify these matrices by calling functions that apply direct transformations (translations and rotations) or by calling functions that calculate transformations (e.g. the gluPerspective function outlined above). To apply transformations you need to first make one of these matrices the current matrix. Subsequent transformations are applied cumulatively to the current matrix. The glMatrixMode function is used to set the current matrix mode: * glMatrixMode(GL_PROJECTION) makes the projection transformation the current matrix so that projection settings can be applied, such as the field of View angle and Aspect Ratio. * glMatrixMode(GL_MODELVIEW) makes the modelview transformation matrix the current matrix so that subsequent translations and rotations move the current location through the 3D world. ==== Resetting a transformation matrix ==== Matrix transformations that you apply are applied cumulatively. It is therefore often necessary to reset the matrix to its default ‘no transformation’ state so that you can apply a fresh set of transformations. OpenGL uses the transformation and modelview matrices to transform coordinates by performing a matrix multiplication. If you multiply by an identity matrix then the result is the same as the thing you started with, so to reset one of these matrices to an initial state where the transformation has no effect you can simply load the identity matrix using the function glLoadIdentity(). This loads the identity matrix into whichever transformation matrix is currently active, resetting it to the default ‘no transformation’ state. ==== Coordinates ==== OpenGL world space coordinates are unitless, so 2 units can represent milimeters, inches or light years. Interpretation of world space coordinates is up to the application. OpenGL uses a right handed coordinate system, so, if you are looking at the origin with the +X axis stretching away to the right and the +Y axis pointing straight up, the +Z axis will be heading out of the screen straight towards you and the -Z axis will be dissapearing away from you into the distance. MakeHuman uses the default OpenGL modelview camera settings which are equivalent to invoking gluLookAt(0,0,0, 0,0,-1, 0,1,0). This places the camera at the origin, looking straight into the model along the -Z axis with the +Y axis pointing straight up. This means that a 2 unit wide and 2 unit high object centred at <0,0,-1> will roughly fill the viewport, as will a 4x4 object at twice the distance from the viewpoint. ==== Drawing objects ==== MakeHuman contains multiple objects. The Humanoid object is the main object, but it is surrounded by a set of control objects. Each object is constructed using triangular faces. The position and orientation of each face is defined relative to the object of which it is a part. The positions and orientations of the vertices and normals of the faces are defined relative to the face they’re on. The sequence in which face vertices are defined is significant in OpenGL. If the face is viewed from the front, the sequence of points runs counter clockwise. If the face is viewed from the back the points run clockwise. Faces viewed from behind may be invisible or may have a different color/texture defined to the front face. This order is also called the "winding order" of vertices, and is used by MakeHuman to calculate the normal of each face. If the winding order is reversed, the normal will be flipped. The glPushMatrix and glPopMatrix functions can be used to store away a copy of a matrix that can subsequently restored. MakeHuman uses this before and after drawing each object to store a copy of the modelview matrix and restore it. 4441213da84e1332a13d81055176d419230a9d3f 712 2016-05-20T11:23:29Z Joepal 14 Created page with "Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. OpenGL is a 3D graphics library that enables a 3D world to be defi..." wikitext text/x-wiki Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. OpenGL is a 3D graphics library that enables a 3D world to be defined, with a camera, objects, lights, textures etc. It then enables that 3D world to be visualised as a 2D representation that can be displayed on a computer screen and provides functions to enable an application (in response to user input) to navigate around the scene. ==== Basics ==== OpenGL takes a 3D scene and draws it into a 2D viewing area on your screen known as the viewport. OpenGL can project the scene onto the viewport in a variety of different ways, but the most common are: * Perspective projection, as you would get if you could place a camera in the scene * Orthographic projection, as a draftsman may contstruct technical drawings such as plans and elevations. MakeHuman only uses Perspective projection. ==== Projection Transformation ==== You tell OpenGL how to project 3D objects onto the 2D viewport by defining a projection transformation, which indicates whether you wish to use perspective or orthographic projection (or an alternative projection pattern) and specifies other projection settings. This can be imagined as being comparable to specifying the characteristics of a camera (field of view, aspect ratio etc.) where an orthographic projection is equivalent to a camera at an infinite distance. The main difference being that with OpenGL you can change the settings between drawing different objects, which is a bit like taking a photo, changing the lens and moving the camera, then taking another photo without winding the film on. MakeHuman sets a perspective projection using the function gluPerspective(fovAngle,aspectRatio,near,far) where: * fovAngle: is the vertical field of view angle (45 degrees) * aspectRatio: is the viewport width divided by the viewport height which, by default, is 800/600 (4/3) * near: is the distance to the centre of the viewing plane (0.1) * far: is the distance to the centre of the rear clippling plane (100) ==== Modelview Transformation ==== For OpenGL to know what to display in the viewport it also needs to know where the camera is relative to the 3D model. For this you need to define a modelview which defines the position and orientation of the camera and the position and orientation of objects that go to make up the model inside a virtual 3D world. You do this by moving through and around the 3D world and by creating objects relative to your current position. OpenGL keeps track of your current position and orientation in the 3D world by recording the modelview transformation. Both the projection transformation and the modelview transformation are stored internally in 4x4 transformation matrices. You can modify these matrices by calling functions that apply direct transformations (translations and rotations) or by calling functions that calculate transformations (e.g. the gluPerspective function outlined above). To apply transformations you need to first make one of these matrices the current matrix. Subsequent transformations are applied cumulatively to the current matrix. The glMatrixMode function is used to set the current matrix mode: * glMatrixMode(GL_PROJECTION) makes the projection transformation the current matrix so that projection settings can be applied, such as the field of View angle and Aspect Ratio. * glMatrixMode(GL_MODELVIEW) makes the modelview transformation matrix the current matrix so that subsequent translations and rotations move the current location through the 3D world. ==== Resetting a transformation matrix ==== Matrix transformations that you apply are applied cumulatively. It is therefore often necessary to reset the matrix to its default ‘no transformation’ state so that you can apply a fresh set of transformations. OpenGL uses the transformation and modelview matrices to transform coordinates by performing a matrix multiplication. If you multiply by an identity matrix then the result is the same as the thing you started with, so to reset one of these matrices to an initial state where the transformation has no effect you can simply load the identity matrix using the function glLoadIdentity(). This loads the identity matrix into whichever transformation matrix is currently active, resetting it to the default ‘no transformation’ state. ==== Coordinates ==== OpenGL world space coordinates are unitless, so 2 units can represent milimeters, inches or light years. Interpretation of world space coordinates is up to the application. OpenGL uses a right handed coordinate system, so, if you are looking at the origin with the +X axis stretching away to the right and the +Y axis pointing straight up, the +Z axis will be heading out of the screen straight towards you and the -Z axis will be dissapearing away from you into the distance. MakeHuman uses the default OpenGL modelview camera settings which are equivalent to invoking gluLookAt(0,0,0, 0,0,-1, 0,1,0). This places the camera at the origin, looking straight into the model along the -Z axis with the +Y axis pointing straight up. This means that a 2 unit wide and 2 unit high object centred at <0,0,-1> will roughly fill the viewport, as will a 4x4 object at twice the distance from the viewpoint. ==== Drawing objects ==== MakeHuman contains multiple objects. The Humanoid object is the main object, but it is surrounded by a set of control objects. Each object is constructed using triangular faces. The position and orientation of each face is defined relative to the object of which it is a part. The positions and orientations of the vertices and normals of the faces are defined relative to the face they’re on. The sequence in which face vertices are defined is significant in OpenGL. If the face is viewed from the front, the sequence of points runs counter clockwise. If the face is viewed from the back the points run clockwise. Faces viewed from behind may be invisible or may have a different color/texture defined to the front face. This order is also called the "winding order" of vertices, and is used by MakeHuman to calculate the normal of each face. If the winding order is reversed, the normal will be flipped. The glPushMatrix and glPopMatrix functions can be used to store away a copy of a matrix that can subsequently restored. MakeHuman uses this before and after drawing each object to store a copy of the modelview matrix and restore it. 1920a5205a332b2d27f63bd86f83721fb0a530ff Documentation:Planning on how to restructure the documentation 3000 250 753 752 2016-05-24T08:14:49Z Joepal 14 wikitext text/x-wiki These are random ideas on what should be done with the docs as and when someone has the time and energy == General outline == As it stands now, the first major sections as such (Introduction, general overview and working with the human) looks reasonable, although some content of the section looks pretty malplaced and is probably incomprehensible for someone reading it the first time (for example "professional mesh topology", which is more a kind of reference / technical notes than something that should be in introduction). After the three first major sections, the following major sections make slightly less sense, and seem to be there in a bit of random order. A user would probably expect the general flow of the docs to be something rather along the lines of: * Introduction * General usage (now "General overview") * Working with the human * Getting and creating more assets ** Downloading more assets ** Installing blendertools ** Creating targets ** Creating clothes ** Creating skins ** .. (etc) .. * Continuing your work in another application ** Short notes on exporting to blender ** Short notes on exporting to 3dsmax ** Short notes on exporting to maya ** Short notes on exporting to unity ** Short notes on exporting to UE4 * MakeHuman for developers * All notes about MH vs blender, with pertinent subsections * All notes about MH vs 3dsmax, with pertinent subsections * All notes about MH vs maya, with pertinent subsections * All notes about MH vs unity, with pertinent subsections * All notes about MH vs UE4, with pertinent subsections == Other sections == I'd like to move some of the stuff from the root of the wiki into the doc structure. * The "workflows" pages * The terminology page == Style == Much of the text is written from a tech viewpoint rather than a usage viewpoint. Most users are interested how to use things rather than how things are built. Also, the language is occasionally completely incomprehensible for someone who is not informed about the internals of MakeHuman even if they are techies per se. The docs should be written for the intended target audience. (in practice, doc articles should be read through and reformulated when they deviate from this... mostly it's not needed to write completely new docs) == Outdated content == Particularly the images could benefit from being redone vs 1.1.0. But in many places there are old information which might not be entirely correct anymore. 4ed04ad33176ada023e9665e555c52b80fe1083f 752 2016-05-24T08:08:07Z Joepal 14 Created page with "These are random ideas on what should be done with the docs as and when someone has the time and energy == General outline == As it stands now, the first major sections as..." wikitext text/x-wiki These are random ideas on what should be done with the docs as and when someone has the time and energy == General outline == As it stands now, the first major sections as such (Introduction, general overview and working with the human) looks reasonable, although some content of the section looks pretty malplaced and is probably incomprehensible for someone reading it the first time (for example "professional mesh topology", which is more a kind of reference / technical notes than something that should be in introduction). After the three first major sections, the following major sections make slightly less sense, and seem to be there in a bit of random order. A user would probably expect the general flow of the docs to be something rather along the lines of: * Introduction * General usage (now "General overview") * Working with the human * Getting and creating more assets ** Downloading more assets ** Installing blendertools ** Creating targets ** Creating clothes ** Creating skins ** .. (etc) .. * Continuing your work in another application ** Short notes on exporting to blender ** Short notes on exporting to 3dsmax ** Short notes on exporting to maya ** Short notes on exporting to unity ** Short notes on exporting to UE4 * MakeHuman for developers * All notes about MH vs blender, with pertinent subsections * All notes about MH vs 3dsmax, with pertinent subsections * All notes about MH vs maya, with pertinent subsections * All notes about MH vs unity, with pertinent subsections * All notes about MH vs UE4, with pertinent subsections == Style == Much of the text is written from a tech viewpoint rather than a usage viewpoint. Most users are interested how to use things rather than how things are built. Also, the language is occasionally completely incomprehensible for someone who is not informed about the internals of MakeHuman even if they are techies per se. The docs should be written for the intended target audience. (in practice, doc articles should be read through and reformulated when they deviate from this... mostly it's not needed to write completely new docs) == Outdated content == Particularly the images could benefit from being redone vs 1.1.0. But in many places there are old information which might not be entirely correct anymore. a3aba5162355c21e77f3fad0d0c8b2659bfa634e Documentation:Plugin System 3000 243 1116 1115 2016-07-05T17:30:12Z Aranuvir 17 /* Example Controls */ wikitext text/x-wiki ==== Plugins ==== Makehuman has a simple plugin framework which makes it easy to add and remove features. At startup, MakeHuman now looks for .py files in the plugins folder which are not starting with an underscore (which makes it easier to disable unwanted plugins). It loads them one by one and calls the load entry point passing a reference to the application. The plugin can use this reference to add the necessary GUI widgets or code to the application. The rules for plugins are very simple: * A plugin is a .py file in the plugins folder with a load entry point. * A plugin only imports core files. The reason a plugin cannot import other plugins is that it would make it difficult to know which files belong to which plugin. We still need to define a convention for shared files beyond the core MakeHuman files. To get started look at example.py or any of the other plugins to see how you can create your own feature in MakeHuman. ==== GUI ==== The main layout is a two level tab control. The tabs at the top represent categories, like files. modelling, geometries, materials, etc. The ones at the bottom are the tasks in the current category and refine the more broad category in face, torso, gender, saving, loading, exporting etc. So when creating your plugin, the first thought should be “In which category does it belong?”. From experience we know that it can be a though question to answer. Sometimes the only answer is adding a new category. This is what we initially did for measurement for example Next you probably want your own task to implement your feature. While it’s possible to attach functionality to an instance of gui3d.Task, it’s often easier to derive your own class. When you create an instance of your class, you pass the parent of your task, which can either be an existing category or the new one which you added. In your derived task you will then add the necessary controls to let the user interact. A good place to see how to use the different controls is the example plugin. You will see that even if you don’t add any controls, the model is already visible. This is because the model is attached to the root of the GUI tree. In the onShow event of your task you might want to reset the camera position, like we do in the save task, or hide the model, like we do in the load task. Just don’t forget to reset the state when your task gets hidden in onHide. ==== Undo-redo ==== It is important that every modification is undoable, since just one undo able modification would leave the user without the possibility to undo anything. So it’s crucial that if you write a plugin which modifies the model, you also make undo work. The Application class has several methods to work with actions. An action is a class with two methods, do and undo. If the action itself does the modification you can use app.do to add it to the undo stack. If you did the modification yourself already during user interaction, you can add the action using app.did. The application won’t call the do method of the action in that case. If you want to make your own undoredo buttons, you can use app.undo and app.redo. To illustrate, here is the action we use to change the hair color: The postAction is a handy way to specify a method to keep your GUI in sync with the changes. ==== Asynchronous Calls and Animation ==== When doing lengthy operations it is important not to block the GUI from redrawing. Since everything runs in one thread, it is easy to block the event loop in your plugin. There are 4 ways to avoid this, depending on the need. If no user interaction is needed, a progressbar can be used. A progressbar uses the redrawNow() method of the application. This redraws the screen outside the event loop. Instead of creating your own progressbar, it is advised to use the progress method, which uses the global progressbar. Calling progress with a value greater than zero shows the progressbar, a value of zero hides it. If user interaction is desired during the operation, either asynchronous calls, a timer or a thread can be used. Asynchronous calls are used when a lengthy operation can be split in several units. It is used for example in the startup procedure as well as for the plugin loading loop. The mh.callAsync(method) queues the calling of method in the event loop, so it will be called when the event gets processed. In case different methods need to be called after each other, as in the startup procedure, callAsync is used to call the next method. In case of the plugin loading loop, it calls the same method until it is done. This is not to be used for animations, as it takes very little time between calling callAsync and the event loop calling the method. Calling time.sleep(dt) to avoid this should not be done as it blocks the main thread. For animations use timers instead. An example of this can be found in the BvhPlayer plugin. The method mh.addTimer(interval, method) adds a timer which calls the given method every interval milliseconds. It returns a value to be used by removeTimer to stop the timer. If a lengthy operation includes blocking on sockets or pipes, it is advised to use a python thread. However this has been shown to be problematic on Linux. To get around the problems on linux you should not access any makehuman structures from within your thread, but use mh.callAsync to call the methods from the main thread. See the clock plugin example for example code on how to use threads correctly. ==== A template for plugins ==== Looking in the makehuman source folder, in the "plugin" directory, you will notice a file called "7_example.py". This is an "Hello world" plugin. It includes all main controls and some nice example of mesh manipulation. It's designed to be used as template of new plugin. To see how it works, you need to enable it in the Preferences->Setting. Then it will be located at Utilities-->Example. [[File:UtilitiesExampleTab3.png]] ==== Example Controls ==== [[File:UtilitiesExampleControls.png]] 0bee235a33d656864724ee510e91acd03c02c66a 1115 711 2016-07-05T17:29:46Z Aranuvir 17 /* A template for plugins */ wikitext text/x-wiki ==== Plugins ==== Makehuman has a simple plugin framework which makes it easy to add and remove features. At startup, MakeHuman now looks for .py files in the plugins folder which are not starting with an underscore (which makes it easier to disable unwanted plugins). It loads them one by one and calls the load entry point passing a reference to the application. The plugin can use this reference to add the necessary GUI widgets or code to the application. The rules for plugins are very simple: * A plugin is a .py file in the plugins folder with a load entry point. * A plugin only imports core files. The reason a plugin cannot import other plugins is that it would make it difficult to know which files belong to which plugin. We still need to define a convention for shared files beyond the core MakeHuman files. To get started look at example.py or any of the other plugins to see how you can create your own feature in MakeHuman. ==== GUI ==== The main layout is a two level tab control. The tabs at the top represent categories, like files. modelling, geometries, materials, etc. The ones at the bottom are the tasks in the current category and refine the more broad category in face, torso, gender, saving, loading, exporting etc. So when creating your plugin, the first thought should be “In which category does it belong?”. From experience we know that it can be a though question to answer. Sometimes the only answer is adding a new category. This is what we initially did for measurement for example Next you probably want your own task to implement your feature. While it’s possible to attach functionality to an instance of gui3d.Task, it’s often easier to derive your own class. When you create an instance of your class, you pass the parent of your task, which can either be an existing category or the new one which you added. In your derived task you will then add the necessary controls to let the user interact. A good place to see how to use the different controls is the example plugin. You will see that even if you don’t add any controls, the model is already visible. This is because the model is attached to the root of the GUI tree. In the onShow event of your task you might want to reset the camera position, like we do in the save task, or hide the model, like we do in the load task. Just don’t forget to reset the state when your task gets hidden in onHide. ==== Undo-redo ==== It is important that every modification is undoable, since just one undo able modification would leave the user without the possibility to undo anything. So it’s crucial that if you write a plugin which modifies the model, you also make undo work. The Application class has several methods to work with actions. An action is a class with two methods, do and undo. If the action itself does the modification you can use app.do to add it to the undo stack. If you did the modification yourself already during user interaction, you can add the action using app.did. The application won’t call the do method of the action in that case. If you want to make your own undoredo buttons, you can use app.undo and app.redo. To illustrate, here is the action we use to change the hair color: The postAction is a handy way to specify a method to keep your GUI in sync with the changes. ==== Asynchronous Calls and Animation ==== When doing lengthy operations it is important not to block the GUI from redrawing. Since everything runs in one thread, it is easy to block the event loop in your plugin. There are 4 ways to avoid this, depending on the need. If no user interaction is needed, a progressbar can be used. A progressbar uses the redrawNow() method of the application. This redraws the screen outside the event loop. Instead of creating your own progressbar, it is advised to use the progress method, which uses the global progressbar. Calling progress with a value greater than zero shows the progressbar, a value of zero hides it. If user interaction is desired during the operation, either asynchronous calls, a timer or a thread can be used. Asynchronous calls are used when a lengthy operation can be split in several units. It is used for example in the startup procedure as well as for the plugin loading loop. The mh.callAsync(method) queues the calling of method in the event loop, so it will be called when the event gets processed. In case different methods need to be called after each other, as in the startup procedure, callAsync is used to call the next method. In case of the plugin loading loop, it calls the same method until it is done. This is not to be used for animations, as it takes very little time between calling callAsync and the event loop calling the method. Calling time.sleep(dt) to avoid this should not be done as it blocks the main thread. For animations use timers instead. An example of this can be found in the BvhPlayer plugin. The method mh.addTimer(interval, method) adds a timer which calls the given method every interval milliseconds. It returns a value to be used by removeTimer to stop the timer. If a lengthy operation includes blocking on sockets or pipes, it is advised to use a python thread. However this has been shown to be problematic on Linux. To get around the problems on linux you should not access any makehuman structures from within your thread, but use mh.callAsync to call the methods from the main thread. See the clock plugin example for example code on how to use threads correctly. ==== A template for plugins ==== Looking in the makehuman source folder, in the "plugin" directory, you will notice a file called "7_example.py". This is an "Hello world" plugin. It includes all main controls and some nice example of mesh manipulation. It's designed to be used as template of new plugin. To see how it works, you need to enable it in the Preferences->Setting. Then it will be located at Utilities-->Example. [[File:UtilitiesExampleTab3.png]] ==== Example Controls ==== !IMAGE!Pictures/UtilitiesExampleControls.png!/IMAGE! 128b8fcd8d86547bc25e31046edbdebe54d81f73 711 2016-05-20T11:22:36Z Joepal 14 Created page with "==== Plugins ==== Makehuman has a simple plugin framework which makes it easy to add and remove features. At startup, MakeHuman now looks for .py files in the plugins folder..." wikitext text/x-wiki ==== Plugins ==== Makehuman has a simple plugin framework which makes it easy to add and remove features. At startup, MakeHuman now looks for .py files in the plugins folder which are not starting with an underscore (which makes it easier to disable unwanted plugins). It loads them one by one and calls the load entry point passing a reference to the application. The plugin can use this reference to add the necessary GUI widgets or code to the application. The rules for plugins are very simple: * A plugin is a .py file in the plugins folder with a load entry point. * A plugin only imports core files. The reason a plugin cannot import other plugins is that it would make it difficult to know which files belong to which plugin. We still need to define a convention for shared files beyond the core MakeHuman files. To get started look at example.py or any of the other plugins to see how you can create your own feature in MakeHuman. ==== GUI ==== The main layout is a two level tab control. The tabs at the top represent categories, like files. modelling, geometries, materials, etc. The ones at the bottom are the tasks in the current category and refine the more broad category in face, torso, gender, saving, loading, exporting etc. So when creating your plugin, the first thought should be “In which category does it belong?”. From experience we know that it can be a though question to answer. Sometimes the only answer is adding a new category. This is what we initially did for measurement for example Next you probably want your own task to implement your feature. While it’s possible to attach functionality to an instance of gui3d.Task, it’s often easier to derive your own class. When you create an instance of your class, you pass the parent of your task, which can either be an existing category or the new one which you added. In your derived task you will then add the necessary controls to let the user interact. A good place to see how to use the different controls is the example plugin. You will see that even if you don’t add any controls, the model is already visible. This is because the model is attached to the root of the GUI tree. In the onShow event of your task you might want to reset the camera position, like we do in the save task, or hide the model, like we do in the load task. Just don’t forget to reset the state when your task gets hidden in onHide. ==== Undo-redo ==== It is important that every modification is undoable, since just one undo able modification would leave the user without the possibility to undo anything. So it’s crucial that if you write a plugin which modifies the model, you also make undo work. The Application class has several methods to work with actions. An action is a class with two methods, do and undo. If the action itself does the modification you can use app.do to add it to the undo stack. If you did the modification yourself already during user interaction, you can add the action using app.did. The application won’t call the do method of the action in that case. If you want to make your own undoredo buttons, you can use app.undo and app.redo. To illustrate, here is the action we use to change the hair color: The postAction is a handy way to specify a method to keep your GUI in sync with the changes. ==== Asynchronous Calls and Animation ==== When doing lengthy operations it is important not to block the GUI from redrawing. Since everything runs in one thread, it is easy to block the event loop in your plugin. There are 4 ways to avoid this, depending on the need. If no user interaction is needed, a progressbar can be used. A progressbar uses the redrawNow() method of the application. This redraws the screen outside the event loop. Instead of creating your own progressbar, it is advised to use the progress method, which uses the global progressbar. Calling progress with a value greater than zero shows the progressbar, a value of zero hides it. If user interaction is desired during the operation, either asynchronous calls, a timer or a thread can be used. Asynchronous calls are used when a lengthy operation can be split in several units. It is used for example in the startup procedure as well as for the plugin loading loop. The mh.callAsync(method) queues the calling of method in the event loop, so it will be called when the event gets processed. In case different methods need to be called after each other, as in the startup procedure, callAsync is used to call the next method. In case of the plugin loading loop, it calls the same method until it is done. This is not to be used for animations, as it takes very little time between calling callAsync and the event loop calling the method. Calling time.sleep(dt) to avoid this should not be done as it blocks the main thread. For animations use timers instead. An example of this can be found in the BvhPlayer plugin. The method mh.addTimer(interval, method) adds a timer which calls the given method every interval milliseconds. It returns a value to be used by removeTimer to stop the timer. If a lengthy operation includes blocking on sockets or pipes, it is advised to use a python thread. However this has been shown to be problematic on Linux. To get around the problems on linux you should not access any makehuman structures from within your thread, but use mh.callAsync to call the methods from the main thread. See the clock plugin example for example code on how to use threads correctly. ==== A template for plugins ==== Looking in the makehuman source folder, in the "plugin" directory, you will notice a file called "7_example.py". This is an "Hello world" plugin. It includes all main controls and some nice example of mesh manipulation. It's designed to be used as template of new plugin. To see how it works, you need to enable it in the Preferences->Setting. Then it will be located at Utilities-->Example. !IMAGE!Pictures/UtilitiesExampleTab3.png!/IMAGE! ==== Example Controls ==== !IMAGE!Pictures/UtilitiesExampleControls.png!/IMAGE! 3c72ec093991f2910dccfbeabe11da4850c5030a Documentation:Professional mesh topology 3000 49 1100 1099 2016-07-04T12:08:39Z Joepal 14 wikitext text/x-wiki ==== The Homunculus ==== The principal aim of MakeHuman project is to develop an open source application capable to create realistic tridimensional humans. Since the early release in 2001, by pursuing this aim the MakeHuman Team have developed a model that can combine different anatomical parameters to transition smoothly from the infant to the elderly, from man to woman and from fat to slim. The vast wealth of potential combinations provides the artist an extraordinarily broad range of possibilities for artistic expression but presents many problems to the development team. [[File:age_1.png]] In particular it adds to the classical problems of 3D modelling (number of polygons, square or triangular faces, etc.) the problems of constructing a super mesh that can be transformed into any form of human while being sufficiently optimised to be able to be manipulated on desktop machines, yet still producing a professional quality of output. These discussions resulted in agreement that the initial mesh should occupy a middle ground, being neither pronounced masculine, nor pronounced feminine, neither young nor old and having a medium muscular definition. An androgynous form, the HoMunculus. [[File:hm01_0.png]] The Homunculus 00 (2002). No male, no female, nor young or old. A perfect neutral body. ==== Evolution of the topology ==== The current MakeHuman mesh has evolved through successive iterations of the project, incorporating lessons learned, community feedback and the results of considerable amounts of studies and experimentations. The current version, known as the ‘Homunculus 08’ comprises a state of the art universal humanoid model, including: * Light and optimized for subdivision surfaces modelling (14766 faces). * Quads only. The human mesh is completely triangles free. * Optimized for animation and sculpting (Zbrush, Mudbox) * MInimal number of poles * Max number of edges admitted for a pole: 5 [[File:heads_0.png]] The Homunculus evolution through the heads === Homunculus releases === * The first prototype of an universal mesh (head only) was done in 1999 in the makeHead script, and then adapted for the early MH (2000), * The Homunculus00, was realized by Enrico Valenza in 2002. * The Homunculus01 (or K-Mesh) was modelled by Kaushik Pal in 2005 * The Homunculus02 was modelled by Manuel Bastioni (Z-Mesh); * The Homunculus03 was modelled by Gianluca Miragoli (aka Yashugan) in 2007 and builds upon the experience gained on the preceding versions (Y-Mesh) * The Homunculus04 build upon the previous one by Gianluca Miragoli and Manuel Bastioni * The Homunculus05 build upon the previous one by Gianluca Miragoli. * The Homunculus06 released in 2010 (artists: Waldemar Perez Jr., André Richard, Manuel Bastioni). * The Homunculus07 completely remodelled by Manuel Bastioni in 2011 * The Homunculus08 remodelled from scratch by Manuel Bastioni in 2013 [[File:wip03_0.png]] An image from the "Making of" the Homunculus 08 ==== Alternative topologies ==== The base mesh is capable to be morphed practically in any human character, but in some cases it is preferred to have a very specialized topology. For this reason, since the version 1.0 alpha 7, MakeHuman includes a function to change the mesh of the character, just selecting it from a simple chooser. The makeHuman team is studying the requirements needed for different purposes (animation, games, crowd, closeups, etc..) in order to create a database of professional topologies. [[File:topologies.png]] 86bda7cbabcfd3d65528208c75fd824f81acfa57 1099 677 2016-07-04T12:05:48Z Joepal 14 wikitext text/x-wiki ==== The Homunculus ==== The principal aim of MakeHuman project is to develop an open source application capable to create realistic tridimensional humans. Since the early release in 2001, by pursuing this aim the MakeHuman Team have developed a model that can combine different anatomical parameters to transition smoothly from the infant to the elderly, from man to woman and from fat to slim. The vast wealth of potential combinations provides the artist an extraordinarily broad range of possibilities for artistic expression but presents many problems to the development team. [[File:age_1.png]] In particular it adds to the classical problems of 3D modelling (number of polygons, square or triangular faces, etc.) the problems of constructing a super mesh that can be transformed into any form of human while being sufficiently optimised to be able to be manipulated on desktop machines, yet still producing a professional quality of output. These discussions resulted in agreement that the initial mesh should occupy a middle ground, being neither pronounced masculine, nor pronounced feminine, neither young nor old and having a medium muscular definition. An androgynous form, the HoMunculus. !IMAGE!Pictures/hm01_0.png!/IMAGE! The Homunculus 00 (2002). No male, no female, nor young or old. A perfect neutral body. ==== Evolution of the topology ==== The current MakeHuman mesh has evolved through successive iterations of the project, incorporating lessons learned, community feedback and the results of considerable amounts of studies and experimentations. The current version, known as the ‘Homunculus 08’ comprises a state of the art universal humanoid model, including: * Light and optimized for subdivision surfaces modelling (14766 faces). * Quads only. The human mesh is completely triangles free. * Optimized for animation and sculpting (Zbrush, Mudbox) * MInimal number of poles * Max number of edges admitted for a pole: 5 !IMAGE!Pictures/heads_0.png!/IMAGE! The Homunculus evolution through the heads === Homunculus releases === * The first prototype of an universal mesh (head only) was done in 1999 in the makeHead script, and then adapted for the early MH (2000), * The Homunculus00, was realized by Enrico Valenza in 2002. * The Homunculus01 (or K-Mesh) was modelled by Kaushik Pal in 2005 * The Homunculus02 was modelled by Manuel Bastioni (Z-Mesh); * The Homunculus03 was modelled by Gianluca Miragoli (aka Yashugan) in 2007 and builds upon the experience gained on the preceding versions (Y-Mesh) * The Homunculus04 build upon the previous one by Gianluca Miragoli and Manuel Bastioni * The Homunculus05 build upon the previous one by Gianluca Miragoli. * The Homunculus06 released in 2010 (artists: Waldemar Perez Jr., André Richard, Manuel Bastioni). * The Homunculus07 completely remodelled by Manuel Bastioni in 2011 * The Homunculus08 remodelled from scratch by Manuel Bastioni in 2013 !IMAGE!Pictures/wip03_0.png!/IMAGE! An image from the "Making of" the Homunculus 08 ==== Alternative topologies ==== The base mesh is capable to be morphed practically in any human character, but in some cases it is preferred to have a very specialized topology. For this reason, since the version 1.0 alpha 7, MakeHuman includes a function to change the mesh of the character, just selecting it from a simple chooser. The makeHuman team is studying the requirements needed for different purposes (animation, games, crowd, closeups, etc..) in order to create a database of professional topologies. !IMAGE!Pictures/topologies.png!/IMAGE! 2ca9292a27f148c0b9303d993feea09a34d57aad 677 114 2016-05-20T08:21:24Z Joepal 14 wikitext text/x-wiki ==== The Homunculus ==== The principal aim of MakeHuman project is to develop an open source application capable to create realistic tridimensional humans. Since the early release in 2001, by pursuing this aim the MakeHuman Team have developed a model that can combine different anatomical parameters to transition smoothly from the infant to the elderly, from man to woman and from fat to slim. The vast wealth of potential combinations provides the artist an extraordinarily broad range of possibilities for artistic expression but presents many problems to the development team. !IMAGE!Pictures/age_1.png!/IMAGE! In particular it adds to the classical problems of 3D modelling (number of polygons, square or triangular faces, etc.) the problems of constructing a super mesh that can be transformed into any form of human while being sufficiently optimised to be able to be manipulated on desktop machines, yet still producing a professional quality of output. These discussions resulted in agreement that the initial mesh should occupy a middle ground, being neither pronounced masculine, nor pronounced feminine, neither young nor old and having a medium muscular definition. An androgynous form, the HoMunculus. !IMAGE!Pictures/hm01_0.png!/IMAGE! The Homunculus 00 (2002). No male, no female, nor young or old. A perfect neutral body. ==== Evolution of the topology ==== The current MakeHuman mesh has evolved through successive iterations of the project, incorporating lessons learned, community feedback and the results of considerable amounts of studies and experimentations. The current version, known as the ‘Homunculus 08’ comprises a state of the art universal humanoid model, including: * Light and optimized for subdivision surfaces modelling (14766 faces). * Quads only. The human mesh is completely triangles free. * Optimized for animation and sculpting (Zbrush, Mudbox) * MInimal number of poles * Max number of edges admitted for a pole: 5 !IMAGE!Pictures/heads_0.png!/IMAGE! The Homunculus evolution through the heads === Homunculus releases === * The first prototype of an universal mesh (head only) was done in 1999 in the makeHead script, and then adapted for the early MH (2000), * The Homunculus00, was realized by Enrico Valenza in 2002. * The Homunculus01 (or K-Mesh) was modelled by Kaushik Pal in 2005 * The Homunculus02 was modelled by Manuel Bastioni (Z-Mesh); * The Homunculus03 was modelled by Gianluca Miragoli (aka Yashugan) in 2007 and builds upon the experience gained on the preceding versions (Y-Mesh) * The Homunculus04 build upon the previous one by Gianluca Miragoli and Manuel Bastioni * The Homunculus05 build upon the previous one by Gianluca Miragoli. * The Homunculus06 released in 2010 (artists: Waldemar Perez Jr., André Richard, Manuel Bastioni). * The Homunculus07 completely remodelled by Manuel Bastioni in 2011 * The Homunculus08 remodelled from scratch by Manuel Bastioni in 2013 !IMAGE!Pictures/wip03_0.png!/IMAGE! An image from the "Making of" the Homunculus 08 ==== Alternative topologies ==== The base mesh is capable to be morphed practically in any human character, but in some cases it is preferred to have a very specialized topology. For this reason, since the version 1.0 alpha 7, MakeHuman includes a function to change the mesh of the character, just selecting it from a simple chooser. The makeHuman team is studying the requirements needed for different purposes (animation, games, crowd, closeups, etc..) in order to create a database of professional topologies. !IMAGE!Pictures/topologies.png!/IMAGE! 3ea62ed1e6e1d68f489db7680029927c56df6b0c 114 113 2015-07-10T13:24:50Z Aiena 15 update heading markup wikitext text/x-wiki === The Homunculus === The principal aim of MakeHuman project is to develop an open source application capable to create realistic tridimensional humans. Since the early release in 2001, by pursuing this aim the MakeHuman Team have developed a model that can combine different anatomical parameters to transition smoothly from the infant to the elderly, from man to woman and from fat to slim. The vast wealth of potential combinations provides the artist an extraordinarily broad range of possibilities for artistic expression but presents many problems to the development team. [[File:Example.jpg]] In particular it adds to the classical problems of 3D modelling (number of polygons, square or triangular faces, etc.) the problems of constructing a super mesh that can be transformed into any form of human while being sufficiently optimised to be able to be manipulated on desktop machines, yet still producing a professional quality of output. These discussions resulted in agreement that the initial mesh should occupy a middle ground, being neither pronounced masculine, nor pronounced feminine, neither young nor old and having a medium muscular definition. An androgynous form, the HoMunculus. [[File:Example.jpg]] The Homunculus 00 (2002). No male, no female, nor young or old. A perfect neutral body. c156737c18a821b9e455ff6f72b7aaf089b52a6b 113 2015-07-10T13:23:15Z Aiena 15 Added skeleton text and dumy placeholders for images wikitext text/x-wiki The Homunculus The principal aim of MakeHuman project is to develop an open source application capable to create realistic tridimensional humans. Since the early release in 2001, by pursuing this aim the MakeHuman Team have developed a model that can combine different anatomical parameters to transition smoothly from the infant to the elderly, from man to woman and from fat to slim. The vast wealth of potential combinations provides the artist an extraordinarily broad range of possibilities for artistic expression but presents many problems to the development team. [[File:Example.jpg]] In particular it adds to the classical problems of 3D modelling (number of polygons, square or triangular faces, etc.) the problems of constructing a super mesh that can be transformed into any form of human while being sufficiently optimised to be able to be manipulated on desktop machines, yet still producing a professional quality of output. These discussions resulted in agreement that the initial mesh should occupy a middle ground, being neither pronounced masculine, nor pronounced feminine, neither young nor old and having a medium muscular definition. An androgynous form, the HoMunculus. [[File:Example.jpg]] The Homunculus 00 (2002). No male, no female, nor young or old. A perfect neutral body. 84448af6a57a0dcc092458fbc0724df37ff50271 Documentation:Rendering your work 3000 235 1112 780 2016-07-05T17:23:42Z Aranuvir 17 wikitext text/x-wiki MakeHuman has an internal rendering engine based on OpenGL technology: GLSL 1.2 for openGL 2.1 or higher. For this reason some features will be available only for machine(s) build after semptember 2006. For the same reasons, the results can vary a bit, depending the video cards. [[File:render_0.png]] == Quick render and advanced render == MakeHuman™ uses two different rendering approaches, quick and advanced rendering. Both them produce images with transparent background, in order to be eaily mounted in Gimp or Photoshop. The quick renderingis intended to for a click-and-see render. It uses fixed presets for lights and materials, studied to show the model in an optimal way. There are only ywo available options in that mode: * Resolution, written in the form widthxheight * Antialiasing(turn it on for quality rendering): Aliasing happens when model edges look 'jaggy'. Raise this slider to filter these. It also help hair and thin stuff in general look better. However raising the AA level can have an equivalent performance hit. The advanced renderinguse a different rendering technique. It gets the lights defined in "scene" and make complex calculations. In future it will supports shadows and more options to increase the realism. In addition to the two existing options, there is the subsurface scattering one. Enabling it will produce a more realistic and impressive skin, to simulate the skin's behaviour when light passes through it. When you have finished selecting the desired options, press the 'Render' button and see your model become a piece of 3D art! == Scene and Viewer == === Makehuman "Scenes" === MakeHuman™ provides a library of lighting presets, that will be used in the "advanced rendering" mode. This library is the "Scene" library which currently has only one lighting preset named "default". === The "Viewer" === The rendering result will be displayed in the "viewer". It's possible to zoom and move the image using the usual mouse buttons, and then save the image as png, using the "Save as" button. [[File:viewer_0.png]] cdd884e6f6b7754344830034e07717ca815cf8b7 780 696 2016-05-24T12:06:12Z Joepal 14 wikitext text/x-wiki MakeHuman has an internal rendering engine based on OpenGL technology: GLSL 1.2 for openGL 2.1 or higher. For this reason some features will be available only for machine(s) build after semptember 2006. For the same reasons, the results can vary a bit, depending the video cards. !IMAGE!Pictures/render_0.png!/IMAGE! == Quick render and advanced render == MakeHuman™ uses two different rendering approaches, quick and advanced rendering. Both them produce images with transparent background, in order to be eaily mounted in Gimp or Photoshop. The quick renderingis intended to for a click-and-see render. It uses fixed presets for lights and materials, studied to show the model in an optimal way. There are only ywo available options in that mode: * Resolution, written in the form widthxheight * Antialiasing(turn it on for quality rendering): Aliasing happens when model edges look 'jaggy'. Raise this slider to filter these. It also help hair and thin stuff in general look better. However raising the AA level can have an equivalent performance hit. The advanced renderinguse a different rendering technique. It gets the lights defined in "scene" and make complex calculations. In future it will supports shadows and more options to increase the realism. In addition to the two existing options, there is the subsurface scattering one. Enabling it will produce a more realistic and impressive skin, to simulate the skin's behaviour when light passes through it. When you have finished selecting the desired options, press the 'Render' button and see your model become a piece of 3D art! == Scene and Viewer == === Makehuman "Scenes" === MakeHuman™ provides a library of lighting presets, that will be used in the "advanced rendering" mode. This library is the "Scene" library which currently has only one lighting preset named "default". === The "Viewer" === The rendering result will be displayed in the "viewer". It's possible to zoom and move the image using the usual mouse buttons, and then save the image as png, using the "Save as" button. !IMAGE!Pictures/viewer_0.png!/IMAGE! 3eb592b6a04c08c42ede162f357b2f34e3ef77b5 696 2016-05-20T09:06:40Z Joepal 14 Created page with "MakeHuman™ has an internal rendering engine based on OpenGL technology: GLSL 1.2 for openGL 2.1 or superior. For this reason some features will be available only for machine..." wikitext text/x-wiki MakeHuman™ has an internal rendering engine based on OpenGL technology: GLSL 1.2 for openGL 2.1 or superior. For this reason some features will be available only for machine(s) build after semptember 2006. For the same reasons, the results can vary a bit, depending the video cards. !IMAGE!Pictures/render_0.png!/IMAGE! ==== Quick render and advanced render ==== MakeHuman™ uses two different rendering approaches, quick and advanced rendering. Both them produce images with transparent background, in order to be eaily mounted in Gimp or Photoshop. The quick renderingis intended to for a click-and-see render. It uses fixed presets for lights and materials, studied to show the model in an optimal way. There are only ywo available options in that mode: * Resolution, written in the form widthxheight * Antialiasing(turn it on for quality rendering): Aliasing happens when model edges look 'jaggy'. Raise this slider to filter these. It also help hair and thin stuff in general look better. However raising the AA level can have an equivalent performance hit. The advanced renderinguse a different rendering technique. It gets the lights defined in "scene" and make complex calculations. In future it will supports shadows and more options to increase the realism. In addition to the two existing options, there is the subsurface scattering one. Enabling it will produce a more realistic and impressive skin, to simulate the skin's behaviour when light passes through it. When you have finished selecting the desired options, press the 'Render' button and see your model become a piece of 3D art! === Scene and Viewer === ==== Makehuman "Scenes": ==== MakeHuman™ provides a library of lighting presets, that will be used in the "advanced rendering" mode. This library is the "Scene" library which currently has only one lighting preset named "default". ==== The "Viewer": ==== The rendering result will be displayed in the "viewer". It's possible to zoom and move the image using the usual mouse buttons, and then save the image as png, using the "Save as" button. !IMAGE!Pictures/viewer_0.png!/IMAGE! 30b7db415823e011ee33aa076771205139e03eb6 Documentation:Reporting a bug 3000 237 700 2016-05-20T11:05:01Z Joepal 14 Created page with "=== Using the Makehuman log files for error reporting === Occassionally, MakeHuman will not behave as expected, or you will note an exception in the status line, You willingne..." wikitext text/x-wiki === Using the Makehuman log files for error reporting === Occassionally, MakeHuman will not behave as expected, or you will note an exception in the status line, You willingness to make a bug report.for such events goes a long way to help imrove MakeHuman. For simple bugs,, it can often be enough to report the version of your operating system, the version of MakeHuman that you are using, and the steps to reproduce the problem. However, the developers often need to know more detail to reproduce your problem in a different environment. As long as MakeHuman has not "crashed" completely, the easiest way to learn the details is to use thebuilt-in log viewer. This can be accessed by selecting theutilities taband then thelog subtab. On the left, you will see alevel selectorthat is initially set to "default". The center panel will show a very verbose set of all the actions that have happened inside MakeHuman since it was last restarted. This entire set of information is seldom needed. For bug reporting, you will be most interested in the messages that show when you set the level selector to "error". If severe problems have occurred, the center window will show the errors logged in red. If there are none, it may still be worth reporting the somewhat less severe "warning" level messages which resulted in code exceptions. These messages will show in orange if you set the level selector to "warning". Only seldom will levels of "notice" or "message" be of interest to developers. Supply these only upon request. When you find "errors" or "warnings" you can highlight the message(s) with the mouse and press the "copy" button in the left panel. The message will be copied to your clipboard. Simply paste these messages at the end of your bug report. In the event that MakeHuman crashes completely, or in the case of complex problems it may be better or easier to upload more complete log information from the log files. MakeHuman always creates 2 important files called "makehuman-debug.txt" and "makehuman.log" in the user's home directory (under "My Documents/makehuman/v1" in Windows or "~/makehuman/v1" in your linux distribution). makehuman-debug.txt:This provides some essential information about the system on which you have installed makehuman such as version information, machine architecture type, numpy versions and so on which is useful when reporting a bug as the bug may be applicable to your particular machine configuration. makehuman.log:The makehuman.log file is another separate file. This file logs all events that take place from the beginning when makehuman is loading till the end when makehuman is closed. ALl regular events and error messages are logged in this file. It is important that you attach either this whole file or the last few signinficant lines indicating where the bug occured. This logs contains backtraces and other useful information like what plugins loaded, what plugins did not at which point did a python script fail and so on. When reporting a bug in the makehuman bugtracker posting the contents of both these files is useful and will help us to debug and resolve the issue(s) more quickly. This is of course not needed when you are posting a feature request which is not a bug. === Using the Makehuman bug tracker === Makehuman has introduced a new internal bug tracker based on redmine (!LINK!http://www.redmine.org -- www.redmine.org!/LINK!) this tracker allows us to easily handle bug reports and feature requests reported/requested by you. In order to use this new bug tracker a forum account is compulsory (even if you do not wish to use forums). Your forum ID becomes your makehuman bug tracker ID. Following are some quick links related to makehuman bug tracker: * Roadmaps:!LINK!http://bugtracker.makehuman.org/projects/makehuman/roadmap -- http://bugtracker.makehuman.org/projects/makehuman/roadmap!/LINK! * Add a new issue and see the isues list:!LINK!http://bugtracker.makehuman.org/projects/makehuman/issues -- http://bugtracker.makehuman.org/projects/makehuman/issues!/LINK! * Graph for a quick overview:!LINK!http://bugtracker.makehuman.org/projects/makehuman/issues/growth -- http://bugtracker.makehuman.org/projects/makehuman/issues/growth!/LINK! * Activity:!LINK!http://bugtracker.makehuman.org/projects/makehuman/activity -- http://bugtracker.makehuman.org/projects/makehuman/activity!/LINK! 08245ca9e3b74db8efad98b315601c78ba596019 Documentation:Running MakeHuman from source 3000 388 1597 1232 2019-05-10T10:56:13Z Wolgade 26 wikitext text/x-wiki == Before you start == This page describes running MakeHuman 1.1 running from source code hosted on Bitbucket. If you're looking for the upcoming MakeHuman 1.2 go to [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to get started on this page. == Overview == There are several reasons why you might want to run MakeHuman from a source snapshot from BitBucket rather than use one of the pre-built packages: * This makes it easy to update and get the latest features * You get full access to all assets (in the builds the assets are only available in compiled archives) * It's possible there is no functional pre-built package for your platform. In order to run from source, you need the following: * Get a source snapshot from BitBucket * Install/setup a python environment with [http://www.python.org python 2.7] (python later than 2.7 will not work) and the following dependencies installed: ** [http://sourceforge.net/projects/numpy/files/NumPy/ NumPy] ** [http://pyopengl.sourceforge.net/ PyOpenGL] ** [http://www.riverbankcomputing.com/software/pyqt PyQT] (the required version is pyqt for qt4, qt5 is not supported) * Run the script for downloading assets (this is described in a section at the bottom of the page, after the platform specific notes) * (optionally) run the scripts for compiling assets == Getting the source from Bitbucket == At this point in time it's recommended you run from the "stable" branch. If you're feeling adventurous, you can run "default", but in more cases than not this will crash for you. The quickest way to get the source is to download is as a zip at https://bitbucket.org/MakeHuman/makehuman/get/stable.zip However, if you plan to update in the future, you will want to install a [https://www.mercurial-scm.org/ mercurial] client and check out a source clone. This looks different depending on platform. == Setting up the environment on Windows == Setting up the environment on Windows is normally somewhat cumbersome. There is a tutorial video on how to do this, but the links in the video are outdated. Rather than downloading all the dependencies in a big zip file, you will need to download them separately from the links above. However, in the video you can see what they should be named approximately. {{#ev:youtube|3CCHGX-6Mtk}} '''IMPORTANT:''' You ''must'' install the same architecture (32-bit or 64-bit) for all packages. While it's possible that you can find 64-bit packages for everything, it's probably easier to go for 32-bit packages even on a 64-bit system. There are several mercurial clients for windows, but one of the more popular ones is [http://tortoisehg.bitbucket.org/ TortoiseHG]. == Setting up the environment on Linux == Running from source on Linux is generally trivial since all the dependencies are available via the package management. For Ubuntu and Debian, there is [https://bitbucket.org/MakeHuman/makehuman/src/179e10c2b9440f73f6d154839e8720e1dccf39cd/buildscripts/deb/install_deb_dependencies.bash?at=stable&fileviewer=file-view-default a script] for installing all the required dependencies. If you are not using a debian derivate, you will need to figure out that the dependencies are called on your platform. You will probably want at least: * python 2.7 * python-numpy * python-opengl * qt4 * python-qt4 * python-qt4-gl For example on ubuntu: sudo apt-get install python-numpy python-opengl python-qt4 python-qt4-gl Usually it is not necessary to install python, since most Linux distributions have python preinstalled. Currently MakeHuman depends on python2.7 (a port to python3 has been started). In the future python2 might not be pre-installed anymore, so make sure python2 is on your system: python2 --version The mercurial client is also available in most linux distributions. In ubuntu it's called "mercurial". For example: sudo apt-get install mercurial To get a source snapshot from bitbucket run: hg clone https://bitbucket.org/MakeHuman/makehuman cd makehuman hg update -C stable == Setting up the environment on MacOSX == To get the sources you need to either install hg or grab the very useful mercurial/git gui [https://www.sourcetreeapp.com SourceTree]. After you install the SourceTree app just go to the [https://bitbucket.org/MakeHuman/makehuman MakeHuman project on BitBucket] and click on the download icon in the upper right corner who's mouseover says 'Clone in SourceTree' Now that you have the source you need to get a python that supports the libraries/modules listed above. The easiest way to get a working python and needed libraries installed on your mac is via [http://brew.sh Brew]. After you install and/or update brew with the instructions on that site do the following: brew install python brew search qt On my system that showed the a list of different things to install, what you are looking for is qt4 and pyqt4. The entries that matched that for me were: brew install cartr/qt4/qt brew install cartr/qt4/pyqt This will install dependencies like sip, etc as well if needed. If it says it's missing dependencies ( say sip ) do a search on those dependencies and install the right versions. Note that you do not run brew as root, it's files are all owned by you. Once that is complete you should be able to follow the instructions to complete downloading, compiling the assets and pulling new versions from the repository ( via SourceTree if that is what you used ). == Download and compilation scripts == Once you have an environment with the dependencies installed, and a source snapshot, there are a few scripts that should normally be run. They are available in the "makehuman" directory and should probably be run in this order: * download_assets.py (this is required, and will dowload all clothes etc) * compile_targets.py (these three are optional but will make starting makehuman faster) * compile_models.py * compile_proxies.py == Starting makehuman == With all the above, simply run the "makehuman.py" script either by double-clicking on it or by executing it from a console prompt. 104fb76a1f94daeb46168f26f660a3c1f20ee013 1232 1231 2016-11-17T19:38:06Z Tenuki 36 /* Setting up the environment on MacOSX */ wikitext text/x-wiki == Overview == There are several reasons why you might want to run MakeHuman from a source snapshot from BitBucket rather than use one of the pre-built packages: * This makes it easy to update and get the latest features * You get full access to all assets (in the builds the assets are only available in compiled archives) * It's possible there is no functional pre-built package for your platform. In order to run from source, you need the following: * Get a source snapshot from BitBucket * Install/setup a python environment with [http://www.python.org python 2.7] (python later than 2.7 will not work) and the following dependencies installed: ** [http://sourceforge.net/projects/numpy/files/NumPy/ NumPy] ** [http://pyopengl.sourceforge.net/ PyOpenGL] ** [http://www.riverbankcomputing.com/software/pyqt PyQT] (the required version is pyqt for qt4, qt5 is not supported) * Run the script for downloading assets (this is described in a section at the bottom of the page, after the platform specific notes) * (optionally) run the scripts for compiling assets == Getting the source from Bitbucket == At this point in time it's recommended you run from the "stable" branch. If you're feeling adventurous, you can run "default", but in more cases than not this will crash for you. The quickest way to get the source is to download is as a zip at https://bitbucket.org/MakeHuman/makehuman/get/stable.zip However, if you plan to update in the future, you will want to install a [https://www.mercurial-scm.org/ mercurial] client and check out a source clone. This looks different depending on platform. == Setting up the environment on Windows == Setting up the environment on Windows is normally somewhat cumbersome. There is a tutorial video on how to do this, but the links in the video are outdated. Rather than downloading all the dependencies in a big zip file, you will need to download them separately from the links above. However, in the video you can see what they should be named approximately. {{#ev:youtube|3CCHGX-6Mtk}} '''IMPORTANT:''' You ''must'' install the same architecture (32-bit or 64-bit) for all packages. While it's possible that you can find 64-bit packages for everything, it's probably easier to go for 32-bit packages even on a 64-bit system. There are several mercurial clients for windows, but one of the more popular ones is [http://tortoisehg.bitbucket.org/ TortoiseHG]. == Setting up the environment on Linux == Running from source on Linux is generally trivial since all the dependencies are available via the package management. For Ubuntu and Debian, there is [https://bitbucket.org/MakeHuman/makehuman/src/179e10c2b9440f73f6d154839e8720e1dccf39cd/buildscripts/deb/install_deb_dependencies.bash?at=stable&fileviewer=file-view-default a script] for installing all the required dependencies. If you are not using a debian derivate, you will need to figure out that the dependencies are called on your platform. You will probably want at least: * python 2.7 * python-numpy * python-opengl * qt4 * python-qt4 * python-qt4-gl For example on ubuntu: sudo apt-get install python-numpy python-opengl python-qt4 python-qt4-gl Usually it is not necessary to install python, since most Linux distributions have python preinstalled. Currently MakeHuman depends on python2.7 (a port to python3 has been started). In the future python2 might not be pre-installed anymore, so make sure python2 is on your system: python2 --version The mercurial client is also available in most linux distributions. In ubuntu it's called "mercurial". For example: sudo apt-get install mercurial To get a source snapshot from bitbucket run: hg clone https://bitbucket.org/MakeHuman/makehuman cd makehuman hg update -C stable == Setting up the environment on MacOSX == To get the sources you need to either install hg or grab the very useful mercurial/git gui [https://www.sourcetreeapp.com SourceTree]. After you install the SourceTree app just go to the [https://bitbucket.org/MakeHuman/makehuman MakeHuman project on BitBucket] and click on the download icon in the upper right corner who's mouseover says 'Clone in SourceTree' Now that you have the source you need to get a python that supports the libraries/modules listed above. The easiest way to get a working python and needed libraries installed on your mac is via [http://brew.sh Brew]. After you install and/or update brew with the instructions on that site do the following: brew install python brew search qt On my system that showed the a list of different things to install, what you are looking for is qt4 and pyqt4. The entries that matched that for me were: brew install cartr/qt4/qt brew install cartr/qt4/pyqt This will install dependencies like sip, etc as well if needed. If it says it's missing dependencies ( say sip ) do a search on those dependencies and install the right versions. Note that you do not run brew as root, it's files are all owned by you. Once that is complete you should be able to follow the instructions to complete downloading, compiling the assets and pulling new versions from the repository ( via SourceTree if that is what you used ). == Download and compilation scripts == Once you have an environment with the dependencies installed, and a source snapshot, there are a few scripts that should normally be run. They are available in the "makehuman" directory and should probably be run in this order: * download_assets.py (this is required, and will dowload all clothes etc) * compile_targets.py (these three are optional but will make starting makehuman faster) * compile_models.py * compile_proxies.py == Starting makehuman == With all the above, simply run the "makehuman.py" script either by double-clicking on it or by executing it from a console prompt. d55db5e5f44304f4f82f0420961d24c663e2582f 1231 1230 2016-11-17T19:36:26Z Tenuki 36 /* Setting up the environment on MacOSX */ wikitext text/x-wiki == Overview == There are several reasons why you might want to run MakeHuman from a source snapshot from BitBucket rather than use one of the pre-built packages: * This makes it easy to update and get the latest features * You get full access to all assets (in the builds the assets are only available in compiled archives) * It's possible there is no functional pre-built package for your platform. In order to run from source, you need the following: * Get a source snapshot from BitBucket * Install/setup a python environment with [http://www.python.org python 2.7] (python later than 2.7 will not work) and the following dependencies installed: ** [http://sourceforge.net/projects/numpy/files/NumPy/ NumPy] ** [http://pyopengl.sourceforge.net/ PyOpenGL] ** [http://www.riverbankcomputing.com/software/pyqt PyQT] (the required version is pyqt for qt4, qt5 is not supported) * Run the script for downloading assets (this is described in a section at the bottom of the page, after the platform specific notes) * (optionally) run the scripts for compiling assets == Getting the source from Bitbucket == At this point in time it's recommended you run from the "stable" branch. If you're feeling adventurous, you can run "default", but in more cases than not this will crash for you. The quickest way to get the source is to download is as a zip at https://bitbucket.org/MakeHuman/makehuman/get/stable.zip However, if you plan to update in the future, you will want to install a [https://www.mercurial-scm.org/ mercurial] client and check out a source clone. This looks different depending on platform. == Setting up the environment on Windows == Setting up the environment on Windows is normally somewhat cumbersome. There is a tutorial video on how to do this, but the links in the video are outdated. Rather than downloading all the dependencies in a big zip file, you will need to download them separately from the links above. However, in the video you can see what they should be named approximately. {{#ev:youtube|3CCHGX-6Mtk}} '''IMPORTANT:''' You ''must'' install the same architecture (32-bit or 64-bit) for all packages. While it's possible that you can find 64-bit packages for everything, it's probably easier to go for 32-bit packages even on a 64-bit system. There are several mercurial clients for windows, but one of the more popular ones is [http://tortoisehg.bitbucket.org/ TortoiseHG]. == Setting up the environment on Linux == Running from source on Linux is generally trivial since all the dependencies are available via the package management. For Ubuntu and Debian, there is [https://bitbucket.org/MakeHuman/makehuman/src/179e10c2b9440f73f6d154839e8720e1dccf39cd/buildscripts/deb/install_deb_dependencies.bash?at=stable&fileviewer=file-view-default a script] for installing all the required dependencies. If you are not using a debian derivate, you will need to figure out that the dependencies are called on your platform. You will probably want at least: * python 2.7 * python-numpy * python-opengl * qt4 * python-qt4 * python-qt4-gl For example on ubuntu: sudo apt-get install python-numpy python-opengl python-qt4 python-qt4-gl Usually it is not necessary to install python, since most Linux distributions have python preinstalled. Currently MakeHuman depends on python2.7 (a port to python3 has been started). In the future python2 might not be pre-installed anymore, so make sure python2 is on your system: python2 --version The mercurial client is also available in most linux distributions. In ubuntu it's called "mercurial". For example: sudo apt-get install mercurial To get a source snapshot from bitbucket run: hg clone https://bitbucket.org/MakeHuman/makehuman cd makehuman hg update -C stable == Setting up the environment on MacOSX == To get the sources you need to either install hg or grab the very useful mercurial/git gui [https://www.sourcetreeapp.com SourceTree]. After you install the SourceTree app just go to the [https://bitbucket.org/MakeHuman/makehuman MakeHuman project on BitBucket] and click on the download icon in the upper right corner who's mouseover says 'Clone in SourceTree' Now that you have the source you need to get a python that supports the libraries/modules listed above. The easiest way to get a working python and needed libraries installed on your mac is via [http://brew.sh Brew]. After you install and/or update brew with the instructions on that site do the following: brew search qt On my system that showed the a list of different things to install, what you are looking for is qt4 and pyqt4. The entries that matched that for me were: brew install cartr/qt4/qt brew install cartr/qt4/pyqt This will install dependencies like sip, etc as well if needed. If it says it's missing dependencies ( say sip ) do a search on those dependencies and install the right versions. Note that you do not run brew as root, it's files are all owned by you. Once that is complete you should be able to follow the instructions to complete downloading, compiling the assets and pulling new versions from the repository ( via SourceTree if that is what you used ). == Download and compilation scripts == Once you have an environment with the dependencies installed, and a source snapshot, there are a few scripts that should normally be run. They are available in the "makehuman" directory and should probably be run in this order: * download_assets.py (this is required, and will dowload all clothes etc) * compile_targets.py (these three are optional but will make starting makehuman faster) * compile_models.py * compile_proxies.py == Starting makehuman == With all the above, simply run the "makehuman.py" script either by double-clicking on it or by executing it from a console prompt. ac91e22c4f0b612b3cc311492745b489d7616325 1230 1229 2016-11-17T19:17:55Z Tenuki 36 /* Setting up the environment on MacOSX */ wikitext text/x-wiki == Overview == There are several reasons why you might want to run MakeHuman from a source snapshot from BitBucket rather than use one of the pre-built packages: * This makes it easy to update and get the latest features * You get full access to all assets (in the builds the assets are only available in compiled archives) * It's possible there is no functional pre-built package for your platform. In order to run from source, you need the following: * Get a source snapshot from BitBucket * Install/setup a python environment with [http://www.python.org python 2.7] (python later than 2.7 will not work) and the following dependencies installed: ** [http://sourceforge.net/projects/numpy/files/NumPy/ NumPy] ** [http://pyopengl.sourceforge.net/ PyOpenGL] ** [http://www.riverbankcomputing.com/software/pyqt PyQT] (the required version is pyqt for qt4, qt5 is not supported) * Run the script for downloading assets (this is described in a section at the bottom of the page, after the platform specific notes) * (optionally) run the scripts for compiling assets == Getting the source from Bitbucket == At this point in time it's recommended you run from the "stable" branch. If you're feeling adventurous, you can run "default", but in more cases than not this will crash for you. The quickest way to get the source is to download is as a zip at https://bitbucket.org/MakeHuman/makehuman/get/stable.zip However, if you plan to update in the future, you will want to install a [https://www.mercurial-scm.org/ mercurial] client and check out a source clone. This looks different depending on platform. == Setting up the environment on Windows == Setting up the environment on Windows is normally somewhat cumbersome. There is a tutorial video on how to do this, but the links in the video are outdated. Rather than downloading all the dependencies in a big zip file, you will need to download them separately from the links above. However, in the video you can see what they should be named approximately. {{#ev:youtube|3CCHGX-6Mtk}} '''IMPORTANT:''' You ''must'' install the same architecture (32-bit or 64-bit) for all packages. While it's possible that you can find 64-bit packages for everything, it's probably easier to go for 32-bit packages even on a 64-bit system. There are several mercurial clients for windows, but one of the more popular ones is [http://tortoisehg.bitbucket.org/ TortoiseHG]. == Setting up the environment on Linux == Running from source on Linux is generally trivial since all the dependencies are available via the package management. For Ubuntu and Debian, there is [https://bitbucket.org/MakeHuman/makehuman/src/179e10c2b9440f73f6d154839e8720e1dccf39cd/buildscripts/deb/install_deb_dependencies.bash?at=stable&fileviewer=file-view-default a script] for installing all the required dependencies. If you are not using a debian derivate, you will need to figure out that the dependencies are called on your platform. You will probably want at least: * python 2.7 * python-numpy * python-opengl * qt4 * python-qt4 * python-qt4-gl For example on ubuntu: sudo apt-get install python-numpy python-opengl python-qt4 python-qt4-gl Usually it is not necessary to install python, since most Linux distributions have python preinstalled. Currently MakeHuman depends on python2.7 (a port to python3 has been started). In the future python2 might not be pre-installed anymore, so make sure python2 is on your system: python2 --version The mercurial client is also available in most linux distributions. In ubuntu it's called "mercurial". For example: sudo apt-get install mercurial To get a source snapshot from bitbucket run: hg clone https://bitbucket.org/MakeHuman/makehuman cd makehuman hg update -C stable == Setting up the environment on MacOSX == To get the sources you need to either install hg or grab the very useful mercurial/git gui [https://www.sourcetreeapp.com SourceTree]. After you install the app just go to the [https://bitbucket.org/MakeHuman/makehuman MakeHuman project on BitBucket] and click on the download icon in the upper right corner who's mouseover says 'Clone in SourceTree' Now that you have the source you need to get a python that supports the libraries/modules listed above. The easiest way to get a working python and needed libraries installed on your mac is via [http://brew.sh Brew]. After you install and/or update brew with the instructions on that site do the following: brew search qt On my system that showed the a list of different things to install, what you are looking for is qt4 and pyqt4. The entries that matched that for me were: brew install cartr/qt4/qt brew install cartr/qt4/pyqt This will install dependencies like sip, etc as well if needed. If it says it's missing dependencies ( say sip ) do a search on those dependencies and install the right versions. Note that you do not run brew as root, it's files are all owned by you. Once that is complete you should be able to follow the instructions to complete downloading, compiling the assets and pulling new versions from the repository ( via SourceTree if that is what you used ). == Download and compilation scripts == Once you have an environment with the dependencies installed, and a source snapshot, there are a few scripts that should normally be run. They are available in the "makehuman" directory and should probably be run in this order: * download_assets.py (this is required, and will dowload all clothes etc) * compile_targets.py (these three are optional but will make starting makehuman faster) * compile_models.py * compile_proxies.py == Starting makehuman == With all the above, simply run the "makehuman.py" script either by double-clicking on it or by executing it from a console prompt. 15b048baba21aba825b7c010f0bad462ed65afc6 1229 1228 2016-11-17T19:17:07Z Tenuki 36 /* Setting up the environment on MacOSX */ wikitext text/x-wiki == Overview == There are several reasons why you might want to run MakeHuman from a source snapshot from BitBucket rather than use one of the pre-built packages: * This makes it easy to update and get the latest features * You get full access to all assets (in the builds the assets are only available in compiled archives) * It's possible there is no functional pre-built package for your platform. In order to run from source, you need the following: * Get a source snapshot from BitBucket * Install/setup a python environment with [http://www.python.org python 2.7] (python later than 2.7 will not work) and the following dependencies installed: ** [http://sourceforge.net/projects/numpy/files/NumPy/ NumPy] ** [http://pyopengl.sourceforge.net/ PyOpenGL] ** [http://www.riverbankcomputing.com/software/pyqt PyQT] (the required version is pyqt for qt4, qt5 is not supported) * Run the script for downloading assets (this is described in a section at the bottom of the page, after the platform specific notes) * (optionally) run the scripts for compiling assets == Getting the source from Bitbucket == At this point in time it's recommended you run from the "stable" branch. If you're feeling adventurous, you can run "default", but in more cases than not this will crash for you. The quickest way to get the source is to download is as a zip at https://bitbucket.org/MakeHuman/makehuman/get/stable.zip However, if you plan to update in the future, you will want to install a [https://www.mercurial-scm.org/ mercurial] client and check out a source clone. This looks different depending on platform. == Setting up the environment on Windows == Setting up the environment on Windows is normally somewhat cumbersome. There is a tutorial video on how to do this, but the links in the video are outdated. Rather than downloading all the dependencies in a big zip file, you will need to download them separately from the links above. However, in the video you can see what they should be named approximately. {{#ev:youtube|3CCHGX-6Mtk}} '''IMPORTANT:''' You ''must'' install the same architecture (32-bit or 64-bit) for all packages. While it's possible that you can find 64-bit packages for everything, it's probably easier to go for 32-bit packages even on a 64-bit system. There are several mercurial clients for windows, but one of the more popular ones is [http://tortoisehg.bitbucket.org/ TortoiseHG]. == Setting up the environment on Linux == Running from source on Linux is generally trivial since all the dependencies are available via the package management. For Ubuntu and Debian, there is [https://bitbucket.org/MakeHuman/makehuman/src/179e10c2b9440f73f6d154839e8720e1dccf39cd/buildscripts/deb/install_deb_dependencies.bash?at=stable&fileviewer=file-view-default a script] for installing all the required dependencies. If you are not using a debian derivate, you will need to figure out that the dependencies are called on your platform. You will probably want at least: * python 2.7 * python-numpy * python-opengl * qt4 * python-qt4 * python-qt4-gl For example on ubuntu: sudo apt-get install python-numpy python-opengl python-qt4 python-qt4-gl Usually it is not necessary to install python, since most Linux distributions have python preinstalled. Currently MakeHuman depends on python2.7 (a port to python3 has been started). In the future python2 might not be pre-installed anymore, so make sure python2 is on your system: python2 --version The mercurial client is also available in most linux distributions. In ubuntu it's called "mercurial". For example: sudo apt-get install mercurial To get a source snapshot from bitbucket run: hg clone https://bitbucket.org/MakeHuman/makehuman cd makehuman hg update -C stable == Setting up the environment on MacOSX == To get the sources you need to either install hg or grab the very useful mercurial/git gui [https://www.sourcetreeapp.com SourceTree]. After you install the app just go to the [https://bitbucket.org/MakeHuman/makehuman MakeHuman project on BitBucket] and click on the download icon in the upper right corner who's mouseover says 'Clone in SourceTree' Now that you have the source you need to get a python that supports the libraries/modules listed above. The easiest way to get a working python and needed libraries installed on your mac is via [http://brew.sh Brew]. After you install and/or update brew with the instructions on that site do the following: brew search qt On my system that showed the a list of different things to install, what you are looking for is qt4 and pyqt4. The entries that matched that for me were: brew install cartr/qt4/qt brew install cartr/qt4/pyqt This will install dependencies like sip, etc as well. If it says it's missing dependencies ( say sip ) do a search on those dependencies and install the right versions. Note that you do not run brew as root, it's files are all owned by you. Once that is complete you should be able to follow the instructions to complete downloading, compiling the assets and pulling new versions from the repository ( via SourceTree if that is what you used ). == Download and compilation scripts == Once you have an environment with the dependencies installed, and a source snapshot, there are a few scripts that should normally be run. They are available in the "makehuman" directory and should probably be run in this order: * download_assets.py (this is required, and will dowload all clothes etc) * compile_targets.py (these three are optional but will make starting makehuman faster) * compile_models.py * compile_proxies.py == Starting makehuman == With all the above, simply run the "makehuman.py" script either by double-clicking on it or by executing it from a console prompt. 1bec07c96197c3f8fba31eb50c6f2a4fd81969a9 1228 1227 2016-11-17T19:14:26Z Tenuki 36 /* Setting up the environment on MacOSX */ wikitext text/x-wiki == Overview == There are several reasons why you might want to run MakeHuman from a source snapshot from BitBucket rather than use one of the pre-built packages: * This makes it easy to update and get the latest features * You get full access to all assets (in the builds the assets are only available in compiled archives) * It's possible there is no functional pre-built package for your platform. In order to run from source, you need the following: * Get a source snapshot from BitBucket * Install/setup a python environment with [http://www.python.org python 2.7] (python later than 2.7 will not work) and the following dependencies installed: ** [http://sourceforge.net/projects/numpy/files/NumPy/ NumPy] ** [http://pyopengl.sourceforge.net/ PyOpenGL] ** [http://www.riverbankcomputing.com/software/pyqt PyQT] (the required version is pyqt for qt4, qt5 is not supported) * Run the script for downloading assets (this is described in a section at the bottom of the page, after the platform specific notes) * (optionally) run the scripts for compiling assets == Getting the source from Bitbucket == At this point in time it's recommended you run from the "stable" branch. If you're feeling adventurous, you can run "default", but in more cases than not this will crash for you. The quickest way to get the source is to download is as a zip at https://bitbucket.org/MakeHuman/makehuman/get/stable.zip However, if you plan to update in the future, you will want to install a [https://www.mercurial-scm.org/ mercurial] client and check out a source clone. This looks different depending on platform. == Setting up the environment on Windows == Setting up the environment on Windows is normally somewhat cumbersome. There is a tutorial video on how to do this, but the links in the video are outdated. Rather than downloading all the dependencies in a big zip file, you will need to download them separately from the links above. However, in the video you can see what they should be named approximately. {{#ev:youtube|3CCHGX-6Mtk}} '''IMPORTANT:''' You ''must'' install the same architecture (32-bit or 64-bit) for all packages. While it's possible that you can find 64-bit packages for everything, it's probably easier to go for 32-bit packages even on a 64-bit system. There are several mercurial clients for windows, but one of the more popular ones is [http://tortoisehg.bitbucket.org/ TortoiseHG]. == Setting up the environment on Linux == Running from source on Linux is generally trivial since all the dependencies are available via the package management. For Ubuntu and Debian, there is [https://bitbucket.org/MakeHuman/makehuman/src/179e10c2b9440f73f6d154839e8720e1dccf39cd/buildscripts/deb/install_deb_dependencies.bash?at=stable&fileviewer=file-view-default a script] for installing all the required dependencies. If you are not using a debian derivate, you will need to figure out that the dependencies are called on your platform. You will probably want at least: * python 2.7 * python-numpy * python-opengl * qt4 * python-qt4 * python-qt4-gl For example on ubuntu: sudo apt-get install python-numpy python-opengl python-qt4 python-qt4-gl Usually it is not necessary to install python, since most Linux distributions have python preinstalled. Currently MakeHuman depends on python2.7 (a port to python3 has been started). In the future python2 might not be pre-installed anymore, so make sure python2 is on your system: python2 --version The mercurial client is also available in most linux distributions. In ubuntu it's called "mercurial". For example: sudo apt-get install mercurial To get a source snapshot from bitbucket run: hg clone https://bitbucket.org/MakeHuman/makehuman cd makehuman hg update -C stable == Setting up the environment on MacOSX == To get the sources you need to either install hg or grab the very useful gui [https://www.sourcetreeapp.com SourceTree]. After you install the app just go to the [https://bitbucket.org/MakeHuman/makehuman MakeHuman project on BitBucket] and click on the download icon in the upper right corner who's mouseover says 'Clone in SourceTree' Now that you have the source you need to get a python that supports the libraries/modules listed above. The easiest way to get a working python and needed libraries installed on your mac is via [brew][http://brew.sh]. After you install and/or update brew with the instructions on that site do the following: brew search qt On my system that showed the a list of different things to install, what you are looking for is qt4 and pyqt4. The entries that matched that for me were: brew install cartr/qt4/qt brew install cartr/qt4/pyqt This will install dependencies like sip, etc as well. If it says it's missing dependencies ( say sip ) do a search on those dependencies and install the right versions. Note that you do not run brew as root, it's files are all owned by you. Once that is complete you should be able to follow the instructions to complete downloading, compiling the assets and pulling new versions from the repository ( via SourceTree if that is what you used ). == Download and compilation scripts == Once you have an environment with the dependencies installed, and a source snapshot, there are a few scripts that should normally be run. They are available in the "makehuman" directory and should probably be run in this order: * download_assets.py (this is required, and will dowload all clothes etc) * compile_targets.py (these three are optional but will make starting makehuman faster) * compile_models.py * compile_proxies.py == Starting makehuman == With all the above, simply run the "makehuman.py" script either by double-clicking on it or by executing it from a console prompt. 4866c375acbf632b14bbf087132ed212f72566ca 1227 1208 2016-11-17T19:11:22Z Tenuki 36 /* Setting up the environment on MacOSX */ wikitext text/x-wiki == Overview == There are several reasons why you might want to run MakeHuman from a source snapshot from BitBucket rather than use one of the pre-built packages: * This makes it easy to update and get the latest features * You get full access to all assets (in the builds the assets are only available in compiled archives) * It's possible there is no functional pre-built package for your platform. In order to run from source, you need the following: * Get a source snapshot from BitBucket * Install/setup a python environment with [http://www.python.org python 2.7] (python later than 2.7 will not work) and the following dependencies installed: ** [http://sourceforge.net/projects/numpy/files/NumPy/ NumPy] ** [http://pyopengl.sourceforge.net/ PyOpenGL] ** [http://www.riverbankcomputing.com/software/pyqt PyQT] (the required version is pyqt for qt4, qt5 is not supported) * Run the script for downloading assets (this is described in a section at the bottom of the page, after the platform specific notes) * (optionally) run the scripts for compiling assets == Getting the source from Bitbucket == At this point in time it's recommended you run from the "stable" branch. If you're feeling adventurous, you can run "default", but in more cases than not this will crash for you. The quickest way to get the source is to download is as a zip at https://bitbucket.org/MakeHuman/makehuman/get/stable.zip However, if you plan to update in the future, you will want to install a [https://www.mercurial-scm.org/ mercurial] client and check out a source clone. This looks different depending on platform. == Setting up the environment on Windows == Setting up the environment on Windows is normally somewhat cumbersome. There is a tutorial video on how to do this, but the links in the video are outdated. Rather than downloading all the dependencies in a big zip file, you will need to download them separately from the links above. However, in the video you can see what they should be named approximately. {{#ev:youtube|3CCHGX-6Mtk}} '''IMPORTANT:''' You ''must'' install the same architecture (32-bit or 64-bit) for all packages. While it's possible that you can find 64-bit packages for everything, it's probably easier to go for 32-bit packages even on a 64-bit system. There are several mercurial clients for windows, but one of the more popular ones is [http://tortoisehg.bitbucket.org/ TortoiseHG]. == Setting up the environment on Linux == Running from source on Linux is generally trivial since all the dependencies are available via the package management. For Ubuntu and Debian, there is [https://bitbucket.org/MakeHuman/makehuman/src/179e10c2b9440f73f6d154839e8720e1dccf39cd/buildscripts/deb/install_deb_dependencies.bash?at=stable&fileviewer=file-view-default a script] for installing all the required dependencies. If you are not using a debian derivate, you will need to figure out that the dependencies are called on your platform. You will probably want at least: * python 2.7 * python-numpy * python-opengl * qt4 * python-qt4 * python-qt4-gl For example on ubuntu: sudo apt-get install python-numpy python-opengl python-qt4 python-qt4-gl Usually it is not necessary to install python, since most Linux distributions have python preinstalled. Currently MakeHuman depends on python2.7 (a port to python3 has been started). In the future python2 might not be pre-installed anymore, so make sure python2 is on your system: python2 --version The mercurial client is also available in most linux distributions. In ubuntu it's called "mercurial". For example: sudo apt-get install mercurial To get a source snapshot from bitbucket run: hg clone https://bitbucket.org/MakeHuman/makehuman cd makehuman hg update -C stable == Setting up the environment on MacOSX == To get the sources you need to either install hg or grab the very useful gui [Source Tree][https://www.sourcetreeapp.com]. After you install the app just go to the [bitbucket project][https://bitbucket.org/MakeHuman/makehuman] and click on the download icon in the upper right corner who's mouseover says 'Clone in SourceTree' Now that you have the source you need to get a python that supports the libraries/modules listed above. The easiest way to get a working python and needed libraries installed on your mac is via [brew][http://brew.sh]. After you install and/or update brew with the instructions on that site do the following: 'brew search qt' On my system that showed the a list of different things to install, what you are looking for is qt4 and pyqt4. The entries that matched that for me were: brew install cartr/qt4/qt brew install cartr/qt4/pyqt This will install dependencies like sip, etc as well. If it says it's missing dependencies ( say sip ) do a search on those dependencies and install the right versions. Note that you do not run brew as root, it's files are all owned by you. Once that is complete you should be able to follow the instructions to complete downloading, compiling the assets and pulling new versions from the repository ( via SourceTree if that is what you used ). == Download and compilation scripts == Once you have an environment with the dependencies installed, and a source snapshot, there are a few scripts that should normally be run. They are available in the "makehuman" directory and should probably be run in this order: * download_assets.py (this is required, and will dowload all clothes etc) * compile_targets.py (these three are optional but will make starting makehuman faster) * compile_models.py * compile_proxies.py == Starting makehuman == With all the above, simply run the "makehuman.py" script either by double-clicking on it or by executing it from a console prompt. 0bb4bbf6b347502baa6913390cd2d8ac27a2d52b 1208 997 2016-10-22T13:16:19Z Aranuvir 17 wikitext text/x-wiki == Overview == There are several reasons why you might want to run MakeHuman from a source snapshot from BitBucket rather than use one of the pre-built packages: * This makes it easy to update and get the latest features * You get full access to all assets (in the builds the assets are only available in compiled archives) * It's possible there is no functional pre-built package for your platform. In order to run from source, you need the following: * Get a source snapshot from BitBucket * Install/setup a python environment with [http://www.python.org python 2.7] (python later than 2.7 will not work) and the following dependencies installed: ** [http://sourceforge.net/projects/numpy/files/NumPy/ NumPy] ** [http://pyopengl.sourceforge.net/ PyOpenGL] ** [http://www.riverbankcomputing.com/software/pyqt PyQT] (the required version is pyqt for qt4, qt5 is not supported) * Run the script for downloading assets (this is described in a section at the bottom of the page, after the platform specific notes) * (optionally) run the scripts for compiling assets == Getting the source from Bitbucket == At this point in time it's recommended you run from the "stable" branch. If you're feeling adventurous, you can run "default", but in more cases than not this will crash for you. The quickest way to get the source is to download is as a zip at https://bitbucket.org/MakeHuman/makehuman/get/stable.zip However, if you plan to update in the future, you will want to install a [https://www.mercurial-scm.org/ mercurial] client and check out a source clone. This looks different depending on platform. == Setting up the environment on Windows == Setting up the environment on Windows is normally somewhat cumbersome. There is a tutorial video on how to do this, but the links in the video are outdated. Rather than downloading all the dependencies in a big zip file, you will need to download them separately from the links above. However, in the video you can see what they should be named approximately. {{#ev:youtube|3CCHGX-6Mtk}} '''IMPORTANT:''' You ''must'' install the same architecture (32-bit or 64-bit) for all packages. While it's possible that you can find 64-bit packages for everything, it's probably easier to go for 32-bit packages even on a 64-bit system. There are several mercurial clients for windows, but one of the more popular ones is [http://tortoisehg.bitbucket.org/ TortoiseHG]. == Setting up the environment on Linux == Running from source on Linux is generally trivial since all the dependencies are available via the package management. For Ubuntu and Debian, there is [https://bitbucket.org/MakeHuman/makehuman/src/179e10c2b9440f73f6d154839e8720e1dccf39cd/buildscripts/deb/install_deb_dependencies.bash?at=stable&fileviewer=file-view-default a script] for installing all the required dependencies. If you are not using a debian derivate, you will need to figure out that the dependencies are called on your platform. You will probably want at least: * python 2.7 * python-numpy * python-opengl * qt4 * python-qt4 * python-qt4-gl For example on ubuntu: sudo apt-get install python-numpy python-opengl python-qt4 python-qt4-gl Usually it is not necessary to install python, since most Linux distributions have python preinstalled. Currently MakeHuman depends on python2.7 (a port to python3 has been started). In the future python2 might not be pre-installed anymore, so make sure python2 is on your system: python2 --version The mercurial client is also available in most linux distributions. In ubuntu it's called "mercurial". For example: sudo apt-get install mercurial To get a source snapshot from bitbucket run: hg clone https://bitbucket.org/MakeHuman/makehuman cd makehuman hg update -C stable == Setting up the environment on MacOSX == (to be written) == Download and compilation scripts == Once you have an environment with the dependencies installed, and a source snapshot, there are a few scripts that should normally be run. They are available in the "makehuman" directory and should probably be run in this order: * download_assets.py (this is required, and will dowload all clothes etc) * compile_targets.py (these three are optional but will make starting makehuman faster) * compile_models.py * compile_proxies.py == Starting makehuman == With all the above, simply run the "makehuman.py" script either by double-clicking on it or by executing it from a console prompt. ad6a71d9afe93ce83d35408c74b218b8ae5ebe5b 997 995 2016-05-31T10:30:32Z Aranuvir 17 wikitext text/x-wiki == Overview == There are several reasons why you might want to run MakeHuman from a source snapshot from BitBucket rather than use one of the pre-built packages: * This makes it easy to update and get the latest features * You get full access to all assets (in the builds the assets are only available in compiled archives) * It's possible there is no functional pre-built package for your platform. In order to run from source, you need the following: * Get a source snapshot from BitBucket * Install/setup a python environment with [http://www.python.org python 2.7] (python later than 2.7 will not work) and the following dependencies installed: ** [http://sourceforge.net/projects/numpy/files/NumPy/ NumPy] ** [http://pyopengl.sourceforge.net/ PyOpenGL] ** [http://www.riverbankcomputing.com/software/pyqt PyQT] (the required version is pyqt for qt4, qt5 is not supported) * Run the script for downloading assets (this is described in a section at the bottom of the page, after the platform specific notes) * (optionally) run the scripts for compiling assets == Getting the source from Bitbucket == At this point in time it's recommended you run from the "stable" branch. If you're feeling adventurous, you can run "default", but in more cases than not this will crash for you. The quickest way to get the source is to download is as a zip at https://bitbucket.org/MakeHuman/makehuman/get/stable.zip However, if you plan to update in the future, you will want to install a [https://www.mercurial-scm.org/ mercurial] client and check out a source clone. This looks different depending on platform. == Setting up the environment on Windows == Setting up the environment on Windows is normally somewhat cumbersome. There is a tutorial video on how to do this, but the links in the video are outdated. Rather than downloading all the dependencies in a big zip file, you will need to download them separately from the links above. However, in the video you can see what they should be named approximately. {{#ev:youtube|3CCHGX-6Mtk}} '''IMPORTANT:''' You ''must'' install the same architecture (32-bit or 64-bit) for all packages. While it's possible that you can find 64-bit packages for everything, it's probably easier to go for 32-bit packages even on a 64-bit system. There are several mercurial clients for windows, but one of the more popular ones is [http://tortoisehg.bitbucket.org/ TortoiseHG]. == Setting up the environment on Linux == Running from source on Linux is generally trivial since all the dependencies are available via the package management. For Ubuntu and Debian, there is [https://bitbucket.org/MakeHuman/makehuman/src/179e10c2b9440f73f6d154839e8720e1dccf39cd/buildscripts/deb/install_deb_dependencies.bash?at=stable&fileviewer=file-view-default a script] for installing all the required dependencies. If you are not using a debian derivate, you will need to figure out that the dependencies are called on your platform. You will probably want at least: * python 2.7 * python-numpy * python-opengl * qt4 * python-qt4 * python-qt4-gl For example on ubuntu: sudo apt-get install python python-numpy python-opengl qt4 python-qt4 python-qt4-gl The mercurial client is also available in most linux distributions. In ubuntu it's called "mercurial". For example: sudo apt-get install mercurial To get a source snapshot from bitbucket run: hg clone https://bitbucket.org/MakeHuman/makehuman cd makehuman hg update -C stable == Setting up the environment on MacOSX == (to be written) == Download and compilation scripts == Once you have an environment with the dependencies installed, and a source snapshot, there are a few scripts that should normally be run. They are available in the "makehuman" directory and should probably be run in this order: * download_assets.py (this is required, and will dowload all clothes etc) * compile_targets.py (these three are optional but will make starting makehuman faster) * compile_models.py * compile_proxies.py == Starting makehuman == With all the above, simply run the "makehuman.py" script either by double-clicking on it or by executing it from a console prompt. d6ab4cd6042834104c37044de7875b8fa195740e 995 991 2016-05-31T08:48:27Z Joepal 14 /* Setting up the environment on Windows */ wikitext text/x-wiki == Overview == There are several reasons why you might want to run MakeHuman from a source snapshot from BitBucket rather than use one of the pre-built packages: * This makes it easy to update and get the latest features * You get full access to all assets (in the builds the assets are only available in compiled archives) * It's possible there is no functional pre-built package for your platform. In order to run from source, you need the following: * Get a source snapshot from BitBucket * Install/setup a python environment with [http://www.python.org python 2.7] (python later than 2.7 will not work) and the following dependencies installed: ** [http://sourceforge.net/projects/numpy/files/NumPy/ NumPy] ** [http://pyopengl.sourceforge.net/ PyOpenGL] ** [http://www.riverbankcomputing.com/software/pyqt PyQT] (the required version is pyqt for qt4, qt5 is not supported) * Run the script for downloading assets (this is described in a section at the bottom of the page, after the platform specific notes) * (optionally) run the scripts for compiling assets == Getting the source from Bitbucket == At this point in time it's recommended you run from the "stable" branch. If you're feeling adventurous, you can run "default", but in more cases than not this will crash for you. The quickest way to get the source is to download is as a zip at https://bitbucket.org/MakeHuman/makehuman/get/stable.zip However, if you plan to update in the future, you will want to install a [https://www.mercurial-scm.org/ mercurial] client and check out a source clone. This looks different depending on platform. == Setting up the environment on Windows == Setting up the environment on Windows is normally somewhat cumbersome. There is a tutorial video on how to do this, but the links in the video are outdated. Rather than downloading all the dependencies in a big zip file, you will need to download them separately from the links above. However, in the video you can see what they should be named approximately. {{#ev:youtube|3CCHGX-6Mtk}} '''IMPORTANT:''' You ''must'' install the same "bittiness" (32-bit or 64-bit) för all packages. While it's possible that you can find 64-bit packages for everything, it's probably easier to go for 32-bit packages even on a 64-bit system. There are several mercurial clients for windows, but one of the more popular ones is [http://tortoisehg.bitbucket.org/ TortoiseHG]. == Setting up the environment on Linux == Running from source on Linux is generally trivial since all the dependencies are available via the package management. For Ubuntu and Debian, there is [https://bitbucket.org/MakeHuman/makehuman/src/179e10c2b9440f73f6d154839e8720e1dccf39cd/buildscripts/deb/install_deb_dependencies.bash?at=stable&fileviewer=file-view-default a script] for installing all the required dependencies. If you are not using a debian derivate, you will need to figure out that the dependencies are called on your platform. You will probably want at least: * python 2.7 * python-numpy * python-opengl * qt4 * python-qt4 * python-qt4-gl For example on ubuntu: sudo apt-get install python python-numpy python-opengl qt4 python-qt4 python-qt4-gl The mercurial client is also available in most linux distributions. In ubuntu it's called "mercurial". For example: sudo apt-get install mercurial To get a source snapshot from bitbucket run: hg clone https://bitbucket.org/MakeHuman/makehuman cd makehuman hg update -C stable == Setting up the environment on MacOSX == (to be written) == Download and compilation scripts == Once you have an environment with the dependencies installed, and a source snapshot, there are a few scripts that should normally be run. They are available in the "makehuman" directory and should probably be run in this order: * download_assets.py (this is required, and will dowload all clothes etc) * compile_targets.py (these three are optional but will make starting makehuman faster) * compile_models.py * compile_proxies.py == Starting makehuman == With all the above, simply run the "makehuman.py" script either by double-clicking on it or by executing it from a console prompt. 20506a8dbb02fb67df9d207bf9ace5aba5b5e564 991 990 2016-05-31T08:34:34Z Joepal 14 wikitext text/x-wiki == Overview == There are several reasons why you might want to run MakeHuman from a source snapshot from BitBucket rather than use one of the pre-built packages: * This makes it easy to update and get the latest features * You get full access to all assets (in the builds the assets are only available in compiled archives) * It's possible there is no functional pre-built package for your platform. In order to run from source, you need the following: * Get a source snapshot from BitBucket * Install/setup a python environment with [http://www.python.org python 2.7] (python later than 2.7 will not work) and the following dependencies installed: ** [http://sourceforge.net/projects/numpy/files/NumPy/ NumPy] ** [http://pyopengl.sourceforge.net/ PyOpenGL] ** [http://www.riverbankcomputing.com/software/pyqt PyQT] (the required version is pyqt for qt4, qt5 is not supported) * Run the script for downloading assets (this is described in a section at the bottom of the page, after the platform specific notes) * (optionally) run the scripts for compiling assets == Getting the source from Bitbucket == At this point in time it's recommended you run from the "stable" branch. If you're feeling adventurous, you can run "default", but in more cases than not this will crash for you. The quickest way to get the source is to download is as a zip at https://bitbucket.org/MakeHuman/makehuman/get/stable.zip However, if you plan to update in the future, you will want to install a [https://www.mercurial-scm.org/ mercurial] client and check out a source clone. This looks different depending on platform. == Setting up the environment on Windows == Setting up the environment on Windows is normally somewhat cumbersome. However, there is a tutorial video on how to do this: {{#ev:youtube|3CCHGX-6Mtk}} In general you will need to manually download the installation packages for all the dependencies listed above. '''IMPORTANT:''' You ''must'' install the same "bittiness" (32-bit or 64-bit) för all packages. While it's possible that you can find 64-bit packages for everything, it's probably easier to go for 32-bit packages even on a 64-bit system. There are several mercurial clients for windows, but one of the more popular ones is [http://tortoisehg.bitbucket.org/ TortoiseHG]. == Setting up the environment on Linux == Running from source on Linux is generally trivial since all the dependencies are available via the package management. For Ubuntu and Debian, there is [https://bitbucket.org/MakeHuman/makehuman/src/179e10c2b9440f73f6d154839e8720e1dccf39cd/buildscripts/deb/install_deb_dependencies.bash?at=stable&fileviewer=file-view-default a script] for installing all the required dependencies. If you are not using a debian derivate, you will need to figure out that the dependencies are called on your platform. You will probably want at least: * python 2.7 * python-numpy * python-opengl * qt4 * python-qt4 * python-qt4-gl For example on ubuntu: sudo apt-get install python python-numpy python-opengl qt4 python-qt4 python-qt4-gl The mercurial client is also available in most linux distributions. In ubuntu it's called "mercurial". For example: sudo apt-get install mercurial To get a source snapshot from bitbucket run: hg clone https://bitbucket.org/MakeHuman/makehuman cd makehuman hg update -C stable == Setting up the environment on MacOSX == (to be written) == Download and compilation scripts == Once you have an environment with the dependencies installed, and a source snapshot, there are a few scripts that should normally be run. They are available in the "makehuman" directory and should probably be run in this order: * download_assets.py (this is required, and will dowload all clothes etc) * compile_targets.py (these three are optional but will make starting makehuman faster) * compile_models.py * compile_proxies.py == Starting makehuman == With all the above, simply run the "makehuman.py" script either by double-clicking on it or by executing it from a console prompt. fc5a05f7496fd2e341c4cfba1b865bc5f0168375 990 989 2016-05-31T08:32:25Z Joepal 14 /* Setting up the environment on Linux */ wikitext text/x-wiki == Overview == There are several reasons why you might want to run MakeHuman from a source snapshot from BitBucket rather than use one of the pre-built packages: * This makes it easy to update and get the latest features * You get full access to all assets (in the builds the assets are only available in compiled archives) * It's possible there is no functional pre-built package for your platform. In order to run from source, you need the following: * Get a source snapshot from BitBucket * Install/setup a python environment with [http://www.python.org python 2.7] (python later than 2.7 will not work) and the following dependencies installed: ** [http://sourceforge.net/projects/numpy/files/NumPy/ NumPy] ** [http://pyopengl.sourceforge.net/ PyOpenGL] ** [http://www.riverbankcomputing.com/software/pyqt PyQT] (the required version is pyqt for qt4, qt5 is not supported) * Run the script for downloading assets (this is described in a section at the bottom of the page, after the platform specific notes) * (optionally) run the scripts for compiling assets == Getting the source from Bitbucket == At this point in time it's recommended you run from the "stable" branch. If you're feeling adventurous, you can run "default", but in more cases than not this will crash for you. The quickest way to get the source is to download is as a zip at https://bitbucket.org/MakeHuman/makehuman/get/stable.zip However, if you plan to update in the future, you will want to install a [https://www.mercurial-scm.org/ mercurial] client and check out a source clone. This looks different depending on platform. == Setting up the environment on Windows == Setting up the environment on Windows is normally somewhat cumbersome. However, there is a tutorial video on how to do this: {{#ev:youtube|3CCHGX-6Mtk}} In general you will need to manually download the installation packages for all the dependencies listed above. '''IMPORTANT:''' You ''must'' install the same "bittiness" (32-bit or 64-bit) för all packages. While it's possible that you can find 64-bit packages for everything, it's probably easier to go for 32-bit packages even on a 64-bit system. There are several mercurial clients for windows, but one of the more popular ones is [http://tortoisehg.bitbucket.org/ TortoiseHG]. == Setting up the environment on Linux == Running from source on Linux is generally trivial since all the dependencies are available via the package management. For Ubuntu and Debian, there is [https://bitbucket.org/MakeHuman/makehuman/src/179e10c2b9440f73f6d154839e8720e1dccf39cd/buildscripts/deb/install_deb_dependencies.bash?at=stable&fileviewer=file-view-default a script] for installing all the required dependencies. If you are not using a debian derivate, you will need to figure out that the dependencies are called on your platform. You will probably want at least: * python 2.7 * python-numpy * python-opengl * qt4 * python-qt4 * python-qt4-gl For example on ubuntu: sudo apt-get install python python-numpy python-opengl qt4 python-qt4 python-qt4-gl The mercurial client is also available in most linux distributions. In ubuntu it's called "mercurial". For example: sudo apt-get install mercurial To get a source snapshot from bitbucket run: hg clone https://bitbucket.org/MakeHuman/makehuman cd makehuman hg update -C stable == Download and compilation scripts == Once you have an environment with the dependencies installed, and a source snapshot, there are a few scripts that should normally be run. They are available in the "makehuman" directory and should probably be run in this order: * download_assets.py (this is required, and will dowload all clothes etc) * compile_targets.py (these three are optional but will make starting makehuman faster) * compile_models.py * compile_proxies.py == Starting makehuman == With all the above, simply run the "makehuman.py" script either by double-clicking on it or by executing it from a console prompt. ac963f28f6dd31534e0eb223b9081411db4fc179 989 988 2016-05-31T08:29:52Z Joepal 14 wikitext text/x-wiki == Overview == There are several reasons why you might want to run MakeHuman from a source snapshot from BitBucket rather than use one of the pre-built packages: * This makes it easy to update and get the latest features * You get full access to all assets (in the builds the assets are only available in compiled archives) * It's possible there is no functional pre-built package for your platform. In order to run from source, you need the following: * Get a source snapshot from BitBucket * Install/setup a python environment with [http://www.python.org python 2.7] (python later than 2.7 will not work) and the following dependencies installed: ** [http://sourceforge.net/projects/numpy/files/NumPy/ NumPy] ** [http://pyopengl.sourceforge.net/ PyOpenGL] ** [http://www.riverbankcomputing.com/software/pyqt PyQT] (the required version is pyqt for qt4, qt5 is not supported) * Run the script for downloading assets (this is described in a section at the bottom of the page, after the platform specific notes) * (optionally) run the scripts for compiling assets == Getting the source from Bitbucket == At this point in time it's recommended you run from the "stable" branch. If you're feeling adventurous, you can run "default", but in more cases than not this will crash for you. The quickest way to get the source is to download is as a zip at https://bitbucket.org/MakeHuman/makehuman/get/stable.zip However, if you plan to update in the future, you will want to install a [https://www.mercurial-scm.org/ mercurial] client and check out a source clone. This looks different depending on platform. == Setting up the environment on Windows == Setting up the environment on Windows is normally somewhat cumbersome. However, there is a tutorial video on how to do this: {{#ev:youtube|3CCHGX-6Mtk}} In general you will need to manually download the installation packages for all the dependencies listed above. '''IMPORTANT:''' You ''must'' install the same "bittiness" (32-bit or 64-bit) för all packages. While it's possible that you can find 64-bit packages for everything, it's probably easier to go for 32-bit packages even on a 64-bit system. There are several mercurial clients for windows, but one of the more popular ones is [http://tortoisehg.bitbucket.org/ TortoiseHG]. == Setting up the environment on Linux == Running from source on Linux is generally trivial since all the dependencies are available via the package management. For Ubuntu and Debian, there is [https://bitbucket.org/MakeHuman/makehuman/src/179e10c2b9440f73f6d154839e8720e1dccf39cd/buildscripts/deb/install_deb_dependencies.bash?at=stable&fileviewer=file-view-default a script] for installing all the required dependencies. If you are not using a debian derivate, you will need to figure out that the dependencies are called on your platform. You will probably want at least: * python 2.7 * python-numpy * python-opengl * qt4 * python-qt4 * python-qt4-gl For example on ubuntu: sudo apt-get install python python-numpy python-opengl qt4 python-qt4 python-qt4-gl The mercurial client is also available in most linux distributions. In ubuntu it's called "mercurial". For example: sudo apt-get install mercurial To get a source snapshot from bitbucket run: hg clone https://joepal1976@bitbucket.org/MakeHuman/makehuman cd makehuman hg update -C stable == Download and compilation scripts == Once you have an environment with the dependencies installed, and a source snapshot, there are a few scripts that should normally be run. They are available in the "makehuman" directory and should probably be run in this order: * download_assets.py (this is required, and will dowload all clothes etc) * compile_targets.py (these three are optional but will make starting makehuman faster) * compile_models.py * compile_proxies.py == Starting makehuman == With all the above, simply run the "makehuman.py" script either by double-clicking on it or by executing it from a console prompt. c2fb53d9f26c3c5818c31ae18ec63dcf337ec207 988 987 2016-05-31T08:29:23Z Joepal 14 wikitext text/x-wiki There are several reasons why you might want to run MakeHuman from a source snapshot from BitBucket rather than use one of the pre-built packages: * This makes it easy to update and get the latest features * You get full access to all assets (in the builds the assets are only available in compiled archives) * It's possible there is no functional pre-built package for your platform. == Overview == In order to run from source, you need the following: * Get a source snapshot from BitBucket * Install/setup a python environment with [http://www.python.org python 2.7] (python later than 2.7 will not work) and the following dependencies installed: ** [http://sourceforge.net/projects/numpy/files/NumPy/ NumPy] ** [http://pyopengl.sourceforge.net/ PyOpenGL] ** [http://www.riverbankcomputing.com/software/pyqt PyQT] (the required version is pyqt for qt4, qt5 is not supported) * Run the script for downloading assets (this is described in a section at the bottom of the page, after the platform specific notes) * (optionally) run the scripts for compiling assets == Getting the source from Bitbucket == At this point in time it's recommended you run from the "stable" branch. If you're feeling adventurous, you can run "default", but in more cases than not this will crash for you. The quickest way to get the source is to download is as a zip at https://bitbucket.org/MakeHuman/makehuman/get/stable.zip However, if you plan to update in the future, you will want to install a [https://www.mercurial-scm.org/ mercurial] client and check out a source clone. This looks different depending on platform. == Setting up the environment on Windows == Setting up the environment on Windows is normally somewhat cumbersome. However, there is a tutorial video on how to do this: {{#ev:youtube|3CCHGX-6Mtk}} In general you will need to manually download the installation packages for all the dependencies listed above. '''IMPORTANT:''' You ''must'' install the same "bittiness" (32-bit or 64-bit) för all packages. While it's possible that you can find 64-bit packages for everything, it's probably easier to go for 32-bit packages even on a 64-bit system. There are several mercurial clients for windows, but one of the more popular ones is [http://tortoisehg.bitbucket.org/ TortoiseHG]. == Setting up the environment on Linux == Running from source on Linux is generally trivial since all the dependencies are available via the package management. For Ubuntu and Debian, there is [https://bitbucket.org/MakeHuman/makehuman/src/179e10c2b9440f73f6d154839e8720e1dccf39cd/buildscripts/deb/install_deb_dependencies.bash?at=stable&fileviewer=file-view-default a script] for installing all the required dependencies. If you are not using a debian derivate, you will need to figure out that the dependencies are called on your platform. You will probably want at least: * python 2.7 * python-numpy * python-opengl * qt4 * python-qt4 * python-qt4-gl For example on ubuntu: sudo apt-get install python python-numpy python-opengl qt4 python-qt4 python-qt4-gl The mercurial client is also available in most linux distributions. In ubuntu it's called "mercurial". For example: sudo apt-get install mercurial To get a source snapshot from bitbucket run: hg clone https://joepal1976@bitbucket.org/MakeHuman/makehuman cd makehuman hg update -C stable == Download and compilation scripts == Once you have an environment with the dependencies installed, and a source snapshot, there are a few scripts that should normally be run. They are available in the "makehuman" directory and should probably be run in this order: * download_assets.py (this is required, and will dowload all clothes etc) * compile_targets.py (these three are optional but will make starting makehuman faster) * compile_models.py * compile_proxies.py == Starting makehuman == With all the above, simply run the "makehuman.py" script either by double-clicking on it or by executing it from a console prompt. bdcab7fdac721dbdb7b58dbd9841c78e399fd3c1 987 986 2016-05-31T08:28:50Z Joepal 14 wikitext text/x-wiki There are several reasons why you might want to run MakeHuman from a source snapshot from BitBucket rather than use one of the pre-built packages: * This makes it easy to update and get the latest features * You get full access to all assets (in the builds the assets are only available in compiled archives) * It's possible there is no functional pre-built package for your platform. == Overview == In order to run from source, you need the following: * Get a source snapshot from BitBucket * Install/setup a python environment with [http://www.python.org python 2.7] (python later than 2.7 will not work) and the following dependencies installed: ** [http://sourceforge.net/projects/numpy/files/NumPy/ NumPy] ** [http://pyopengl.sourceforge.net/ PyOpenGL] ** [http://www.riverbankcomputing.com/software/pyqt PyQT] (the required version is pyqt for qt4, qt5 is not supported) * Run the script for downloading assets (this is described in a section at the bottom of the page, after the platform specific notes) * (optionally) run the scripts for compiling assets == Getting the source from Bitbucket == At this point in time it's recommended you run from the "stable" branch. If you're feeling adventurous, you can run "default", but in more cases than not this will crash for you. The quickest way to get the source is to download is as a zip at https://bitbucket.org/MakeHuman/makehuman/get/stable.zip However, if you plan to update in the future, you will want to install a [https://www.mercurial-scm.org/ mercurial] client and check out a source clone. This looks different depending on platform. == Running from source on Windows == Setting up the environment on Windows is normally somewhat cumbersome. However, there is a tutorial video on how to do this: {{#ev:youtube|3CCHGX-6Mtk}} In general you will need to manually download the installation packages for all the dependencies listed above. '''IMPORTANT:''' You ''must'' install the same "bittiness" (32-bit or 64-bit) för all packages. While it's possible that you can find 64-bit packages for everything, it's probably easier to go for 32-bit packages even on a 64-bit system. There are several mercurial clients for windows, but one of the more popular ones is [http://tortoisehg.bitbucket.org/ TortoiseHG]. == Running from source on Linux == Running from source on Linux is generally trivial since all the dependencies are available via the package management. For Ubuntu and Debian, there is [https://bitbucket.org/MakeHuman/makehuman/src/179e10c2b9440f73f6d154839e8720e1dccf39cd/buildscripts/deb/install_deb_dependencies.bash?at=stable&fileviewer=file-view-default a script] for installing all the required dependencies. If you are not using a debian derivate, you will need to figure out that the dependencies are called on your platform. You will probably want at least: * python 2.7 * python-numpy * python-opengl * qt4 * python-qt4 * python-qt4-gl For example on ubuntu: sudo apt-get install python python-numpy python-opengl qt4 python-qt4 python-qt4-gl The mercurial client is also available in most linux distributions. In ubuntu it's called "mercurial". For example: sudo apt-get install mercurial To get a source snapshot from bitbucket run: hg clone https://joepal1976@bitbucket.org/MakeHuman/makehuman cd makehuman hg update -C stable == Download and compilation scripts == Once you have an environment with the dependencies installed, and a source snapshot, there are a few scripts that should normally be run. They are available in the "makehuman" directory and should probably be run in this order: * download_assets.py (this is required, and will dowload all clothes etc) * compile_targets.py (these three are optional but will make starting makehuman faster) * compile_models.py * compile_proxies.py == Starting makehuman == With all the above, simply run the "makehuman.py" script either by double-clicking on it or by executing it from a console prompt. d33e5b2393d96484ceac5c991fcecd84e9392959 986 2016-05-31T08:14:13Z Joepal 14 Created page with "There are several reasons why you might want to run MakeHuman from a source snapshot from BitBucket rather than use one of the pre-built packages: * This makes it easy to upd..." wikitext text/x-wiki There are several reasons why you might want to run MakeHuman from a source snapshot from BitBucket rather than use one of the pre-built packages: * This makes it easy to update and get the latest features * You get full access to all assets (in the builds the assets are only available in compiled archives) * It's possible there is no functional pre-built package for your platform. == Overview == In order to run from source, you need the following: * Get a source snapshot from BitBucket * Install/setup a python environment with [http://www.python.org python 2.7] and the following dependencies installed: ** [http://sourceforge.net/projects/numpy/files/NumPy/ NumPy] ** [http://pyopengl.sourceforge.net/ PyOpenGL] ** [http://www.riverbankcomputing.com/software/pyqt PyQT] * Run the script for downloading assets * (optionally) run the scripts for compiling assets == Getting the source from Bitbucket == At this point in time it's recommended you run from the "stable" branch. If you're feeling adventurous, you can run "default", but in more cases than not this will crash for you. The quickest way to get the source is to download is as a zip at https://bitbucket.org/MakeHuman/makehuman/get/stable.zip However, if you plan to update in the future, you will want to install a [https://www.mercurial-scm.org/ mercurial] client and check out a source clone. This looks different depending on platform. == Running from source on Windows == Setting up the environment on Windows is normally somewhat cumbersome. However, there is a tutorial video on how to do this: {{#ev:youtube|3CCHGX-6Mtk}} a6d60de073ec515c533a3f6ce23ac4492899a80f Documentation:Running feet 3000 332 984 873 2016-05-27T16:07:29Z Joepal 14 wikitext text/x-wiki This tutorial describes the making of the short film Running Feet with MakeHuman and MakeWalk, the mocap tool for MakeHuman characters. The focus is on how to use the tools in the MakeWalk: Edit Actions panel to edit an animation. <iframe frameborder="0" height="315" src="//www.youtube.com/embed/_dbKDVd68Vg" width="420"></iframe> The film consists of the prelude and four scenes. == Prelude: The raw animation. == The short film starts with the original motion defined by the bvh file. This could be loaded with Blender's default, but we will use MakeWalk instead. Since MakeWalk is not part of the Blender distribution, we must first copy the makewalk folder from MakeHuman's tools/blender folder to the folder that Blender keeps its add-ons. [[File:feet-010-copy-files.png]] In Blender, enable the MakeWalk add-on from File &gt; User Preferences. In the User Preferences window, MakeWalk is found under the Addons tab, in the MakeHuman category. Enable the checkbox in the upper-right corner, next to the running man symbol. Press Save User Settings to have MakeWalk loaded every time you restart Blender. [[File:feet-020-enable-addon.png]] The MakeWalk panels appear in the tool shelf whenever an armature is the active object. To load the animation, we must first enable the Detailed Steps option. A number of new buttons appear below it. Press the button at the top, Load BVH File (.bvh), and navigate to the desired bvh file in the file selector. The animation that will be used throughout this tutorial is Female1_C03_Run.bvh which is freely downloadable from ACCAD. [[File:feet-030-load-bvh.png]] After a brief wait a running armature appears in the viewport. The viewport was rendered and then repeated three times in the video editor. [[File:feet-050-anim-loaded.png]] Scene 1 In the first scene the default MakeHuman character is running on a plane. The first step is to design the character in MakeHuman. Here we simple take the default character and add some simple clothes. It is imortant in MakeHuman 1.0.2 that Pose/Animate &gt; Skeleton be set to 'None'. This provides <span style="font-size:12.6666688919067px">&nbsp;the rather advanced armature which is well suited for mocap. &nbsp;</span>Name and export the character as an mhx (MakeHuman eXchange format) with the default settings.&nbsp; [[File:feet-110-export-default.png]] The mhx importer is bundled with Blender but not enabled by default. Enable it in the same way as you enabled MakeWalk in the previous chapter. Import the mhx file with File &gt; Import &gt; MakeHuman. The rigged character appears in the viewport. [[File:feet-120-import-mhx.png]] The skin pokes through the clothes at places. The simplest way to solve this problem is to delete vertices below the clothes, since the body itself will not be visible. This will also speed up performance a little. [[File:feet-130-delete-skin.png]] == Load and retarget == The MakeWalk user interface is located in six panels in the Tools shelf. In the Main panel, we find a single button labelled Load And Retarget. Press this button, select the same bvh file as in the previous chapter, and wait until the animation is loaded. [[File:feet-140-anim-imported.png]] The first frame in the loaded animation is frame 1. At frame 0 the character is in T-pose. This pose is used for reference and as a part of the retargeting process. == Fixing defects == Retargeting is never perfect, because the target armature and the original actor may have different body proportions and bone locations, or because we want the character to do something slightly different than the original bvh file. Tools for editing the action are found under the third MakeWalk panel, labelled Edit Actions. This panel is closed by default. [[File:feet-150-intersection.png]] The first editing we will do is to correct a glaring defect: in frames 10 and 11 the right thumb and index finger penetrate the left thigh. We will fix this problem by adding a local shift to the right upper arm animation. This is done in the Displace Animation section. [[File:feet-160-start-edit.png]] <ol> * Press Start Edit. The button becomes inactive and the other buttons in this section become active instead. * Select the right upper arm, upper_arm.fk.R (the bone may have other names if you don't use the mhx advanced rig). * Go to frame 7, where the pose is fine. Press the Rot button to insert a rotation key. * Go forward to frame 14, where the pose is also fine. Press Rot. * Go back to frame 10, and rotation the upper arm so there is no penetration. Press Rot. * Scrub the timeline back and forth between frames 7 and 14, to verify that the animation looks fine. * If the result is good, press Confirm Edit. Otherwise, continue to modify the keys. If the animation has been messed up, you can cancel the edit by pressing Undo Edit. </ol> [[File:feet-170-confirm-edit.png]] == <br /> Looping and repeating the animation == The original animation only lasts about 1.5 run cycle, but we want the character to run longer than that. Identify two frames where the character is posed similarly. There will never be a perfect match, but the poses in frames 7 and 29 are similar enough. Go to frame 7 and insert a marker on the timeline, and then go to frame 29 and do the same. The part of the animation between the markers will be repeated. [[File:feet-180-similar-poses.png]] The process consists of two steps. In the Loop Animation section, the beginning and end of the specified time range are blended together. Blend Range is the number of frames used for blending, whereas the Loc and Rot options specify whether location and rotation F-curves are affected by blending. If the Loop in Place option is enabled, the average velocity is subtraced from location F-curves, making the character run in space. This is not what we want, so we leave this option unchecked. In the Repeat Animation section, the button Repeat F-curves copies the F-curves between the two outermost selected markers. All keyframes after the second marker is lost, so make sure that you are not interested in this data. [[File:feet-190-loop-and-repeat.png]] Enable the markers at frame 7 and 29 to specify the time-range to be repeated. Press Loop F-curves to smoothly blend the animation from frame 29 to frame 7. Finally set the repeat number to 8, and press Repeat F-curves. The running animation now continues until 182. [[File:feet-200-long-animation.png]] == Running on a floor == Our next goal is to give the character a floor to run on. This can be quite tricky, because when the a foot rests on the floor, it must neither sink into the floor nor float above it. Shadows give the viewer a clear visual cue where the feet are relative to the floor, so it is difficult to cheat. MakeWalk has a tool to adjust the animation to make feet stick to the floor without penetrating it. [[File:feet-210-add-plane.png]] First add a plane that acts as the floor, and scale it up so the character has something to run on.&nbsp; The character floats a small distance above the floor. The MakeWalk tool lifts up the character when some part of a foot is below the floor, but it does nothing when both feet are above it. We must therefore first move the animation down a bit. Move to a frame where one foot is supposed to rest on the floor. Select the root bone in the hip area, and move the character down so the foot is below the floor. Then press Shift Bone F-curves in the Global Edit section, to make the shift affect the entire animation. Make sure that the markers on the timeline are deselected, because otherwise the global shift will only affect the specified time range. This is easy to forget, but fortunately easy to detect and fix. If you find that a tool only affect part of the animation, press Ctrl-Z a few times and repeat the steps with the time markers deselected. [[File:feet-220-below-plane.png]] With both the plane and the root bone selected, press Keey Feet Above Floor in the Floor section. The options above this button specify which foot must stay above the ground, and whether the hips should be moved correspondingly. The Hips option should always be selected when the legs are using FK, and normally we want both the left and right foot to stay above ground. Again make sure that all time markers are deselected, because we want the feet to stay above the floor during the entire animation. [[File:feet-230-keep-above-floor.png]] The character now runs on top of the floor, but the animation is somewhat strutty. This often happens when the hips are moved. A better result can be achieved if only the feet are moved above the floor, without affecting the hips movement. To this end, we must first transfer the animation of the FK bones to the corresponding IK bones. In the Inverse Kinematics section at the top of the Edit Actions panel, press Transfer FK =&gt; IK. The transfer process takes quite a bit of time, and you can follow the progress in the terminal window if Blender was started from there. Again make sure that no time markers are selected, because then only the animation in the specified time range is transferred. [[File:feet-240-transfer-ik.png]] The legs are now in IK mode. Deselect the Hips option in the Floor section, and press Keep Feet Above Floor. This time the feet stay above ground, but the hips animation is unaffected. [[File:feet-250-keep-above-ik.png]] However, the result is still not what we wanted, because now the character is kneeling when he runs. We could fix that by making a global shift to the root bone F-curves. Alternatively, we can undo the last step, and move the root bone and the IK feet up before keeping the feet above floor. [[File:feet-260-keep-above-better.png]] &nbsp; Prelude &nbsp;&nbsp;&nbsp;&nbsp; Scene 2 In this scene a woman in high heels runs across a stylized hill. Export the woman from MakeHuman as an mhx file and import her into Blender. We immediately notice that the boots look weird. [[File:feet-310-init-pose.png]] The reason is that the foot is in rest position. However, a foot inside a high-heel boot is not resting; rather, the woman should be standing on her toes inside the boot. Pose the feet correctly. [[File:feet-320-pose-feet.png]] If we intend to use inverse kinematics, the IK feet must also be posed. The easiest way is to use the snapping tools available under the MHX FK/IK Switch panel in the UI shelf to the right of the viewport. The MHX panels are available when the MHX importer add-on is enabled. [[File:feet-330-pose-ik.png]] Press the Snap L IK and Snap R IK buttons at the bottom of this panel. The legs are now controlled by IK, as indicated by the buttons at the top. The IK bones become visible and the FK bones are hidden. [[File:feet-340-current2rest.png]] We now want to apply the current pose as rest pose. There is a standard tool to do this, but that tool will not modify the meshes using this armature properly. Instead we open the MakeWalk: Utilities panel (this is the last MakeWalk panel in the tools shelf) and press Current Pose =&gt; Rest Pose. The rest pose has now been changed. [[File:feet-350-new-rest-pose.png]] In the MHX Layers panel in the UI shelf, enable the Tweak layer (bone layer 10) and disable all other bone layers.Each foot has three marker bones which inform MakeWalk about the location of toe tip, the ball and the heel. The marker bones are placed roughly correctly by default, but since the rest pose has been changed they are now in incorrect positions. [[File:feet-360-markers.png]] Tab into edit mode and place the marker bones correctly. Only the location of the bone heads matter; The marker bones are used for keeping the feet above a floor. The Keep Feet Above Floor will work even if the armature does not have marker bones, but not so well. [[File:feet-370-markers.png]] Now we are ready to create the animation. The first steps are the same as in the previous chapter. Load and retarget the bvh file, loop the animation between frames 7 and 29, and repeat the animation 10 times. The woman will run across a stylized hill. The hill mesh can be used to keep her feet above the first, flat part of the ground, but it is of no help when it comes to the slope. This is because the MakeWalk tool keeps feet above the object location. Moreover, "above" means that the z coordinate in the object's local coordinate system is positive. Since the object center is located on global z = 0, and the local z axis coincides with the global z axis, the woman will keep running above global z = 0. [[File:feet-380-hill.png]] We can still use MakeWalk to keep her feet above the slope. Add a new helper plane and rotate it in object space so it coincides with the up-slope of the ground mesh. The local coordinate system is centered on the plane and the local z axis is perpendicular to it, which are the necessary requirements (error in picture). [[File:feet-390-multiple-floors.png]] Goto the first frame where a foot should rest on the slope, namely frame 25. Delete all old time markers and create a new one here. The scrub the time slider until the character is some distance past the end of the slope and create another tíme marker. Since it takes more time to run uphill, the character should be well past the projection of the slope end at this point. More exactly, the line from the slope end to the foot should form a right angle with the slope. [[File:feet-400-uphill1.png]] With the helper plane and a bone selected, press Keep Feet Above Floor. The woman starts running upwards, keeping her feet on the slope. Repeat the procedure for the other parts of the hill by adding addional helper planes. In the final animation, all helper planes are placed on a disabled layer and the original ground mesh is made visible. [[File:feet-410-uphill2.png]] In this case it turned out that keeping the FK feet above the planes was better than the IK feet. It also matters how far below the plane the feet are initially, because it affects whether the hips are lifted when both feet are in the air. It is usually best to start with the feet as little below the floor as possible, while they must not float above the plane anywhere where they should be planted. &nbsp; Scene 1&nbsp;&nbsp;&nbsp;&nbsp; Scene 3 The third scene shows a race between a baby and a fat man. There is not so much news here. Import the two characters, load and retarget the bvh file, fix self-intersections, loop and repeat the animations, and keep feet on floor. An adult will rapidly outpace a baby, because the location F-curves are scaled with the size of the left thigh, which is bigger for an adult than for a child. Since we want the race to be even, we need to scale the F-curves in the time direction. This is done in the Global Edit section. Select any bone in the adult character, set the rescale factor, and press Rescale FCurves. The adult now runs slower. Repeat the process with the baby, but this time choose a rescale factor greater than one. The baby runs faster. [[File:feet-510-rescale.png]] Instead of using the button in the Edit Action panel, we could simply have scaled the F-curves in the F-curve editor. This would work equally well for this animation. However, consider what happens with the cartwheel animation from ACCAD. Load and retarget the bvh file, and then scale up the F-curves with a factor two in the time direction. Between frames 140 and 142, something strange happens. [[File:feet-520-scaled-1.png]] The reason is that the Y quaternion jumps from +1 to -1. There are two ways to represent the same rotation with quaternions (mathematically, SU(2) is the double cover of the rotation group SO(3)), and the rotations at frame 140 and 142 are almost the same, even though the quaternions are very different. However, the interpolated value at frame 141 is a completely different rotation, which is our problem. [[File:feet-530-fcurves-1.png]] If we instead use the Rescale FCurves button with a rescale factor 2, an extra keyframe is inserted for the Y component at frame 141, making the interpolation better. [[File:feet-540-scaled-2.png]] Note that the Z component does not receive an extra keyframe. This is a bug, and it is visible in the picture above. [[File:feet-550-fcurves-2.png]] &nbsp; &nbsp; Scene 2 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Scene 4 The fourth scene shows a body-builder running in a rough terrain. The terrain was created by subdiving a plane and giving it a displace modifier with a noise texture. Unfortunately, it is not possible to use the Keep Feet Above Floor tool, because it only acts on the object location and rotation. Instead a second animation layer was created with the Start Edit button. For multiple keyframes, the root (hips) bone was moved in the Z direction to make the foot rest on the ground, and a keyframe was inserted with the Loc button. The animation was baked several times with the Confirm Edit button, and the process was repeated until an acceptable result was achieved. [[File:feet-610-shift.png]] It is a good idea to often bake the animation layer with Confirm Edit, and to create a new one with Start Edit again. Blender can become unstable if one works with an animation layer for a long time, and a crash would mean that much work is lost. [[File:feet-620-penetration.png]] I did not have the energy to perfect the animation. E.g. at frame 109 the right foot penetrates the ground, which is most easily seen from below (although it is only what can be seen from the camera view counts). Although the problem is apparent in a still photo, it is not so easy to notice in an animation. [[File:feet-630-frame-109.png]] 6769223cb81bded9836c23bd180a1b552b1d6d81 873 2016-05-27T15:35:13Z Joepal 14 Created page with "This tutorial describes the making of the short film Running Feet with MakeHuman and MakeWalk, the mocap tool for MakeHuman characters. The tutorial is organized in four part..." wikitext text/x-wiki This tutorial describes the making of the short film Running Feet with MakeHuman and MakeWalk, the mocap tool for MakeHuman characters. The tutorial is organized in four parts: * Prelude (this page) * Scene 1 * Scene 2 * Scene 3 * Scene 4 The focus is on how to use the tools in the MakeWalk: Edit Actions panel to edit an animation. <iframe frameborder="0" height="315" src="//www.youtube.com/embed/_dbKDVd68Vg" width="420"></iframe> The film consists of the prelude and four scenes. == Prelude: The raw animation. == The short film starts with the original motion defined by the bvh file. This could be loaded with Blender's default, but we will use MakeWalk instead. Since MakeWalk is not part of the Blender distribution, we must first copy the makewalk folder from MakeHuman's tools/blender folder to the folder that Blender keeps its add-ons. [[File:feet-010-copy-files.png]] In Blender, enable the MakeWalk add-on from File &gt; User Preferences. In the User Preferences window, MakeWalk is found under the Addons tab, in the MakeHuman category. Enable the checkbox in the upper-right corner, next to the running man symbol. Press Save User Settings to have MakeWalk loaded every time you restart Blender. [[File:feet-020-enable-addon.png]] The MakeWalk panels appear in the tool shelf whenever an armature is the active object. To load the animation, we must first enable the Detailed Steps option. A number of new buttons appear below it. Press the button at the top, Load BVH File (.bvh), and navigate to the desired bvh file in the file selector. The animation that will be used throughout this tutorial is Female1_C03_Run.bvh which is freely downloadable from ACCAD. [[File:feet-030-load-bvh.png]] After a brief wait a running armature appears in the viewport. The viewport was rendered and then repeated three times in the video editor. [[File:feet-050-anim-loaded.png]] Scene 1 In the first scene the default MakeHuman character is running on a plane. The first step is to design the character in MakeHuman. Here we simple take the default character and add some simple clothes. It is imortant in MakeHuman 1.0.2 that Pose/Animate &gt; Skeleton be set to 'None'. This provides <span style="font-size:12.6666688919067px">&nbsp;the rather advanced armature which is well suited for mocap. &nbsp;</span>Name and export the character as an mhx (MakeHuman eXchange format) with the default settings.&nbsp; [[File:feet-110-export-default.png]] The mhx importer is bundled with Blender but not enabled by default. Enable it in the same way as you enabled MakeWalk in the previous chapter. Import the mhx file with File &gt; Import &gt; MakeHuman. The rigged character appears in the viewport. [[File:feet-120-import-mhx.png]] The skin pokes through the clothes at places. The simplest way to solve this problem is to delete vertices below the clothes, since the body itself will not be visible. This will also speed up performance a little. [[File:feet-130-delete-skin.png]] == Load and retarget == The MakeWalk user interface is located in six panels in the Tools shelf. In the Main panel, we find a single button labelled Load And Retarget. Press this button, select the same bvh file as in the previous chapter, and wait until the animation is loaded. [[File:feet-140-anim-imported.png]] The first frame in the loaded animation is frame 1. At frame 0 the character is in T-pose. This pose is used for reference and as a part of the retargeting process. == Fixing defects == Retargeting is never perfect, because the target armature and the original actor may have different body proportions and bone locations, or because we want the character to do something slightly different than the original bvh file. Tools for editing the action are found under the third MakeWalk panel, labelled Edit Actions. This panel is closed by default. [[File:feet-150-intersection.png]] The first editing we will do is to correct a glaring defect: in frames 10 and 11 the right thumb and index finger penetrate the left thigh. We will fix this problem by adding a local shift to the right upper arm animation. This is done in the Displace Animation section. [[File:feet-160-start-edit.png]] <ol> * Press Start Edit. The button becomes inactive and the other buttons in this section become active instead. * Select the right upper arm, upper_arm.fk.R (the bone may have other names if you don't use the mhx advanced rig). * Go to frame 7, where the pose is fine. Press the Rot button to insert a rotation key. * Go forward to frame 14, where the pose is also fine. Press Rot. * Go back to frame 10, and rotation the upper arm so there is no penetration. Press Rot. * Scrub the timeline back and forth between frames 7 and 14, to verify that the animation looks fine. * If the result is good, press Confirm Edit. Otherwise, continue to modify the keys. If the animation has been messed up, you can cancel the edit by pressing Undo Edit. </ol> [[File:feet-170-confirm-edit.png]] == <br /> Looping and repeating the animation == The original animation only lasts about 1.5 run cycle, but we want the character to run longer than that. Identify two frames where the character is posed similarly. There will never be a perfect match, but the poses in frames 7 and 29 are similar enough. Go to frame 7 and insert a marker on the timeline, and then go to frame 29 and do the same. The part of the animation between the markers will be repeated. [[File:feet-180-similar-poses.png]] The process consists of two steps. In the Loop Animation section, the beginning and end of the specified time range are blended together. Blend Range is the number of frames used for blending, whereas the Loc and Rot options specify whether location and rotation F-curves are affected by blending. If the Loop in Place option is enabled, the average velocity is subtraced from location F-curves, making the character run in space. This is not what we want, so we leave this option unchecked. In the Repeat Animation section, the button Repeat F-curves copies the F-curves between the two outermost selected markers. All keyframes after the second marker is lost, so make sure that you are not interested in this data. [[File:feet-190-loop-and-repeat.png]] Enable the markers at frame 7 and 29 to specify the time-range to be repeated. Press Loop F-curves to smoothly blend the animation from frame 29 to frame 7. Finally set the repeat number to 8, and press Repeat F-curves. The running animation now continues until 182. [[File:feet-200-long-animation.png]] == Running on a floor == Our next goal is to give the character a floor to run on. This can be quite tricky, because when the a foot rests on the floor, it must neither sink into the floor nor float above it. Shadows give the viewer a clear visual cue where the feet are relative to the floor, so it is difficult to cheat. MakeWalk has a tool to adjust the animation to make feet stick to the floor without penetrating it. [[File:feet-210-add-plane.png]] First add a plane that acts as the floor, and scale it up so the character has something to run on.&nbsp; The character floats a small distance above the floor. The MakeWalk tool lifts up the character when some part of a foot is below the floor, but it does nothing when both feet are above it. We must therefore first move the animation down a bit. Move to a frame where one foot is supposed to rest on the floor. Select the root bone in the hip area, and move the character down so the foot is below the floor. Then press Shift Bone F-curves in the Global Edit section, to make the shift affect the entire animation. Make sure that the markers on the timeline are deselected, because otherwise the global shift will only affect the specified time range. This is easy to forget, but fortunately easy to detect and fix. If you find that a tool only affect part of the animation, press Ctrl-Z a few times and repeat the steps with the time markers deselected. [[File:feet-220-below-plane.png]] With both the plane and the root bone selected, press Keey Feet Above Floor in the Floor section. The options above this button specify which foot must stay above the ground, and whether the hips should be moved correspondingly. The Hips option should always be selected when the legs are using FK, and normally we want both the left and right foot to stay above ground. Again make sure that all time markers are deselected, because we want the feet to stay above the floor during the entire animation. [[File:feet-230-keep-above-floor.png]] The character now runs on top of the floor, but the animation is somewhat strutty. This often happens when the hips are moved. A better result can be achieved if only the feet are moved above the floor, without affecting the hips movement. To this end, we must first transfer the animation of the FK bones to the corresponding IK bones. In the Inverse Kinematics section at the top of the Edit Actions panel, press Transfer FK =&gt; IK. The transfer process takes quite a bit of time, and you can follow the progress in the terminal window if Blender was started from there. Again make sure that no time markers are selected, because then only the animation in the specified time range is transferred. [[File:feet-240-transfer-ik.png]] The legs are now in IK mode. Deselect the Hips option in the Floor section, and press Keep Feet Above Floor. This time the feet stay above ground, but the hips animation is unaffected. [[File:feet-250-keep-above-ik.png]] However, the result is still not what we wanted, because now the character is kneeling when he runs. We could fix that by making a global shift to the root bone F-curves. Alternatively, we can undo the last step, and move the root bone and the IK feet up before keeping the feet above floor. [[File:feet-260-keep-above-better.png]] &nbsp; Prelude &nbsp;&nbsp;&nbsp;&nbsp; Scene 2 In this scene a woman in high heels runs across a stylized hill. Export the woman from MakeHuman as an mhx file and import her into Blender. We immediately notice that the boots look weird. [[File:feet-310-init-pose.png]] The reason is that the foot is in rest position. However, a foot inside a high-heel boot is not resting; rather, the woman should be standing on her toes inside the boot. Pose the feet correctly. [[File:feet-320-pose-feet.png]] If we intend to use inverse kinematics, the IK feet must also be posed. The easiest way is to use the snapping tools available under the MHX FK/IK Switch panel in the UI shelf to the right of the viewport. The MHX panels are available when the MHX importer add-on is enabled. [[File:feet-330-pose-ik.png]] Press the Snap L IK and Snap R IK buttons at the bottom of this panel. The legs are now controlled by IK, as indicated by the buttons at the top. The IK bones become visible and the FK bones are hidden. [[File:feet-340-current2rest.png]] We now want to apply the current pose as rest pose. There is a standard tool to do this, but that tool will not modify the meshes using this armature properly. Instead we open the MakeWalk: Utilities panel (this is the last MakeWalk panel in the tools shelf) and press Current Pose =&gt; Rest Pose. The rest pose has now been changed. [[File:feet-350-new-rest-pose.png]] In the MHX Layers panel in the UI shelf, enable the Tweak layer (bone layer 10) and disable all other bone layers.Each foot has three marker bones which inform MakeWalk about the location of toe tip, the ball and the heel. The marker bones are placed roughly correctly by default, but since the rest pose has been changed they are now in incorrect positions. [[File:feet-360-markers.png]] Tab into edit mode and place the marker bones correctly. Only the location of the bone heads matter; The marker bones are used for keeping the feet above a floor. The Keep Feet Above Floor will work even if the armature does not have marker bones, but not so well. [[File:feet-370-markers.png]] Now we are ready to create the animation. The first steps are the same as in the previous chapter. Load and retarget the bvh file, loop the animation between frames 7 and 29, and repeat the animation 10 times. The woman will run across a stylized hill. The hill mesh can be used to keep her feet above the first, flat part of the ground, but it is of no help when it comes to the slope. This is because the MakeWalk tool keeps feet above the object location. Moreover, "above" means that the z coordinate in the object's local coordinate system is positive. Since the object center is located on global z = 0, and the local z axis coincides with the global z axis, the woman will keep running above global z = 0. [[File:feet-380-hill.png]] We can still use MakeWalk to keep her feet above the slope. Add a new helper plane and rotate it in object space so it coincides with the up-slope of the ground mesh. The local coordinate system is centered on the plane and the local z axis is perpendicular to it, which are the necessary requirements (error in picture). [[File:feet-390-multiple-floors.png]] Goto the first frame where a foot should rest on the slope, namely frame 25. Delete all old time markers and create a new one here. The scrub the time slider until the character is some distance past the end of the slope and create another tíme marker. Since it takes more time to run uphill, the character should be well past the projection of the slope end at this point. More exactly, the line from the slope end to the foot should form a right angle with the slope. [[File:feet-400-uphill1.png]] With the helper plane and a bone selected, press Keep Feet Above Floor. The woman starts running upwards, keeping her feet on the slope. Repeat the procedure for the other parts of the hill by adding addional helper planes. In the final animation, all helper planes are placed on a disabled layer and the original ground mesh is made visible. [[File:feet-410-uphill2.png]] In this case it turned out that keeping the FK feet above the planes was better than the IK feet. It also matters how far below the plane the feet are initially, because it affects whether the hips are lifted when both feet are in the air. It is usually best to start with the feet as little below the floor as possible, while they must not float above the plane anywhere where they should be planted. &nbsp; Scene 1&nbsp;&nbsp;&nbsp;&nbsp; Scene 3 The third scene shows a race between a baby and a fat man. There is not so much news here. Import the two characters, load and retarget the bvh file, fix self-intersections, loop and repeat the animations, and keep feet on floor. An adult will rapidly outpace a baby, because the location F-curves are scaled with the size of the left thigh, which is bigger for an adult than for a child. Since we want the race to be even, we need to scale the F-curves in the time direction. This is done in the Global Edit section. Select any bone in the adult character, set the rescale factor, and press Rescale FCurves. The adult now runs slower. Repeat the process with the baby, but this time choose a rescale factor greater than one. The baby runs faster. [[File:feet-510-rescale.png]] Instead of using the button in the Edit Action panel, we could simply have scaled the F-curves in the F-curve editor. This would work equally well for this animation. However, consider what happens with the cartwheel animation from ACCAD. Load and retarget the bvh file, and then scale up the F-curves with a factor two in the time direction. Between frames 140 and 142, something strange happens. [[File:feet-520-scaled-1.png]] The reason is that the Y quaternion jumps from +1 to -1. There are two ways to represent the same rotation with quaternions (mathematically, SU(2) is the double cover of the rotation group SO(3)), and the rotations at frame 140 and 142 are almost the same, even though the quaternions are very different. However, the interpolated value at frame 141 is a completely different rotation, which is our problem. [[File:feet-530-fcurves-1.png]] If we instead use the Rescale FCurves button with a rescale factor 2, an extra keyframe is inserted for the Y component at frame 141, making the interpolation better. [[File:feet-540-scaled-2.png]] Note that the Z component does not receive an extra keyframe. This is a bug, and it is visible in the picture above. [[File:feet-550-fcurves-2.png]] &nbsp; &nbsp; Scene 2 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Scene 4 The fourth scene shows a body-builder running in a rough terrain. The terrain was created by subdiving a plane and giving it a displace modifier with a noise texture. Unfortunately, it is not possible to use the Keep Feet Above Floor tool, because it only acts on the object location and rotation. Instead a second animation layer was created with the Start Edit button. For multiple keyframes, the root (hips) bone was moved in the Z direction to make the foot rest on the ground, and a keyframe was inserted with the Loc button. The animation was baked several times with the Confirm Edit button, and the process was repeated until an acceptable result was achieved. [[File:feet-610-shift.png]] It is a good idea to often bake the animation layer with Confirm Edit, and to create a new one with Start Edit again. Blender can become unstable if one works with an animation layer for a long time, and a crash would mean that much work is lost. [[File:feet-620-penetration.png]] I did not have the energy to perfect the animation. E.g. at frame 109 the right foot penetrates the ground, which is most easily seen from below (although it is only what can be seen from the camera view counts). Although the problem is apparent in a still photo, it is not so easy to notice in an animation. [[File:feet-630-frame-109.png]] 425c952f93034236780cab9c274247fab8638586 Documentation:Saving models for Blender and how to import them there 3000 253 1614 1013 2019-09-27T08:27:49Z Joepal 14 wikitext text/x-wiki MakeHuman have for historical reasons always had a strong relation with Blender, and Blender support is in general good. = 1.2.0 and Blender 2.80 = With MakeHuman 1.2.0 and Blender 2.80, the general recommendation is to use MPFB (see [[FAQ: What is MPFB (MakeHuman Plugin For Blender)?]]). = 1.1.0, older Blender versions = As of 1.1.0 there are two approaches for getting assets from MakeHuman into blender: with or without MHX2. == Using MHX2 == Prior to MakeHuman 1.1.0, the ancestor of MHX2 was integrated with MakeHuman. But in MakeHuman 1.1.0 and later MHX2 is an addon which needs to be installed separately. For a discussion on the change, see [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. For a detailed documentation about installing the MHX-2 plug-ins in MakeHuman and Blender, exporting from MakeHuman and the various advanced import options in Blender please refer to the official documentation by Thomas Larrson: https://thomasmakehuman.wordpress.com/mhx2-documentation/ == Using Collada or FBX == (to be written) 0d71be60f1973bf30da92ebcda657aedb406432d 1013 765 2016-06-11T09:02:27Z Aranuvir 17 wikitext text/x-wiki MakeHuman have for historical reasons always had a strong relation with Blender, and Blender support is in general good. As of 1.1.0 there are two approaches for getting assets from MakeHuman into blender: with or without MHX2. == Using MHX2 == Prior to MakeHuman 1.1.0, the ancestor of MHX2 was integrated with MakeHuman. But in MakeHuman 1.1.0 and later MHX2 is an addon which needs to be installed separately. For a discussion on the change, see [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. For a detailed documentation about installing the MHX-2 plug-ins in MakeHuman and Blender, exporting from MakeHuman and the various advanced import options in Blender please refer to the official documentation by Thomas Larrson: https://thomasmakehuman.wordpress.com/mhx2-documentation/ == Using Collada or FBX == (to be written) e567869ae2c8084b7a617bf3f93a8184c7efe575 765 2016-05-24T11:33:13Z Joepal 14 Created page with "MakeHuman have for historical reasons always had a strong relation with Blender, and Blender support is in general good. As of 1.1.0 there are two approaches for getting ass..." wikitext text/x-wiki MakeHuman have for historical reasons always had a strong relation with Blender, and Blender support is in general good. As of 1.1.0 there are two approaches for getting assets from MakeHuman into blender: with or without MHX2. == Using MHX2 == Prior to MakeHuman 1.1.0, the ancestor of MHX2 was integrated with MakeHuman. But in MakeHuman 1.1.0 and later MHX2 is an addon which needs to be installed separately. For a discussion on the change, see [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]. The following assumes that you have already installed MHX2, see [[Documentation:Installing MHX2]]. === Exporting using MHX2 === (to be written) === Importing an MHX2 model in Blender === (to be written) == Using Collada or FBX == (to be written) 472d934d483b3086a080cbddfa445ad27081db05 Documentation:Saving models for Unity and how to import them there 3000 496 1386 1385 2017-03-29T09:08:44Z Robbaer 12 /* Making the toon ready for animation */ wikitext text/x-wiki Getting toons to work in Unity may seem a bit intimidating at first, but in practice it only requires relatively few mouse clicks. == Preparations == If you don't have a unity project already, create one. Things will be a lot easier for you if you export directly to the Assets directory, so before exporting from MH the Assets directory should exist. For this documentation, let's create a new empty Unity project: [[File:00_create_unity_project.png|400px|link={{filepath:00_create_unity_project.png}}]] == Exporting from MakeHuman == Let's start with modeling a toon. We will here select some clothes/hair pieces with transparent areas so that we can see that we get those things right inside unity. [[File:01_export_mh_1.png|400px|link={{filepath:01_export_mh_1.png}}]] An important step is selecting an appropriate rig. Unless you know what you are doing, you will most likely want to use the game rig one here (there are cases where the other ones may be appropriate). [[File:02_export_mh_2.PNG|400px|link={{filepath:02_export_mh_2.PNG}}]] You are now ready to export. You will want to use FBX, and the default settings are fine. [[File:03_export_mh_3.png|400px|link={{filepath:03_export_mh_3.png}}]] However, before exporting, click the three-dots-button and browse to your Assets folder, so that the toon is exported there: [[File:04_export_mh_4.png|400px|link={{filepath:04_export_mh_4.png}}]] You can now click export, and the toon will be exported to Unity. In Unity you will now see that the toon is available. By exporting directly to the Assets directory, you also got "materials" and "textures" autocreated. Otherwise you would have had to configure these manually. [[File:05_import_unity.png|400px|link={{filepath:05_import_unity.png}}]] == Fixing materials == If we now drag the toon into the scene, and move around the camera a bit so we can see it in the game view, we can see that it looks a bit odd. [[File:06_unity_transparency_fail.png|400px|link={{filepath:06_unity_transparency_fail.png}}]] The reason for this is that Unity fails to take into account that textures may have an alpha channel (or maybe thinks that the user needs to know what he's doing before enabling such). We will thus need to fix the materials. For each material that has a transparent component, you will need to set the material type to "legacy shaders" -> "transparent" -> "diffuse". If the piece has a normalmap too, you will instead want "legacy shaders" -> "transparent" -> "bumped diffuse". With Unity 5, an alternative shader approach is to use is "Standard (Specular setup)" -> Rendering Mode: "Fade / Transparent" -> Specular: Black color -> Smoothness: 0.1 or below. You can add a normal image and assign a value (1 by default). [[File:07_fix_material.png|400px|link={{filepath:07_fix_material.png}}]] Do this for each material that should have a transparent component. In all likelihood you will want to do it for all materials except the skin (which would look odd if it was transparent). Having done this, the toon should now look more pleasing. [[File:08_transparency_fixed.png|400px|link={{filepath:08_transparency_fixed.png}}]] == Making the toon ready for animation == As you remember, we assigned a skeleton to the toon in MakeHuman before exporting it. However, we also need to tell Unity how to use it. Select the toon in the asset list (IMPORTANT! In the ''asset list'', not in the scene hierarchy). Click the rig tab. Set animation type to "humanoid". Click "configure". [[File:09_humanoid.png|400px|link={{filepath:09_humanoid.png}}]] Unity will now ask you to save the scene and apply changes. Do so. You will get to a panel where you can match the toon's bones with Unity's idea of bones. If you are using the game rig, everything should have been matched perfectly from start. [[File:10_assign_bones.png|x400px|link={{filepath:10_assign_bones.png}}]] The above is the most important step where things are likely to get messy if you are using another type of rig. If, for example, you use the MHX rig or Rigify, you might have to tinker a bit with the bone-to-bone mappings in the above dialog to get it all right. To test if things look as if they are working, switch to the "muscles and settings" tab and drag the handles around. If the toon follows, things are working correctly. [[File:11_bones_working.png|x400px|link={{filepath:11_bones_working.png}}]] 3c26232a94e02150bd4fbda2656b9364ebca6ed3 1385 1384 2017-03-29T09:07:01Z Robbaer 12 /* Fixing materials */ wikitext text/x-wiki Getting toons to work in Unity may seem a bit intimidating at first, but in practice it only requires relatively few mouse clicks. == Preparations == If you don't have a unity project already, create one. Things will be a lot easier for you if you export directly to the Assets directory, so before exporting from MH the Assets directory should exist. For this documentation, let's create a new empty Unity project: [[File:00_create_unity_project.png|400px|link={{filepath:00_create_unity_project.png}}]] == Exporting from MakeHuman == Let's start with modeling a toon. We will here select some clothes/hair pieces with transparent areas so that we can see that we get those things right inside unity. [[File:01_export_mh_1.png|400px|link={{filepath:01_export_mh_1.png}}]] An important step is selecting an appropriate rig. Unless you know what you are doing, you will most likely want to use the game rig one here (there are cases where the other ones may be appropriate). [[File:02_export_mh_2.PNG|400px|link={{filepath:02_export_mh_2.PNG}}]] You are now ready to export. You will want to use FBX, and the default settings are fine. [[File:03_export_mh_3.png|400px|link={{filepath:03_export_mh_3.png}}]] However, before exporting, click the three-dots-button and browse to your Assets folder, so that the toon is exported there: [[File:04_export_mh_4.png|400px|link={{filepath:04_export_mh_4.png}}]] You can now click export, and the toon will be exported to Unity. In Unity you will now see that the toon is available. By exporting directly to the Assets directory, you also got "materials" and "textures" autocreated. Otherwise you would have had to configure these manually. [[File:05_import_unity.png|400px|link={{filepath:05_import_unity.png}}]] == Fixing materials == If we now drag the toon into the scene, and move around the camera a bit so we can see it in the game view, we can see that it looks a bit odd. [[File:06_unity_transparency_fail.png|400px|link={{filepath:06_unity_transparency_fail.png}}]] The reason for this is that Unity fails to take into account that textures may have an alpha channel (or maybe thinks that the user needs to know what he's doing before enabling such). We will thus need to fix the materials. For each material that has a transparent component, you will need to set the material type to "legacy shaders" -> "transparent" -> "diffuse". If the piece has a normalmap too, you will instead want "legacy shaders" -> "transparent" -> "bumped diffuse". With Unity 5, an alternative shader approach is to use is "Standard (Specular setup)" -> Rendering Mode: "Fade / Transparent" -> Specular: Black color -> Smoothness: 0.1 or below. You can add a normal image and assign a value (1 by default). [[File:07_fix_material.png|400px|link={{filepath:07_fix_material.png}}]] Do this for each material that should have a transparent component. In all likelihood you will want to do it for all materials except the skin (which would look odd if it was transparent). Having done this, the toon should now look more pleasing. [[File:08_transparency_fixed.png|400px|link={{filepath:08_transparency_fixed.png}}]] == Making the toon ready for animation == As you remember, we assigned a rig to the toon in MakeHuman before exporting it. However, we also need to tell Unity how to use it. Select the toon in the asset list (IMPORTANT! In the ''asset list'', not in the scene hierarchy). Click the rig tab. Set animation type to "humanoid". Click "configure". [[File:09_humanoid.png|400px|link={{filepath:09_humanoid.png}}]] Unity will now ask you to save the scene and apply changes. Do so. You will get to a panel where you can match the toon's bones with Unity's idea of bones. If you are using the game rig, everything should have been matched perfectly from start. [[File:10_assign_bones.png|x400px|link={{filepath:10_assign_bones.png}}]] The above is the most important step where things are likely to get messy if you are using another type of rig. If, for example, you use the MHX rig or Rigify, you might have to tinker a bit with the bone-to-bone mappings in the above dialog to get it all right. To test if things look as if they are working, switch to the "muscles and settings" tab and drag the handles around. If the toon follows, things are working correctly. [[File:11_bones_working.png|x400px|link={{filepath:11_bones_working.png}}]] 5b37f1ac651b08531254dd2d496dc16c447cae92 1384 1256 2017-03-29T09:01:03Z Robbaer 12 /* Fixing materials */ wikitext text/x-wiki Getting toons to work in Unity may seem a bit intimidating at first, but in practice it only requires relatively few mouse clicks. == Preparations == If you don't have a unity project already, create one. Things will be a lot easier for you if you export directly to the Assets directory, so before exporting from MH the Assets directory should exist. For this documentation, let's create a new empty Unity project: [[File:00_create_unity_project.png|400px|link={{filepath:00_create_unity_project.png}}]] == Exporting from MakeHuman == Let's start with modeling a toon. We will here select some clothes/hair pieces with transparent areas so that we can see that we get those things right inside unity. [[File:01_export_mh_1.png|400px|link={{filepath:01_export_mh_1.png}}]] An important step is selecting an appropriate rig. Unless you know what you are doing, you will most likely want to use the game rig one here (there are cases where the other ones may be appropriate). [[File:02_export_mh_2.PNG|400px|link={{filepath:02_export_mh_2.PNG}}]] You are now ready to export. You will want to use FBX, and the default settings are fine. [[File:03_export_mh_3.png|400px|link={{filepath:03_export_mh_3.png}}]] However, before exporting, click the three-dots-button and browse to your Assets folder, so that the toon is exported there: [[File:04_export_mh_4.png|400px|link={{filepath:04_export_mh_4.png}}]] You can now click export, and the toon will be exported to Unity. In Unity you will now see that the toon is available. By exporting directly to the Assets directory, you also got "materials" and "textures" autocreated. Otherwise you would have had to configure these manually. [[File:05_import_unity.png|400px|link={{filepath:05_import_unity.png}}]] == Fixing materials == If we now drag the toon into the scene, and move around the camera a bit so we can see it in the game view, we can see that it looks a bit odd. [[File:06_unity_transparency_fail.png|400px|link={{filepath:06_unity_transparency_fail.png}}]] The reason for this is that Unity fails to take into account that textures may have an alpha channel (or maybe thinks that the user needs to know what he's doing before enabling such). We will thus need to fix the materials. For each material that has a transparent component, you will need to set the material type to "legacy shaders" -> "transparent" -> "diffuse". If the piece has a normalmap too, you will instead want "legacy shaders" -> "transparent" -> "bumped diffuse". With Unity 5, an alternative is "Standard (Specular setup)" -> Rendering Mode: "Fade / Transparent" -> Specular: Black color -> Smoothness: 0.1 or below [[File:07_fix_material.png|400px|link={{filepath:07_fix_material.png}}]] Do this for each material that should have a transparent component. In all likelihood you will want to do it for all materials except the skin (which would look odd if it was transparent). Having done this, the toon should now look more pleasing. [[File:08_transparency_fixed.png|400px|link={{filepath:08_transparency_fixed.png}}]] == Making the toon ready for animation == As you remember, we assigned a rig to the toon in MakeHuman before exporting it. However, we also need to tell Unity how to use it. Select the toon in the asset list (IMPORTANT! In the ''asset list'', not in the scene hierarchy). Click the rig tab. Set animation type to "humanoid". Click "configure". [[File:09_humanoid.png|400px|link={{filepath:09_humanoid.png}}]] Unity will now ask you to save the scene and apply changes. Do so. You will get to a panel where you can match the toon's bones with Unity's idea of bones. If you are using the game rig, everything should have been matched perfectly from start. [[File:10_assign_bones.png|x400px|link={{filepath:10_assign_bones.png}}]] The above is the most important step where things are likely to get messy if you are using another type of rig. If, for example, you use the MHX rig or Rigify, you might have to tinker a bit with the bone-to-bone mappings in the above dialog to get it all right. To test if things look as if they are working, switch to the "muscles and settings" tab and drag the handles around. If the toon follows, things are working correctly. [[File:11_bones_working.png|x400px|link={{filepath:11_bones_working.png}}]] ca4392be5bc346d6648b2911b163d2e12e1e9a42 1256 1255 2016-11-25T10:00:35Z Joepal 14 wikitext text/x-wiki Getting toons to work in Unity may seem a bit intimidating at first, but in practice it only requires relatively few mouse clicks. == Preparations == If you don't have a unity project already, create one. Things will be a lot easier for you if you export directly to the Assets directory, so before exporting from MH the Assets directory should exist. For this documentation, let's create a new empty Unity project: [[File:00_create_unity_project.png|400px|link={{filepath:00_create_unity_project.png}}]] == Exporting from MakeHuman == Let's start with modeling a toon. We will here select some clothes/hair pieces with transparent areas so that we can see that we get those things right inside unity. [[File:01_export_mh_1.png|400px|link={{filepath:01_export_mh_1.png}}]] An important step is selecting an appropriate rig. Unless you know what you are doing, you will most likely want to use the game rig one here (there are cases where the other ones may be appropriate). [[File:02_export_mh_2.PNG|400px|link={{filepath:02_export_mh_2.PNG}}]] You are now ready to export. You will want to use FBX, and the default settings are fine. [[File:03_export_mh_3.png|400px|link={{filepath:03_export_mh_3.png}}]] However, before exporting, click the three-dots-button and browse to your Assets folder, so that the toon is exported there: [[File:04_export_mh_4.png|400px|link={{filepath:04_export_mh_4.png}}]] You can now click export, and the toon will be exported to Unity. In Unity you will now see that the toon is available. By exporting directly to the Assets directory, you also got "materials" and "textures" autocreated. Otherwise you would have had to configure these manually. [[File:05_import_unity.png|400px|link={{filepath:05_import_unity.png}}]] == Fixing materials == If we now drag the toon into the scene, and move around the camera a bit so we can see it in the game view, we can see that it looks a bit odd. [[File:06_unity_transparency_fail.png|400px|link={{filepath:06_unity_transparency_fail.png}}]] The reason for this is that Unity fails to take into account that textures may have an alpha channel (or maybe thinks that the user needs to know what he's doing before enabling such). We will thus need to fix the materials. For each material that has a transparent component, you will need to set the material type to "legacy shaders" -> "transparent" -> "diffuse". If the piece has a normalmap too, you will instead want "legacy shaders" -> "transparent" -> "bumped diffuse". [[File:07_fix_material.png|400px|link={{filepath:07_fix_material.png}}]] Do this for each material that should have a transparent component. In all likelihood you will want to do it for all materials except the skin (which would look odd if it was transparent). Having done this, the toon should now look more pleasing. [[File:08_transparency_fixed.png|400px|link={{filepath:08_transparency_fixed.png}}]] == Making the toon ready for animation == As you remember, we assigned a rig to the toon in MakeHuman before exporting it. However, we also need to tell Unity how to use it. Select the toon in the asset list (IMPORTANT! In the ''asset list'', not in the scene hierarchy). Click the rig tab. Set animation type to "humanoid". Click "configure". [[File:09_humanoid.png|400px|link={{filepath:09_humanoid.png}}]] Unity will now ask you to save the scene and apply changes. Do so. You will get to a panel where you can match the toon's bones with Unity's idea of bones. If you are using the game rig, everything should have been matched perfectly from start. [[File:10_assign_bones.png|x400px|link={{filepath:10_assign_bones.png}}]] The above is the most important step where things are likely to get messy if you are using another type of rig. If, for example, you use the MHX rig or Rigify, you might have to tinker a bit with the bone-to-bone mappings in the above dialog to get it all right. To test if things look as if they are working, switch to the "muscles and settings" tab and drag the handles around. If the toon follows, things are working correctly. [[File:11_bones_working.png|x400px|link={{filepath:11_bones_working.png}}]] 522bcba725b8cd58ae3e6932d3c3b30bd942887d 1255 1253 2016-11-25T09:59:13Z Joepal 14 wikitext text/x-wiki Getting toons to work in Unity may seem a bit intimidating at first, but in practice it only requires relatively few mouse clicks. == Preparations == If you don't have a unity project already, create one. Things will be a lot easier for you if you export directly to the Assets directory, so before exporting from MH the Assets directory should exist. For this documentation, let's create a new empty Unity project: [[File:00_create_unity_project.png|400px|link={{filepath:00_create_unity_project.png}}]] == Exporting from MakeHuman == Let's start with modeling a toon. We will here select some clothes/hair pieces with transparent areas so that we can see that we get those things right inside unity. [[File:01_export_mh_1.png|400px|link={{filepath:01_export_mh_1.png}}]] An important step is selecting an appropriate rig. Unless you know what you are doing, you will most likely want to use the game rig one here (there are cases where the other ones may be appropriate). [[File:02_export_mh_2.PNG|400px|link={{filepath:02_export_mh_2.PNG}}]] You are now ready to export. You will want to use FBX, and the default settings are fine. [[File:03_export_mh_3.png|400px|link={{filepath:03_export_mh_3.png}}]] However, before exporting, click the three-dots-button and browse to your Assets folder, so that the toon is exported there: [[File:04_export_mh_4.png|400px|link={{filepath:04_export_mh_4.png}}]] You can now click export, and the toon will be exported to Unity. In Unity you will now see that the toon is available. By exporting directly to the Assets directory, you also got "materials" and "textures" autocreated. Otherwise you would have had to configure these manually. [[File:05_import_unity.png|400px|link={{filepath:05_import_unity.png}}]] == Fixing materials == If we now drag the toon into the scene, and move around the camera a bit so we can see it in the game view, we can see that it looks a bit odd. [[File:06_unity_transparency_fail.png|400px|link={{filepath:06_unity_transparency_fail.png}}]] The reason for this is that Unity fails to take into account that textures may have an alpha channel (or maybe thinks that the user needs to know what he's doing before enabling such). We will thus need to fix the materials. For each material that has a transparent component, you will need to set the material type to "legacy shaders" -> "transparent" -> "diffuse". If the piece has a normalmap too, you will instead want "legacy shaders" -> "transparent" -> "bumped diffuse". [[File:07_fix_material.png|400px|link={{filepath:07_fix_material.png}}]] Do this for each material that should have a transparent component. In all likelihood you will want to do it for all materials except the skin (which would look odd if it was transparent). Having done this, the toon should now look more pleasing. [[File:08_transparency_fixed.png|400px|link={{filepath:08_transparency_fixed.png}}]] == Making the toon ready for animation == As you remember, we assigned a rig to the toon in MakeHuman before exporting it. However, we also need to tell Unity how to use it. Select the toon in the asset list (IMPORTANT! In the ''asset list'', not in the scene hierarchy). Click the rig tab. Set animation type to "humanoid". Click "configure". [[File:09_humanoid.png|400px|link={{filepath:09_humanoid.png}}]] Unity will now ask you to save the scene and apply changes. Do so. You will get to a panel where you can match the toon's bones with Unity's idea of bones. If you are using the game rig, everything should have been matched perfectly from start. [[File:10_assign_bones.png|x400px|link={{filepath:10_assign_bones.png}}]] The above is the most important step where things are likely to get messy if you are using another type of rig. If, for example, you use the MHX rig or rigigy, you might have to tinker a bit with the bone-to-bone mappings in the above dialog to get it all right. To test if things look as if they are working, switch to the "muscles and settings" tab and drag the handles around. If the toon follows, things are working correctly. [[File:11_bones_working.png|x400px|link={{filepath:11_bones_working.png}}]] ca4061976d378ed0ca0cbeef0a221810e0a0b7d3 1253 1250 2016-11-25T09:53:01Z Joepal 14 wikitext text/x-wiki Getting toons to work in Unity may seem a bit intimidating at first, but in practice it only requires relatively few mouse clicks. == Preparations == If you don't have a unity project already, create one. Things will be a lot easier for you if you export directly to the Assets directory, so before exporting from MH the Assets directory should exist. For this documentation, let's create a new empty Unity project: [[File:00_create_unity_project.png|400px|link={{filepath:00_create_unity_project.png}}]] == Exporting from MakeHuman == Let's start with modeling a toon. We will here select some clothes/hair pieces with transparent areas so that we can see that we get those things right inside unity. [[File:01_export_mh_1.png|400px|link={{filepath:01_export_mh_1.png}}]] An important step is selecting an appropriate rig. Unless you know what you are doing, you will most likely want to use the game rig one here (there are cases where the other ones may be appropriate). [[File:02_export_mh_2.PNG|400px|link={{filepath:02_export_mh_2.PNG}}]] You are now ready to export. You will want to use FBX, and the default settings are fine. [[File:03_export_mh_3.png|400px|link={{filepath:03_export_mh_3.png}}]] However, before exporting, click the three-dots-button and browse to your Assets folder, so that the toon is exported there: [[File:04_export_mh_4.png|400px|link={{filepath:04_export_mh_4.png}}]] You can now click export, and the toon will be exported to Unity. In Unity you will now see that the toon is available. By exporting directly to the Assets directory, you also got "materials" and "textures" autocreated. Otherwise you would have had to configure these manually. [[File:05_import_unity.png|400px|link={{filepath:05_import_unity.png}}]] == Fixing materials == If we now drag the toon into the scene, and move around the camera a bit so we can see it in the game view, we can see that it looks a bit odd. [[File:06_unity_transparency_fail.png|400px|link={{filepath:06_unity_transparency_fail.png}}]] The reason for this is that Unity fails to take into account that textures may have an alpha channel (or maybe thinks that the user needs to know what he's doing before enabling such). We will thus need to fix the materials. For each material that has a transparent component, you will need to set the material type to "legacy shaders" -> "transparent" -> "diffuse". If the piece has a normalmap too, you will instead want "legacy shaders" -> "transparent" -> "bumped diffuse". [[File:07_fix_material.png|400px|link={{filepath:07_fix_material.png}}]] Do this for each material that should have a transparent component. In all likelihood you will want to do it for all materials except the skin (which would look odd if it was transparent). Having done this, the toon should now look more pleasing. [[File:08_transparency_fixed.png|400px|link={{filepath:08_transparency_fixed.png}}]] == Making the toon ready for animation == As you remember, we assigned a rig to the toon in MakeHuman before exporting it. However, we also need to tell Unity how to use it. Select the toon in the asset list (IMPORTANT! In the ''asset list'', not in the scene hierarchy). Click the rig tab. Set animation type to "humanoid". Click "configure". [[File:09_humanoid.png|400px|link={{filepath:09_humanoid.png}}]] Unity will now ask you to save the scene and apply changes. Do so. You will get to a panel where you can match the toon's bones with Unity's idea of bones. If you are using the game rig, everything should have been matched perfectly from start. [[File:10_assign_bones.png|400px|link={{filepath:10_assign_bones.png}}]] 01737e5a22a328e011201f1a65916b1d3dc46cbb 1250 1246 2016-11-25T09:40:10Z Joepal 14 wikitext text/x-wiki Getting toons to work in Unity may seem a bit intimidating at first, but in practice it only requires relatively few mouse clicks. == Preparations == If you don't have a unity project already, create one. Things will be a lot easier for you if you export directly to the Assets directory, so before exporting from MH the Assets directory should exist. For this documentation, let's create a new empty Unity project: [[File:00_create_unity_project.png|400px|link={{filepath:00_create_unity_project.png}}]] == Exporting from MakeHuman == Let's start with modeling a toon. We will here select some clothes/hair pieces with transparent areas so that we can see that we get those things right inside unity. [[File:01_export_mh_1.png|400px|link={{filepath:01_export_mh_1.png}}]] An important step is selecting an appropriate rig. Unless you know what you are doing, you will most likely want to use the game rig one here (there are cases where the other ones may be appropriate). [[File:02_export_mh_2.PNG|400px|link={{filepath:02_export_mh_2.PNG}}]] You are now ready to export. You will want to use FBX, and the default settings are fine. [[File:03_export_mh_3.png|400px|link={{filepath:03_export_mh_3.png}}]] However, before exporting, click the three-dots-button and browse to your Assets folder, so that the toon is exported there: [[File:04_export_mh_4.png|400px|link={{filepath:04_export_mh_4.png}}]] You can now click export, and the toon will be exported to Unity. In Unity you will now see that the toon is available. By exporting directly to the Assets directory, you also got "materials" and "textures" autocreated. Otherwise you would have had to configure these manually. [[File:05_import_unity.png|400px|link={{filepath:05_import_unity.png}}]] == Fixing materials == If we now drag the toon into the scene, and move around the camera a bit so we can see it in the game view, we can see that it looks a bit odd. [[File:06_unity_transparency_fail.png|400px|link={{filepath:06_unity_transparency_fail.png}}]] The reason for this is that Unity fails to take into account that textures may have an alpha channel (or maybe thinks that the user needs to know what he's doing before enabling such). We will thus need to fix the materials. For each material that has a transparent component, you will need to set the material type to "legacy shaders" -> "transparent" -> "diffuse". If the piece has a normalmap too, you will instead want "legacy shaders" -> "transparent" -> "bumped diffuse". [[File:07_fix_material.png|400px|link={{filepath:07_fix_material.png}}]] Do this for each material that should have a transparent component. In all likelihood you will want to do it for all materials except the skin (which would look odd if it was transparent). Having done this, the toon should now look more pleasing. [[File:08_transparency_fixed.png|400px|link={{filepath:08_transparency_fixed.png}}]] 5322125ce278bdbed1d438088ef126e075cfb495 1246 1245 2016-11-25T09:23:17Z Joepal 14 wikitext text/x-wiki Getting toons to work in Unity may seem a bit intimidating at first, but in practice it only requires relatively few mouse clicks. == Preparations == If you don't have a unity project already, create one. Things will be a lot easier for you if you export directly to the Assets directory, so before exporting from MH the Assets directory should exist. For this documentation, let's create a new empty Unity project: [[File:00_create_unity_project.png|400px|link={{filepath:00_create_unity_project.png}}]] == Exporting from MakeHuman == Let's start with modeling a toon. We will here select some clothes/hair pieces with transparent areas so that we can see that we get those things right inside unity. [[File:01_export_mh_1.png|400px]] An important step is selecting an appropriate rig. Unless you know what you are doing, you will most likely want to use the game rig one here (there are cases where the other ones may be appropriate). [[File:02_export_mh_2.PNG|400px]] You are now ready to export. You will want to use FBX, and the default settings are fine. [[File:03_export_mh_3.png|400px]] However, before exporting, click the three-dots-button and browse to your Assets folder, so that the toon is exported there: [[File:04_export_mh_4.png|400px]] You can now click export, and the toon will be exported to Unity. In Unity you will now see that the toon is available. By exporting directly to the Assets directory, you also got "materials" and "textures" autocreated. Otherwise you would have had to configure these manually. [[File:05_import_unity.png|400px]] == Fixing materials == 8ccc991eeccd944111c5925274d2ba8e797297ca 1245 1240 2016-11-25T09:18:09Z Joepal 14 wikitext text/x-wiki Getting toons to work in Unity may seem a bit intimidating at first, but in practice it only requires relatively few mouse clicks. == Preparations == If you don't have a unity project already, create one. Things will be a lot easier for you if you export directly to the Assets directory, so before exporting from MH the Assets directory should exist. For this documentation, let's create a new empty Unity project: [[File:00_create_unity_project.png|400px]] == Exporting from MakeHuman == Let's start with modeling a toon. We will here select some clothes/hair pieces with transparent areas so that we can see that we get those things right inside unity. [[File:01_export_mh_1.png|400px]] An important step is selecting an appropriate rig. Unless you know what you are doing, you will most likely want to use the game rig one here (there are cases where the other ones may be appropriate). [[File:02_export_mh_2.PNG|400px]] You are now ready to export. You will want to use FBX, and the default settings are fine. [[File:03_export_mh_3.png|400px]] However, before exporting, click the three-dots-button and browse to your Assets folder, so that the toon is exported there: [[File:04_export_mh_4.png|400px]] You can now click export, and the toon will be exported to Unity. In Unity you will now see that the toon is available. By exporting directly to the Assets directory, you also got "materials" and "textures" autocreated. Otherwise you would have had to configure these manually. [[File:05_import_unity.png|400px]] == Fixing materials == 77ce5a3741707f9a3cb0ceaf493d74b2f5f7713d 1240 2016-11-25T09:02:27Z Joepal 14 Created page with "Getting toons to work in Unity may seem a bit intimidating at first, but in practice it only requires relatively few mouse clicks. == Exporting from MakeHuman Let's start w..." wikitext text/x-wiki Getting toons to work in Unity may seem a bit intimidating at first, but in practice it only requires relatively few mouse clicks. == Exporting from MakeHuman Let's start with modeling a toon. We will here select some clothes/hair pieces with transparent areas so that we can see that we get those things right inside unity. [[File:01_export_mh_1.png|400px]] An important step is selecting an appropriate rig. Unless you know what you are doing, you will most likely want to use the game rig one here (there are cases where the other ones may be appropriate). [[File:02_export_mh_2.PNG|400px]] bfbdf46a9df9342ff3311e023279a210c9904c55 Documentation:Saving models for Unreal Engine Materials 3000 707 2061 2060 2021-03-14T18:51:32Z Assetdk 89 /* Experimental Skin material */ wikitext text/x-wiki When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ==Getting started== You will notice that when you import the original FBX file and Import it into Unreal, the "correct" materials are created. You can thus, in principle, export/import all the skin variations to Unreal in this way. BUT, you can also go to the '''makehuman\v1py3\Data\skins''' folder and locate the texture files needed there, and then import them directly to Unreal. For the "upcoming" [[Documentation:Unreal MHC|Unreal MH Character customization]] tool you will have options register the texture files and use then from there. ==Specifics for the individual Materials== ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG|800px]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg|800px]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Normal and Experimental Skin material=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. If you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should '''not''' use the lerp functions as seen in this example? The problems mentioned here stems from the top part of the materials, you can thus simplify this and simply use specific materials for all the variations old/young/light/dark etc. (Still trying to figure out how to do this with "advanced" materials.) [[File:MH UE4 MaterialInstance 1.png|1200px]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and color!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. 122e9b14d796214d0605e70692e526a7c3093eb8 2060 2059 2021-03-14T18:46:26Z Assetdk 89 /* Experimental Skin material */ wikitext text/x-wiki When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ==Getting started== You will notice that when you import the original FBX file and Import it into Unreal, the "correct" materials are created. You can thus, in principle, export/import all the skin variations to Unreal in this way. BUT, you can also go to the '''makehuman\v1py3\Data\skins''' folder and locate the texture files needed there, and then import them directly to Unreal. For the "upcoming" [[Documentation:Unreal MHC|Unreal MH Character customization]] tool you will have options register the texture files and use then from there. ==Specifics for the individual Materials== ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG|800px]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg|800px]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Experimental Skin material=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. If you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should '''not''' use the lerp functions as seen in this example? [[File:MH UE4 MaterialInstance 1.png|1600px]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. fcad8fa2e3ef4ddbd6ce4bc5e3a541ff9f49dc73 2059 2058 2021-03-14T18:44:43Z Assetdk 89 /* Eye and teeth materials */ wikitext text/x-wiki When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ==Getting started== You will notice that when you import the original FBX file and Import it into Unreal, the "correct" materials are created. You can thus, in principle, export/import all the skin variations to Unreal in this way. BUT, you can also go to the '''makehuman\v1py3\Data\skins''' folder and locate the texture files needed there, and then import them directly to Unreal. For the "upcoming" [[Documentation:Unreal MHC|Unreal MH Character customization]] tool you will have options register the texture files and use then from there. ==Specifics for the individual Materials== ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG|800px]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg|800px]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Experimental Skin material=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. If you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should '''not''' use the lerp functions as seen in this example? [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. 7207107eaeffc3994146ddd14a2ce78ad16b51f8 2058 2057 2021-03-14T18:43:46Z Assetdk 89 /* Skin materials */ wikitext text/x-wiki When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ==Getting started== You will notice that when you import the original FBX file and Import it into Unreal, the "correct" materials are created. You can thus, in principle, export/import all the skin variations to Unreal in this way. BUT, you can also go to the '''makehuman\v1py3\Data\skins''' folder and locate the texture files needed there, and then import them directly to Unreal. For the "upcoming" [[Documentation:Unreal MHC|Unreal MH Character customization]] tool you will have options register the texture files and use then from there. ==Specifics for the individual Materials== ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Experimental Skin material=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. If you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should '''not''' use the lerp functions as seen in this example? [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. 06c874092afcd1775875005935670eab00caab85 2057 2055 2021-03-14T18:42:47Z Assetdk 89 /* Eye and teeth materials */ wikitext text/x-wiki When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ==Getting started== You will notice that when you import the original FBX file and Import it into Unreal, the "correct" materials are created. You can thus, in principle, export/import all the skin variations to Unreal in this way. BUT, you can also go to the '''makehuman\v1py3\Data\skins''' folder and locate the texture files needed there, and then import them directly to Unreal. For the "upcoming" [[Documentation:Unreal MHC|Unreal MH Character customization]] tool you will have options register the texture files and use then from there. ==Specifics for the individual Materials== ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Skin materials=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. If you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should '''not''' use the lerp functions as seen in this example? [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. 3efb1759d879553f2dddc7d2e6eb001524b81126 2055 2054 2021-03-14T18:27:41Z Assetdk 89 /* Skin materials */ wikitext text/x-wiki When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Skin materials=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. If you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should '''not''' use the lerp functions as seen in this example? [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. 1280ff567e0a03563714dc51a18c5420c3285b49 2054 2053 2021-03-14T18:26:45Z Assetdk 89 /* Makehuman UE4 materials */ wikitext text/x-wiki When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Skin materials=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. I you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should not use the lerp functions as seen in this example? [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. 60e0e7a1230664b80396d5ce01b8e4db77b75593 2053 2021-03-14T18:26:00Z Assetdk 89 Created page with "==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the..." wikitext text/x-wiki ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Skin materials=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. I you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should not use the lerp functions as seen in this example? [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. 84f01e95c41d90f09ce0a689363fa3ca8ca0a0f0 Documentation:Saving models for Unreal Engine and how to import them there 3000 582 2104 2103 2021-05-11T20:00:29Z Assetdk 89 /* UE4 import, and retarget */ wikitext text/x-wiki ::'''Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine!''' Also look at the Forum here for more tips [http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=52859&hilit=MH4UE#p52859 MH4UE]. There are, currently, several pages for this, describing the process of getting MH to Blender and then into Unreal. And one describing the addon that will add more "shape keys" to your characters (while in blender). * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there|Saving models for Unreal Engine and how to import them there]]. * [[Documentation:Saving_models_for_Unreal_Engine_Materials|How to setup Unreal materials]]. * [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. * [[Documentation:MHBlenderTools: MakeShapes|MakeShapes - getting more shape keys/morph targets]] * [[Documentation:MPFB|MakeHuman Plugin For Blender]]. =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' There is now tree different custom A-poses that you can use - i currently recommend the one highlighted in the list. Please read more in the [[http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=53368#p53368 forum]], for more information. ===Set up Base-Character(s)=== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Expressions: none * For the POSE chose the Apose_ue * [[File:MH_UE_Poses.png]] * Finally, from one of the poses documentations I found this comment: This pose is a near drop in fit for the Unreal mannequin using a generic male with standard proportions and 187.5 cm height. (You should probably use this, I have been using a height of 168-190, where the better result came from 190) And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly - make sure to chose the binary file format, if you want to import this file to UE. * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== The details for setting up materials was moved to this section: '''[[Documentation:Saving models for Unreal Engine Materials|Materials]]''' ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] '''Important update:''' You want to use the Pose called '''"UE4 A-Pose for generic male"''' - that can be downloaded from the Community/Download assets/pose. You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: :(Make sure to set the translation to skeleton for ALL bones, but the two first ones) [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 5f5a1001e218403153b3c3c486bac90c1f9d4278 2103 2083 2021-05-11T19:54:01Z Assetdk 89 /* Translation Retargeting */ wikitext text/x-wiki ::'''Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine!''' Also look at the Forum here for more tips [http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=52859&hilit=MH4UE#p52859 MH4UE]. There are, currently, several pages for this, describing the process of getting MH to Blender and then into Unreal. And one describing the addon that will add more "shape keys" to your characters (while in blender). * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there|Saving models for Unreal Engine and how to import them there]]. * [[Documentation:Saving_models_for_Unreal_Engine_Materials|How to setup Unreal materials]]. * [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. * [[Documentation:MHBlenderTools: MakeShapes|MakeShapes - getting more shape keys/morph targets]] * [[Documentation:MPFB|MakeHuman Plugin For Blender]]. =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' There is now tree different custom A-poses that you can use - i currently recommend the one highlighted in the list. Please read more in the [[http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=53368#p53368 forum]], for more information. ===Set up Base-Character(s)=== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Expressions: none * For the POSE chose the Apose_ue * [[File:MH_UE_Poses.png]] * Finally, from one of the poses documentations I found this comment: This pose is a near drop in fit for the Unreal mannequin using a generic male with standard proportions and 187.5 cm height. (You should probably use this, I have been using a height of 168-190, where the better result came from 190) And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly - make sure to chose the binary file format, if you want to import this file to UE. * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== The details for setting up materials was moved to this section: '''[[Documentation:Saving models for Unreal Engine Materials|Materials]]''' ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: :(Make sure to set the translation to skeleton for ALL bones, but the two first ones) [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? d273639bd612e707444946c50c58b680aa1a1d37 2083 2082 2021-05-11T17:06:38Z Assetdk 89 wikitext text/x-wiki ::'''Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine!''' Also look at the Forum here for more tips [http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=52859&hilit=MH4UE#p52859 MH4UE]. There are, currently, several pages for this, describing the process of getting MH to Blender and then into Unreal. And one describing the addon that will add more "shape keys" to your characters (while in blender). * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there|Saving models for Unreal Engine and how to import them there]]. * [[Documentation:Saving_models_for_Unreal_Engine_Materials|How to setup Unreal materials]]. * [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. * [[Documentation:MHBlenderTools: MakeShapes|MakeShapes - getting more shape keys/morph targets]] * [[Documentation:MPFB|MakeHuman Plugin For Blender]]. =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' There is now tree different custom A-poses that you can use - i currently recommend the one highlighted in the list. Please read more in the [[http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=53368#p53368 forum]], for more information. ===Set up Base-Character(s)=== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Expressions: none * For the POSE chose the Apose_ue * [[File:MH_UE_Poses.png]] * Finally, from one of the poses documentations I found this comment: This pose is a near drop in fit for the Unreal mannequin using a generic male with standard proportions and 187.5 cm height. (You should probably use this, I have been using a height of 168-190, where the better result came from 190) And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly - make sure to chose the binary file format, if you want to import this file to UE. * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== The details for setting up materials was moved to this section: '''[[Documentation:Saving models for Unreal Engine Materials|Materials]]''' ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 0f50727ee381a8f1ad1a16f21f3434e5ad69bb34 2082 2081 2021-05-11T17:06:02Z Assetdk 89 wikitext text/x-wiki ::'''Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine!''' Also look at the Forum here for more tips [http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=52859&hilit=MH4UE#p52859 MH4UE]. There are, currently, several pages for this, describing the process of getting MH to Blender and then into Unreal. And one describing the addon that will add more "shape keys" to your characters (while in blender). * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there|Saving models for Unreal Engine and how to import them there]]. * [[Documentation:Saving_models_for_Unreal_Engine_Materials|How to setup Unreal materials]]. * [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. * [[Documentation:MHBlenderTools: MakeShapes|MakeShapes - getting more shape keys/morph targets]] * [[Documentation:MPFB 2|MakeHuman Plugin For Blender]]. =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' There is now tree different custom A-poses that you can use - i currently recommend the one highlighted in the list. Please read more in the [[http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=53368#p53368 forum]], for more information. ===Set up Base-Character(s)=== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Expressions: none * For the POSE chose the Apose_ue * [[File:MH_UE_Poses.png]] * Finally, from one of the poses documentations I found this comment: This pose is a near drop in fit for the Unreal mannequin using a generic male with standard proportions and 187.5 cm height. (You should probably use this, I have been using a height of 168-190, where the better result came from 190) And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly - make sure to chose the binary file format, if you want to import this file to UE. * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== The details for setting up materials was moved to this section: '''[[Documentation:Saving models for Unreal Engine Materials|Materials]]''' ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? b56f545d5af62915275db6adec0ebe97124d78cf 2081 2064 2021-05-11T09:16:39Z Assetdk 89 wikitext text/x-wiki ::'''Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine!''' Also look at the Forum here for more tips [http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=52859&hilit=MH4UE#p52859 MH4UE]. There are, currently, several pages for this, describing the process of getting MH to Blender and then into Unreal. And one describing the addon that will add more "shape keys" to your characters (while in blender). * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there|Saving models for Unreal Engine and how to import them there]]. * [[Documentation:Saving_models_for_Unreal_Engine_Materials|How to setup Unreal materials]]. * [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. * [[Documentation:MHBlenderTools: MakeShapes|MakeShapes - getting more shape keys/morph targets]] =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' There is now tree different custom A-poses that you can use - i currently recommend the one highlighted in the list. Please read more in the [[http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=53368#p53368 forum]], for more information. ===Set up Base-Character(s)=== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Expressions: none * For the POSE chose the Apose_ue * [[File:MH_UE_Poses.png]] * Finally, from one of the poses documentations I found this comment: This pose is a near drop in fit for the Unreal mannequin using a generic male with standard proportions and 187.5 cm height. (You should probably use this, I have been using a height of 168-190, where the better result came from 190) And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly - make sure to chose the binary file format, if you want to import this file to UE. * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== The details for setting up materials was moved to this section: '''[[Documentation:Saving models for Unreal Engine Materials|Materials]]''' ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? f07e75b521637c24dd02761ad4d578fb9291730e 2064 2062 2021-03-14T19:34:21Z Assetdk 89 wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! Also look at the Forum here for more tips [http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=52859&hilit=MH4UE#p52859 MH4UE]. There are, currently, several pages for this, describing the process of getting MH to Blender and then into Unreal. And one describing the addon that will add more "shape keys" to your characters (while in blender). * [[Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there|Saving models for Unreal Engine and how to import them there]]. * [[Documentation:Saving_models_for_Unreal_Engine_Materials|How to setup Unreal materials]]. * [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. * [[Documentation:MHBlenderTools: MakeShapes|MakeShapes - getting more shape keys/morph targets]] =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' There is now tree different custom A-poses that you can use - i currently recommend the one highlighted in the list. Please read more in the [[http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=53368#p53368 forum]], for more information. ===Set up Base-Character(s)=== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Expressions: none * For the POSE chose the Apose_ue * [[File:MH_UE_Poses.png]] * Finally, from one of the poses documentations I found this comment: This pose is a near drop in fit for the Unreal mannequin using a generic male with standard proportions and 187.5 cm height. (You should probably use this, I have been using a height of 168-190, where the better result came from 190) And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly - make sure to chose the binary file format, if you want to import this file to UE. * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== The details for setting up materials was moved to this section: '''[[Documentation:Saving models for Unreal Engine Materials|Materials]]''' ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? f91f870b4d927646a08598c2748a15a33d2ec8b1 2062 2056 2021-03-14T19:08:11Z Assetdk 89 /* Set up Base-Character(s) */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! Also look at the Forum here for more tips [http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=52859&hilit=MH4UE#p52859 MH4UE]. * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' There is now tree different custom A-poses that you can use - i currently recommend the one highlighted in the list. Please read more in the [[http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=53368#p53368 forum]], for more information. ===Set up Base-Character(s)=== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Expressions: none * For the POSE chose the Apose_ue * [[File:MH_UE_Poses.png]] * Finally, from one of the poses documentations I found this comment: This pose is a near drop in fit for the Unreal mannequin using a generic male with standard proportions and 187.5 cm height. (You should probably use this, I have been using a height of 168-190, where the better result came from 190) And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly - make sure to chose the binary file format, if you want to import this file to UE. * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== The details for setting up materials was moved to this section: '''[[Documentation:Saving models for Unreal Engine Materials|Materials]]''' ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 95c395f47b365e0e405b845815769c155bce4b14 2056 2051 2021-03-14T18:31:18Z Assetdk 89 /* Makehuman UE4 materials */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! Also look at the Forum here for more tips [http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=52859&hilit=MH4UE#p52859 MH4UE]. * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' There is now tree different custom A-poses that you can use - i currently recommend the one highlighted in the list. Please read more in the [[http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=53368#p53368 forum]], for more information. ===Set up Base-Character(s)=== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Expressions: none * For the POSE chose the Apose_ue * [[File:MH_UE_Poses.png]] And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly - make sure to chose the binary file format, if you want to import this file to UE. * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== The details for setting up materials was moved to this section: '''[[Documentation:Saving models for Unreal Engine Materials|Materials]]''' ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? f12de5618e35e5b8d3f43aad1a349eb3684cd98c 2051 2050 2021-03-14T18:21:46Z Assetdk 89 /* Base-Character(s) */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! Also look at the Forum here for more tips [http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=52859&hilit=MH4UE#p52859 MH4UE]. * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' There is now tree different custom A-poses that you can use - i currently recommend the one highlighted in the list. Please read more in the [[http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=53368#p53368 forum]], for more information. ===Set up Base-Character(s)=== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Expressions: none * For the POSE chose the Apose_ue * [[File:MH_UE_Poses.png]] And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly - make sure to chose the binary file format, if you want to import this file to UE. * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Skin materials=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. I you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should not use the lerp functions as seen in this example? [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 4c7ecf3c711564b4b3a1349122a5ed2fa430ac0b 2050 2049 2021-03-14T18:20:30Z Assetdk 89 /* Export your base-character */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! Also look at the Forum here for more tips [http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=52859&hilit=MH4UE#p52859 MH4UE]. * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' There is now tree different custom A-poses that you can use - i currently recommend the one highlighted in the list. Please read more in the [[http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=53368#p53368 forum]], for more information. ===Base-Character(s)=== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Expressions: none * For the POSE chose the Apose_ue * [[File:MH_UE_Poses.png]] And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly - make sure to chose the binary file format, if you want to import this file to UE. * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Skin materials=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. I you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should not use the lerp functions as seen in this example? [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 69d7089f951c306e463022d9b61447091ab1765d 2049 2048 2021-03-14T18:18:03Z Assetdk 89 /* Making a base-character */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! Also look at the Forum here for more tips [http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=52859&hilit=MH4UE#p52859 MH4UE]. * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' There is now tree different custom A-poses that you can use - i currently recommend the one highlighted in the list. Please read more in the [[http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=53368#p53368 forum]], for more information. ===Base-Character(s)=== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Expressions: none * For the POSE chose the Apose_ue * [[File:MH_UE_Poses.png]] And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Skin materials=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. I you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should not use the lerp functions as seen in this example? [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? ff7a4433863c537068002adf20806f85c13fdcbd 2048 2047 2021-03-14T18:16:22Z Assetdk 89 /* Making a base-character */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! Also look at the Forum here for more tips [http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=52859&hilit=MH4UE#p52859 MH4UE]. * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' There is now tree different custom A-poses that you can use - i currently recommend the one highlighted in the list. Please read more in the [[http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=53368#p53368 forum]], for more information. [[File:MH_UE_Poses.png]] Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Expressions: none * For the POSE chose the Apose_ue And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Skin materials=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. I you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should not use the lerp functions as seen in this example? [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? ebdd6767d1afda3917713bce81dcb0a994fa3e09 2047 2046 2021-03-14T17:25:28Z Assetdk 89 /* Making a base-character */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! Also look at the Forum here for more tips [http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=52859&hilit=MH4UE#p52859 MH4UE]. * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' There is now tree different custom A-poses that you can use - i currently recommend the one highlighted in the list. Please read more in the [[http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=53368#p53368 forum]], for more information. [[File:MH_UE_Poses.png]] Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Expressions: none * DO NOT Chose Pose: T-pose (the last one on the list) - see note above And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Skin materials=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. I you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should not use the lerp functions as seen in this example? [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? a27c090126e6e89d9d346d1a7e8d57a1225651e7 2046 2044 2021-03-14T17:24:42Z Assetdk 89 /* Making a base-character */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! Also look at the Forum here for more tips [http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=52859&hilit=MH4UE#p52859 MH4UE]. * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' There is now tree different custom A-poses that you can use [[File:MH_UE_Poses.png]] - i currently recommend the one highlighted in the list. Please read more in the [[http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=53368#p53368 forum]], for more information. Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Expressions: none * DO NOT Chose Pose: T-pose (the last one on the list) - see note above And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Skin materials=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. I you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should not use the lerp functions as seen in this example? [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 64287a869f66f4b6511ac8099612eb21a411e491 2044 2043 2021-03-13T11:47:06Z Assetdk 89 wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! Also look at the Forum here for more tips [http://www.makehumancommunity.org/forum/viewtopic.php?f=14&t=18462&p=52859&hilit=MH4UE#p52859 MH4UE]. * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' I have been working with these base-characters on and off for some time now, and I realized that: '''You should not change the pose before creating the base character.''' The reason for this is that the T-Pose will not be kept/maintained throughout using makehuman, specifically when you use the utility/ expression mixer. And that will, in time, mess up the option to set expressions as shape keys in Blender. Blender will, when you set the shape key set the entire body as a "shape", say your base character is in T-Pose then the A-pose will be set as part of the shape key. Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Expressions: none * DO NOT Chose Pose: T-pose (the last one on the list) - see note above And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Skin materials=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. I you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should not use the lerp functions as seen in this example? [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 8eeecf844276982608a8cb3bccebcd641638a1af 2043 2040 2021-03-13T11:29:51Z Assetdk 89 /* Making a base-character */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' I have been working with these base-characters on and off for some time now, and I realized that: '''You should not change the pose before creating the base character.''' The reason for this is that the T-Pose will not be kept/maintained throughout using makehuman, specifically when you use the utility/ expression mixer. And that will, in time, mess up the option to set expressions as shape keys in Blender. Blender will, when you set the shape key set the entire body as a "shape", say your base character is in T-Pose then the A-pose will be set as part of the shape key. Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Expressions: none * DO NOT Chose Pose: T-pose (the last one on the list) - see note above And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Skin materials=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. I you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should not use the lerp functions as seen in this example? [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 1e1ecf41c185b2deab3f2b0b93071849ae8cda04 2040 2037 2021-02-21T10:29:59Z Assetdk 89 /* Customization */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' I have been working with these base-characters on and off for some time now, and I realized that: '''You should not change the pose before creating the base character.''' The reason for this is that the T-Pose will not be kept/maintained throughout using makehuman, specifically when you use the utility/ expression mixer. And that will, in time, mess up the option to set expressions as shape keys in Blender. Blender will, when you set the shape key set the entire body as a "shape", say your base character is in T-Pose then the A-pose will be set as part of the shape key. Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Skin materials=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. I you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should not use the lerp functions as seen in this example? [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen here: [[Documentation:Unreal_MHC|Unreal MakeCustomization]]. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 658cc4c864970016d32e425fa2711ca7465cb6c9 2037 2036 2021-02-21T10:19:43Z Assetdk 89 /* Skin materials */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' I have been working with these base-characters on and off for some time now, and I realized that: '''You should not change the pose before creating the base character.''' The reason for this is that the T-Pose will not be kept/maintained throughout using makehuman, specifically when you use the utility/ expression mixer. And that will, in time, mess up the option to set expressions as shape keys in Blender. Blender will, when you set the shape key set the entire body as a "shape", say your base character is in T-Pose then the A-pose will be set as part of the shape key. Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Skin materials=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I ended up with a master material, that can be used as an instance... from where I can manipulate ink color and age! Please note! These are not working all that good! There are some obvious errors. The skin appears to mismatch especially on the back and on the back of the head. I you know how to correct this please make comments or post the correct solution. In case you need your characters to be better than this you should not use the lerp functions as seen in this example? [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen below, in this you can see the shape keys as well as the buttons where you can change the base-tint parameter. [[File:MH UE4 MaterialCustom 1.png]] ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 4d3ac77232a685fb4dbc40e4dc05d3607ee09a43 2036 2034 2021-02-20T16:56:35Z Assetdk 89 /* What can and can't be done? */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' I have been working with these base-characters on and off for some time now, and I realized that: '''You should not change the pose before creating the base character.''' The reason for this is that the T-Pose will not be kept/maintained throughout using makehuman, specifically when you use the utility/ expression mixer. And that will, in time, mess up the option to set expressions as shape keys in Blender. Blender will, when you set the shape key set the entire body as a "shape", say your base character is in T-Pose then the A-pose will be set as part of the shape key. Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Skin materials=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I endend up with a master material, that can be used as an instance... from where I can manipulate sink color and age! [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen below, in this you can see the shape keys as well as the buttons where you can change the base-tint parameter. [[File:MH UE4 MaterialCustom 1.png]] ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? e01bb3e9b5bb5a2b25723c83cde36e018417e906 2034 2032 2021-02-14T14:00:08Z Assetdk 89 /* Skin materials */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' I have been working with these base-characters on and off for some time now, and I realized that: '''You should not change the pose before creating the base character.''' The reason for this is that the T-Pose will not be kept/maintained throughout using makehuman, specifically when you use the utility/ expression mixer. And that will, in time, mess up the option to set expressions as shape keys in Blender. Blender will, when you set the shape key set the entire body as a "shape", say your base character is in T-Pose then the A-pose will be set as part of the shape key. Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Skin materials=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimenting a lot, I found that you can setup parameters and still keep the skin material quite simple. I endend up with a master material, that can be used as an instance... from where I can manipulate sink color and age! [[File:MH UE4 MaterialInstance 1.png]] ====Old/young and age!==== The "master material" looks like this in details - in the first part you can combine young/old+light/dark skin with age.. the textures are all from make human. [[File:MH_UE4_MaterialMaster_1.png]] ====Old/young and age!==== In the 2nd part you have all the other material parameters. I made the various textures for this using at normal map generator. [[File:MH_UE4_MaterialMaster_2.png]] ====Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen below, in this you can see the shape keys as well as the buttons where you can change the base-tint parameter. [[File:MH UE4 MaterialCustom 1.png]] ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 3f43b6eccf80c690e20ce7262a4fc45651fb63f7 2032 2027 2021-02-14T13:31:47Z Assetdk 89 /* More materials? */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' I have been working with these base-characters on and off for some time now, and I realized that: '''You should not change the pose before creating the base character.''' The reason for this is that the T-Pose will not be kept/maintained throughout using makehuman, specifically when you use the utility/ expression mixer. And that will, in time, mess up the option to set expressions as shape keys in Blender. Blender will, when you set the shape key set the entire body as a "shape", say your base character is in T-Pose then the A-pose will be set as part of the shape key. Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===Skin materials=== I wanted to have a very diverse skin material, that can be used for making a wide range of NPC characters. After experimneting a lot, I found that you can setup parameters and still keep the skin material quite simple. I endend up with a master material, that can be used as an instance... from where I can manipulate sink color and age! This is the current setup: [[File:MH UE4 MaterialInstance 1.png]] The "master material" looks like this in details: [[File:MH_UE4_MaterialMaster_1.png]] [[File:MH_UE4_MaterialMaster_2.png]] ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 6395e7a99996e5c8eb2e1892b096266bc8b9ffa1 2027 1992 2021-02-14T13:10:42Z Assetdk 89 /* Eye materials */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' I have been working with these base-characters on and off for some time now, and I realized that: '''You should not change the pose before creating the base character.''' The reason for this is that the T-Pose will not be kept/maintained throughout using makehuman, specifically when you use the utility/ expression mixer. And that will, in time, mess up the option to set expressions as shape keys in Blender. Blender will, when you set the shape key set the entire body as a "shape", say your base character is in T-Pose then the A-pose will be set as part of the shape key. Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye and teeth materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:Ue4-26-eye-material.JPG]] Your teeth material should look like this: [[File:Ue4-26-teeth-material.jpg]] Other parts of the materials my need to be setup like this also. Please add more suggestions, and feel free to edit this page! ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 5af77600984a5b5934946b5ef49f6649c891598f 1992 1982 2021-01-25T16:39:12Z Fortuna 107 Important missing step at UE4 Import tested with UE4.26 and Blender 2.90.1 wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' I have been working with these base-characters on and off for some time now, and I realized that: '''You should not change the pose before creating the base character.''' The reason for this is that the T-Pose will not be kept/maintained throughout using makehuman, specifically when you use the utility/ expression mixer. And that will, in time, mess up the option to set expressions as shape keys in Blender. Blender will, when you set the shape key set the entire body as a "shape", say your base character is in T-Pose then the A-pose will be set as part of the shape key. Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! During the import of the FBX file from Blender into UE4 you must enable the '''Import Morp Targets''' checkbox manually (expand the Mesh section)! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 22940cbebd65a26a93ae70f4ec2ea069db2249cd 1982 1981 2021-01-16T17:47:00Z Assetdk 89 /* Translation Retargeting!! */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' I have been working with these base-characters on and off for some time now, and I realized that: '''You should not change the pose before creating the base character.''' The reason for this is that the T-Pose will not be kept/maintained throughout using makehuman, specifically when you use the utility/ expression mixer. And that will, in time, mess up the option to set expressions as shape keys in Blender. Blender will, when you set the shape key set the entire body as a "shape", say your base character is in T-Pose then the A-pose will be set as part of the shape key. Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 96732a68b1a64cfd4ad01878dc9f1b4d0ce9c28d 1981 1979 2021-01-16T17:37:00Z Assetdk 89 /* UE4 import, and retarget */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' I have been working with these base-characters on and off for some time now, and I realized that: '''You should not change the pose before creating the base character.''' The reason for this is that the T-Pose will not be kept/maintained throughout using makehuman, specifically when you use the utility/ expression mixer. And that will, in time, mess up the option to set expressions as shape keys in Blender. Blender will, when you set the shape key set the entire body as a "shape", say your base character is in T-Pose then the A-pose will be set as part of the shape key. Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ===Translation Retargeting!!=== After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 6dea5d50a737ce20f9d9eca9edfc9dc0abf4e038 1979 1977 2021-01-16T17:35:44Z Assetdk 89 /* UE4 import, and retarget */ wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' I have been working with these base-characters on and off for some time now, and I realized that: '''You should not change the pose before creating the base character.''' The reason for this is that the T-Pose will not be kept/maintained throughout using makehuman, specifically when you use the utility/ expression mixer. And that will, in time, mess up the option to set expressions as shape keys in Blender. Blender will, when you set the shape key set the entire body as a "shape", say your base character is in T-Pose then the A-pose will be set as part of the shape key. Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? ==Translation Retargeting!!" After the retargeting the animations will still look odd. You go to the skeleton tree, then check off the "Show Retargeting Options" and set those at and below the spline to Skeleton (recursively) - that looks something like this: [[File:MH-Anim-Skeleton.png]] =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? e671cb7b5a7909dde344077e0da7cba71872dcc2 1977 1976 2021-01-16T10:25:41Z Assetdk 89 wikitext text/x-wiki Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' I have been working with these base-characters on and off for some time now, and I realized that: '''You should not change the pose before creating the base character.''' The reason for this is that the T-Pose will not be kept/maintained throughout using makehuman, specifically when you use the utility/ expression mixer. And that will, in time, mess up the option to set expressions as shape keys in Blender. Blender will, when you set the shape key set the entire body as a "shape", say your base character is in T-Pose then the A-pose will be set as part of the shape key. Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 307881338947ea8d09c2a5083bff8c6202a318e1 1976 1966 2021-01-16T07:57:58Z Assetdk 89 /* MH4UE - get Makehuman to Unreal4 */ wikitext text/x-wiki Please take a look at this page to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * [[Documentation:MH4UE]] =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' I have been working with these base-characters on and off for some time now, and I realized that: '''You should not change the pose before creating the base character.''' The reason for this is that the T-Pose will not be kept/maintained throughout using makehuman, specifically when you use the utility/ expression mixer. And that will, in time, mess up the option to set expressions as shape keys in Blender. Blender will, when you set the shape key set the entire body as a "shape", say your base character is in T-Pose then the A-pose will be set as part of the shape key. Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 2cde89ed77f5c62459ddc5fae45e1e387225594b 1966 1748 2021-01-16T06:48:44Z Assetdk 89 wikitext text/x-wiki =MH4UE - get Makehuman to Unreal4 = Please take a look at this page to get an overview of things you can use to get your Makehuman characters into Unreal Engine! * [[Documentation:MH4UE]] =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' I have been working with these base-characters on and off for some time now, and I realized that: '''You should not change the pose before creating the base character.''' The reason for this is that the T-Pose will not be kept/maintained throughout using makehuman, specifically when you use the utility/ expression mixer. And that will, in time, mess up the option to set expressions as shape keys in Blender. Blender will, when you set the shape key set the entire body as a "shape", say your base character is in T-Pose then the A-pose will be set as part of the shape key. Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 46ea6712481e8e80781be78b179a5861885b13cc 1748 1718 2020-03-25T13:12:40Z Assetdk 89 /* Making a base-character */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== '''IMPORTANT new comment:''' I have been working with these base-characters on and off for some time now, and I realized that: '''You should not change the pose before creating the base character.''' The reason for this is that the T-Pose will not be kept/maintained throughout using makehuman, specifically when you use the utility/ expression mixer. And that will, in time, mess up the option to set expressions as shape keys in Blender. Blender will, when you set the shape key set the entire body as a "shape", say your base character is in T-Pose then the A-pose will be set as part of the shape key. Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 24701606c632caa45ef8effa33cc602a90b73421 1718 1709 2020-03-09T18:09:48Z Assetdk 89 /* What can and can't be done? */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] Since I am using/learning Blender 2.8, I want to share a bit of bonus info. I managed to make one of the free UE4 packages work a bit "better". That is your characters should have some transportation. This is how: * [[Documentation:Unreal Engine Vehicle Variety Pack]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? b873bb3740275bc53a1bdc3bea69190af7a0ad54 1709 1708 2020-03-01T17:09:43Z Assetdk 89 /* What can and can't be done? */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] * [[Documentation:Unreal Engine ALS V4]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? 467b24888231e5c1aacfbf1aa49f584771d14d20 1708 1706 2020-03-01T17:08:10Z Assetdk 89 /* More shape keys, made in Blender 2.8 */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? f0b62888305bbe39909957508a688fba218ea30c 1706 1705 2020-03-01T16:36:10Z Assetdk 89 /* What can and can't be done? */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 * ALS got something to work! [[Documentation:Saving models for Unreal Engine and how to import them there/ALS]] =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? ff568dd7c3542c358483677f6a9d200c188a69a8 1705 1704 2020-02-27T22:09:13Z Assetdk 89 /* Observations about Blender 2.8 */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! =Blender 2.8 - a bit more advanced?= This is very fine - we can make your base character use all the expressions, and they can be combined! Also you can tamper with them in UE4, say you can combine them and you can even set minus values, or extreme values not "allowed" in Blender. But you obviously want more than that? Perhaps you can find some special "targets" you want to use? ae6a8c238b81a7a3c6e0b641add1862dfec41bc0 1704 1703 2020-02-27T19:25:12Z Assetdk 89 /* Observations about Blender 2.8 */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== You may notice that you can mess this up, so please save your blender file and back up! Say you can easily merge your base character with the expression MHX2 or do something else to corrupt your work! Please also note that the Vertex Group/relative to, '''head''' and '''Basis''', are rather important! The shape key will change the entire body, to the T-Pose, if head is not set. Likewise you can make some shape keys relative to an other shape key - this will be important a bit later, when we do more "advanced" stuff! c885ee3bda55c79ceb514034f64aaad4a7c01c17 1703 1702 2020-02-27T19:18:14Z Assetdk 89 /* Expressions and targets */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! ==Observations about Blender 2.8== 3f87cedb41144a52360c778756976cea6d73a981 1702 1701 2020-02-27T18:38:09Z Assetdk 89 /* Expressions and targets */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Exp_Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. You save your base character in a FBX and Import it to UE4. To be 100% safe you can save and import to different names and folders, but in the end you will re-import the base character each time you do one or more new shape keys. When you see this working in UE4, you can go on to the next expressions - I simply delete the Averagedude_base_expression collection and save the next expression in the same file. You can naturally do as many expressions as you want. leave some out etc... as you like! 889ccc3d35d988a219b2e206e04293533240dbf3 1701 1700 2020-02-27T18:22:09Z Assetdk 89 /* Expressions and targets */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! You can now try to change the value for the shape key, and you should see that your base character can get angry! When this worked for you you can save the blender file! And you should now do your very first re-import of the FBX. 434b13ca09dcbf92fa1cd7fe449c21b695edd868 1700 1699 2020-02-27T18:17:33Z Assetdk 89 /* Expressions and targets */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] In case you can not select ''Join as shapes'' the two characters were not selected in the right order, or perhaps the topology is not the same. Blender will show this as a message some where at the bottom of the screen. I this happens try the blender workflow, in this paragraph only , again! 5d8d0fe73f4d43f7ed16c54c7ea35f112d40e76e 1699 1697 2020-02-27T18:13:33Z Assetdk 89 /* Expressions and targets */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow, and select the ''Join as shapes'' - like this: [[File:MH-Blender-shapekey1.png]] This will make a brand new shape key: Averagedude_base_expression:Proxy * You rename the shape key by a double-click and call it '''Anger01'''.. * ... and assign the Vertex group to head [[File:MH-Blender-shapekey2.png]] 278b38eadbaa04dec9efc1ecfffcbcbe48ecacea 1697 1695 2020-02-27T18:06:13Z Assetdk 89 /* Expressions and targets */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow - like this: [[File:MH-Blender-shapekey1.png]] 213d24f4ea4291c0be47e53fe1ab09cb7be14e70 1695 1694 2020-02-27T17:57:38Z Assetdk 89 /* Expressions and targets */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Remember to check that your base character is in the T-Pose, do not change that! '''Just in case:''' I recommend that you keep a copy of this file as well as all the blender file etc. You should also have Blender open and load the .blender file where you saved both your FBX and the MHX2. Before you go on do as follows: move the MHX2 character to x 10m, so the entire character moves to the left (right to your front view) - this will make it more easy for you to work with! (Save the blender file!) '''This is the general workflow for transfer of expressions:''' Makehuman: * Go to the Pose/Animate tab and select Expressions. From the list select the first expression, Anger01. * Save the character as .mhx2 - but to a different file name: averagedude-base-expression.mhx2. Blender: * In blender, deselect all the collections * Import the file you made, using the same operator presets as yo saved them. * Activate your Base character collection and you will have two characters side by side - one base character and a very angry one! * Go to object mode * '''Left-click-select''' the angry guy first, then '''shift-left-click''' your base character. * Go to the vertex tab/shape key, and click on the little down arrow 6f3ee8fc6664ec8485b577fdc422b18783e6bcba 1694 1693 2020-02-27T17:24:09Z Assetdk 89 /* More shape keys, made in Blender 2.8 */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get expressions, targets and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: ===Tutorials=== General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} Short general introduction to using shape keys in Blender 2.8: {{#ev:youtube|e675Ulc7QL4}} ==Expressions and targets== Make sure that you have your original base character saved and load it into Makehuman. Just in case, i recommend that you keep a copy of this file as well as all the blender file etc. d3dcf10f391f9f6164c5c96c3ebbb8082f4fe685 1693 1692 2020-02-27T17:18:55Z Assetdk 89 /* More shape keys, made in Blender 2.8 */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get targets, expressions and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: General introduction to MHX2 import and animation. However '''do not''' import the resulting characters into UE4? {{#ev:youtube|2P1t_nogbGs}} a4ab01e0db6041dc0b0eaf4095c2408207abdae0 1692 1691 2020-02-27T17:15:38Z Assetdk 89 /* More shape keys, made in Blender 2.8 */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get targets, expressions and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: {{#ev:youtube|nogbGs&t}} 4b3e21f06bb72305437fc3f5d6a815dd3b681513 1691 1690 2020-02-27T17:14:34Z Assetdk 89 /* More shape keys, made in Blender 2.8 */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get targets, expressions and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! Before you get started you should probably look at a few Blender tutorials regarding this - these are good: {{#ev:youtube|2P1t_nogbGs&t}} 23478171b6e9e41b26d9ac5271ea18b9cd6f1eef 1690 1689 2020-02-27T17:12:34Z Assetdk 89 /* More shape keys, made in Blender 2.8 */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= I have not yet made any target in MH, also I have not had much luck in using the two blender addons. Frankly I don't really understand what the different buttons does, most of them are not active... perhaps they make sens if you use Blender a lot? But I will show you different ways to get targets, expressions and skeleton animations(!) to shape keys, so then will be new morph targets in UE4! 4d75931f5e4360000206e7e2ff3558452b82980d 1689 1688 2020-02-27T17:02:58Z Assetdk 89 /* UE4 import, and retarget */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? =More shape keys, made in Blender 2.8= a4b2879231436117c13b9c1967c8c08ebf1913d5 1688 1687 2020-02-27T07:55:36Z Assetdk 89 /* Choose Topology/Shape keys */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure '''Shape key names''' will be the same for all of the base characters, as they come from - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? 7c4c8f823cdb8cff33c7f9c27cd94c0259f698e0 1687 1686 2020-02-27T07:32:35Z Assetdk 89 /* Export your base-character */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure Shape key names will be the same for all of the base characters - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? 67af2e4ff8805bbaaefb9ac7a672c893922716db 1686 1685 2020-02-27T07:30:45Z Assetdk 89 /* Making a base-character */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ====Choose Topology/Shape keys==== When you make your base character without smoothing you get shape keys, and you want to share these between different characters. Specifically you would probably want to share face morphs between male and female characters - and there may be other base character variations, say old/young/child etc. Later I will focus on how to make new shape keys, using blender - depending on how you want to do this you may want to '''chose Topology that is compatible between the different characters!''' That is you may be able to transfer one "shape" from a male character to a female character, but the result will depend on ''topology compatibility''. I will/may thus update this section to make sure Shape key names will be the same for all of the base characters - however you will be able to make new keys. You must name these keys the same for all MH characters, like these share the same skeleton (MH_Skelton) they must hold all the same shape keys names. If they don't your game may "break".... ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? 82d670144fe2335162118bc8ecacf4c5fe14da67 1685 1683 2020-02-27T07:17:01Z Assetdk 89 /* Making a base-character */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology - '''I have no advice on this - but see comment below!''' * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? 4219420694b9c273c8dd13208c144329169c0372 1683 1682 2020-02-19T15:14:47Z Assetdk 89 /* UE4 import, and retarget */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] You may want to rename your new ThirdPerson_AnimBP to '''''MH''_ThirdPerson_AnimBP''' - or perhaps simply MH_AnimBP? 0c2f1b4a4d3b8aeb37b2cd8e32810ca5f3a3a9e9 1682 1680 2020-02-19T15:09:29Z Assetdk 89 /* UE4 import and retarget */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import, and retarget == Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to '''MH_Skeleton'''! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] Make sure that your character is in T-Pose, as you want to retarget the Mannequin animations to your characters MH_Skeleton! Make a animation folder in your MH, perhaps even Mannequin folder? You go to the UE4 folder: Content/Mannequin/Animations and right-click on this animation: '''ThirdPerson_AnimBP''' Select retarget and choose MH_Skeleton as your target - also select the animation folder you made before, something like this: [[File:MH-Base-Animation-Retarget.png]] c964fddb70f3f5fe9a704b1b7006c74a32f417ee 1680 1679 2020-02-19T14:46:24Z Assetdk 89 /* UE4 import */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import and retarget== Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to MH_Skeleton! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] 59237025dcf15d6e01ed2eb54c122edccdc28018 1679 1677 2020-02-19T14:45:53Z Assetdk 89 /* UE4 import */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import== Go to your UE4 project and make a MH folder containing a new avaragedude folder, and import your base character there! Observe that this character looks very much like the one you did already import from the original FBX, there are little difference - yet you want to set up this as your real base character. Also you want to rename the skeleton to MH_Skeleton! And you want to open the skeleton, and retarget it to the humanoid rig... this should look like this: [[File:MH-Base-Skeleton-Retarget.png]] 38c35b132d7ccea0f64d46a0e6ae821eccdd596e 1677 1676 2020-02-19T14:35:43Z Assetdk 89 /* FBX export settings */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? (You may however want to export more FBX files from Makehuman, simply to get all of the textures. We will look more into how you can use the skin textures!) ==UE4 import== 7c1affcf85a3f32c15c2b5bcdba7ceb3571e6d05 1676 1675 2020-02-19T14:32:53Z Assetdk 89 /* =UE4 import */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? ==UE4 import== 61c46f42621427e1e2b895b8e2a0be18d186b512 1675 1673 2020-02-19T14:31:34Z Assetdk 89 /* FBX export settings */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] Place the FBX file in the same folder as where you placed the original FBX and the MHX2. You probably do not need the FBX that you made with Makehuman, and you can always make it again? ===UE4 import== 8f232d087817b47084b427d22364dfbec6b9db45 1673 1671 2020-02-19T14:23:59Z Assetdk 89 /* FBX export settings */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to '''main_root''', like this: [[File:MH-Base-FBX-main-root.png]] .... you should do this for all base characters! main_root will be the root bone in your skeleton. When you do it like this, all of your base characters will be able to share the same skeleton! Now select the MHX2 collection where you have the character, and go to Export FBX. I have made a 'Operator preset' for the FBX export, this is the options you need to set: [[File:MH-Base-FBX-operator-presets.png]] 4961677211ebc15437c97a57978664a4c1cda8ce 1671 1669 2020-02-19T14:13:52Z Assetdk 89 /* Export the FBX for your base character, and import to UE4 */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations ===FBX export settings=== '''Important!''' Before you go any further you should rename your base character to main_root, like this: [[File:MH-Base-FBX-main-root.png]] d07fb79e6fed0be6c2501047570ec1f6d9086dd0 1669 1668 2020-02-19T13:36:41Z Assetdk 89 /* Export the FBX for your base character, and import to UE4 */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== The next step is crucial for getting things to work in UE4, it is not very complicated but you need to have a plan. When you did this correctly you should be able to get the following results: * Import your base character into UE4 * Create retargeting for your common skeleton - called MH_Skeleton * Retarget the Maniqin animations to your base character(s) * Get additional Mixamo animations fcd3cf9714b4fbe97d7abc9cefabe7e02bb989bb 1668 1667 2020-02-17T23:13:09Z Assetdk 89 /* Inspect the results, in Blender */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! ==Export the FBX for your base character, and import to UE4== This is the next step, but you need to wait a bit for that... 189960a3f95226159f5342f69bd5d43b8c830dda 1667 1664 2020-02-17T23:10:54Z Assetdk 89 /* But, first import and inspect FBX and MHX2! */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] ===Inspect the results, in Blender=== Now is a good time to save the Blender file. You should save this in the same folder as the FBX and MHX2. I call this file averagedude-base.blend. If you did this approximately as described the result should be munch like below. And you will probably notice that there is some structural differences. You can see that by looking at the small icons [[File:MH-Blender-base-imported-icons.png]], that represent where modifiers, vertex groups and Object data is stored! Specifically the Object data holds the shape-keys and those were not imported. (perhaps because I did not use the correct FBX import options - but the same happens in UE4!). [[File:MH-Blender-base-imported.png]] You will notice that the MHX2 version of your character holds the Object data (the triangle) and that shape-keys can be seen there! e76e29e00a8abb547ae793a46eaa0b2862e3188b 1664 1662 2020-02-17T22:48:33Z Assetdk 89 /* But, first import and inspect FBX and MHX2! */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options. For MHX2 you need to change the setting to match those you see below - when you find they are correct you can click the + sign, marked with a yellow arrow, and save the setting with your own setting-name. (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] 9064f00b7243f460e5f6b90e8651c549e5fa249e 1662 1661 2020-02-17T22:39:57Z Assetdk 89 /* But, first import and inspect FBX and MHX2! */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options, that looks like this: (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) [[File:MH-Blender-FBX-import-options.png]] 7cd2f5cb4fd7cb1395b999a12e57c92cf72929b6 1661 1659 2020-02-17T22:39:23Z Assetdk 89 /* But, first import and inspect FBX and MHX2! */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] When you import your FBX file select/highlight the FBX collection, so the FBX data get imported into that collection. You can use the standard import options, that looks like this: [[File:MH-Blender-FBX-import-options.png]] (You may notice that the character you imported is out of proportions, some 17-18 meters high, we will correct that when we export to UE4!) d7a47905140a48769dec41330f1d5bc9a2031d9b 1659 1658 2020-02-17T22:28:24Z Assetdk 89 /* But, first inspect FBX and MHX2! */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first import and inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] 00affd753b41a38346444d7e474747ec58989178 1658 1656 2020-02-17T22:28:00Z Assetdk 89 /* Use Blender v 2.80 to get more!! */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! ==What will be done here?== I will show you how to: * Import your MHX2 files, to preserve the shape-keys * Export FBX files, so UE4 will import correctly with morph-targets * Apply expressions etc. to your base character * Import these to your Blender file and apply the expressions as '''new shape keys''' ==But, first inspect FBX and MHX2!== As you may remember you exported two files, the FBX file and the MHX2 file. You want to import both of these files into Blender, so you need two Collections, called FBX and MHX2. You right-click on the 'Scene collection' select 'New' and rename the collections to 'FBX' and 'MHX2'... I also added Scene collection and dragged the Camera and Light there (as I deleted the box). After this you should see something link this (the small Icons may be different): [[File:MH-Base-Blender-setup.png]] 75337c20a46af23292bb523fc2147781a5be7df8 1656 1655 2020-02-17T22:05:53Z Assetdk 89 /* Eyelashes and Eyebrow materials */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. ===More materials?=== You can simply drag and drop more textures from the the base-character/textures folder, then duplicate and rename the materials, and apply different textures to the renamed materials. At some point I want to be able to customize/randomize (NPC) characters, but I have not yet done that. Also you can make materials instances with parameters... I will show you howto, but first we need to turn shape-keys into morph-targets. =Use Blender v 2.80 to get more!!= For some reason the exported FBX file is not organized in a way so you will get the shape-keys imported directly to UE4. However when you follow the next steps, you will not get the correct materials imported, so I recommend that you run FBX import as shown above, and save the textures/materials in a separate folder. If you are new to Blender please run a few tutorials specifically on on how to import/export, and also get to know about collections - you can do a lot in Blender and you can get confused! 90054a914c9dfa8bad3051f7069d43f897934009 1655 1653 2020-02-17T21:49:05Z Assetdk 89 /* Export your base-character */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! When you export the FBX use these options: [[File:MH-FBX-export-options.png]] This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. c8b38f2e696d5c421cf22478a69ff1d9364678bf 1653 1651 2020-02-17T21:43:37Z Assetdk 89 /* Eye materials */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] ===Eyelashes and Eyebrow materials=== Likewise you can set up the eyelashes, and the eyebrows are the same only you do not need ''two sided'' for the bows: [[File:MH-UE4-Eyelashes-material.png]] !?You may want to play with the shading model. 13a28c73fa2108a4162473ba99861c016cb56b6d 1651 1648 2020-02-17T21:32:48Z Assetdk 89 /* Import your base-character to UE4 - FBX */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below): [[File:MH-MH-FBX-imported.png]] Your character can look like this (after adjusting materials) - pretty good: [[File:MH-MH-FBX-imported-materials.png]] '''HOWEVER, you have lost the morph-targets! And as you probably noticed, the UE4 standard FBX import do import them!''' I will get back to what to do about the shape-keys... but let make the materials first? ==Makehuman UE4 materials== When you import the FBX made you exported from Makehuman, both textures and materials are made. You will also notice that UE4 will try to match the materials correctly to the material slots, as seen above in the 'Asset Details' of, in my case, averagedude-base (do not worry about the physics and the skeleton yet!). To get you started, we need to take a look at the Eye, Eyelashes and Eyebrow materials... ===Eye materials=== First you can rename the '''high-poly''' material '''high-poly-''blue-eye''''' - or to whatever color you chose! You will probably make more eye materials. Next you can double-click the material, to open the material-editor and change it to look something like this: [[File:MH-UE4-Eye-material.png]] 9d7aa3cab6023b20c528d9c85845e3119800e676 1648 1645 2020-02-17T21:03:25Z Assetdk 89 /* Test export/import your base-character */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Export your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] ===Import your base-character to UE4 - FBX=== The FBX file will actually import directly to UE4, but there are a few problems! You should export your FBX file as Binary FBX, and you will get the most out of it. After this you can get to this result (after adjusting the materials, as seen below: [[File:MH-MH-FBX-imported.png]] e28b7496aea28f31d8b58ce635d4fd3cab84ca1f 1645 1643 2020-02-17T20:24:26Z Assetdk 89 /* Test export/import your base-character */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Test export/import your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] You should also see that there is a sub-folder, called Textures - this is where the different textures are saved and it should now look like this: [[File:MH-Base-Character-Folder-textures.png]] You can now go over all of the different textures, so you will have a wide selection to chose from. Textures are saved every time you save a FBX file! Say, I change the base-characters textures, saved the FBX - and this is what I got: [[File:MH-Base-Character-Folder-textures2.png]] 1da895645fe19efe8da91ffe85254db207946edf 1643 1640 2020-02-17T20:11:01Z Assetdk 89 /* Test import your base-character */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Test export/import your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! This is the result for me, you should see something like this also: [[File:MH-Base-Character-Folder.png]] 93bf8c55ce292d20a6cadc7cf27ea9e6b5bd4f6a 1640 1639 2020-02-17T20:03:11Z Assetdk 89 /* Making a base-character */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! ===Test import your base-character=== You can now take a break - or you can export your work. There are really tree options for you to look at: * Save the FBX file directly * Save a MHX2 file (you may need to install this as a option/utility, find our elsewhere!) * Load the character to '''Blender''' directly via the link (I will get back to what can be done using that!) I suggest that you save your base-character now, in both formats - FBX and MHX2! Make a specific 'Base-Characters' folder, because you will need it! 2c34dcce767e7b4184b5b38b68db269728aa6d94 1639 1638 2020-02-17T19:37:19Z Assetdk 89 /* Making a base-character */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! The smooth button/option: [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! 9cd9774db1e7603cb981c997d4231f8d9e66760e 1638 1636 2020-02-17T19:36:05Z Assetdk 89 /* Making a base-character */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! [[File:MH-Smooth-option.png]] should be unchecked... that will make your character a bit less attractive, but this will preserve the shape-keys! Makehuman comes with some 50-60 '''shape-keys''' and these will all be available as '''morph-targets''' in UE4. I will show you how to make more shape-keys, using makehuman+blender! Now it is time to save your base-character - even though you have made very few changes to the file you should save this file under the save tab and name it <your-name>-base (say averagedude-base), you can even add your very own tag 'base' to this. When you save the file like this you will be able to reload it, and we need that later! 0cd20965cf0684de36dbae634a8284b47c78e70f 1636 1634 2020-02-17T19:20:40Z Assetdk 89 /* What can and can't be done? */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 =Getting started= I wanted a quick way to populate a UE4 game, preferably with an unlimited number of varied characters of high quality. This has proven to be a bit harder than expected. The workflow for making characters is not as trivial as one would want but this guide should make it a bit more easy to do. I will focus on describing the "straight" path from Makehuman and into UE4 - so you will not find too much details about Blender. Please refer to Blender specific pages for more on that. ==Need to know== There are a few terms that you need to know, say you need to know that you will import FBX, textures and other files into UE4. Also you will need to know that a Character consists of a '''Mesh''', a '''Skeleton''' and '''''materials''''' (that refers to textures). I will try to elaborate on these subjects as we go along... ==Making a base-character== Makehuman provides a range of predefined characters that is supposed to work as-is. You can just load a character, export it to FBX and import that into UE4 - and after a bit of work you can have a working player character! There are however a few pitfalls, so I suggest you make one (or more) base-character(s) that you can elaborate on as you go along. I will be working with ''''''averagedude'''''' as my base-character. These are the steps to make the base characters: * Open Makehuman * Select the files tab and load the character '''Under 'Geometries'''' * Remove cloth - (uncheck Hide faces under cloth)! * Remove hair * Add Teeth * Choose Topology (I have no advice on this!) * Chose Eyebrows/Eyelashes, these can be changed as you go along - as can eye colors! * Add Tongue01 (again I have no advice/recommendation on that, yet) '''Under 'Materials'''' - I will show you how to work with UE4 "advanced" materials: * Chose any skin that you like, * Chose any eyes that you like '''Under 'Pose/Animate'''' * Chose Skeleton: Uengine - if you do not have this already you my get it via the community tab? * Chose Pose: Tpose (the last one on the list) * Chose Expressions: none And this is it! But there is one 'important' option you need know about - you need to '''uncheck''' the Smooth button! 3c39e7259513fc502e427ba63c5aefebe3a9c7ef 1634 1633 2020-02-11T09:37:48Z Assetdk 89 /* What can be done */ wikitext text/x-wiki =What can and can't be done?= I have been working on getting different characters into UE4 for some time, and this have been a real hassle! On this page I want to summarize what I managed to get done using a workflow that involves Blender. I have had a focus on not going into much details regarding any of the tools, but you will need to know a few things. Even though this looks like a trivial task there are some pitfalls and also there are some things that can not be done, or I have just not found out how to. I will eventually also add links to all the YT tutorials I found helpful. I found that working with Makehuman very easy, so focus will be very UE4 how to specific. This is what I will cover thus far: * Create and save any MH character in Makehuman. Basic stuff, and important things to avoid. * Getting the character into Blender - import or link? * Setup Blender for Export, shape keys and morph targets * First import into UE4 * Introduction to more shape keys * Get the Cloth working * Mixamo animations This is the stuff that I did not cover - yet: * Animations for talking (other tutorials may help) * Making custom cloth * Hair This is the stuff I can not get to work: * Retargeting to Advanced Locomotion System V3/4 5e86870376ea9b86c3f2805b293fc4ed5ca0f726 1633 2020-02-11T09:20:15Z Assetdk 89 Created page with "=What can be done=" wikitext text/x-wiki =What can be done= 2e0f50c18aff62c5b300fbf0782414a4861cb2c7 Documentation:Saving models for Unreal Engine and how to import them there/ALS 3000 603 1707 2020-03-01T17:06:39Z Assetdk 89 Created page with "=UE4 Advanced Locomotion System= I finally got the animation retargeting working, still there are problems, but this should bring you a step further. ===What was the probl..." wikitext text/x-wiki =UE4 Advanced Locomotion System= I finally got the animation retargeting working, still there are problems, but this should bring you a step further. ===What was the problem== Clearly there is a bug in UE4! During the retargeting we have at least tree elements, the animation, the source skeleton and the target skeleton. (Add to this the retargeting manager stuff for each skeleton.) What happens - at least in theory - is that some bones are used/referred to in the animation, and for each of these bones UE4 must transfer the parameters 1:1, and the result is complied in the new animation. For some reason this went wrong; in some cases UE4 crash due to an array index runs over... and since I know a bit about programming, my guess it that this is a simple case of using the wrong index for the wrong skeleton! In this case it is rather easy to guess that the source skeleton (or perhaps the source animation) have more bones than the target skeleton... likewise, you can guess that things could go OK, if only the target skeleton has more bones than the source! ===Solution - or rater a crude fix!!== Since I was keen on getting on; i simply added some fake virtual bones to the target skeleton! Enough bones so the "source index" would not be higher than the max of the target skeleton area! This is indeed a crude fix, as we can assume that the retargeting process will fail to find any use in those fake virtual bones. Fact is that you can now retarget the '''Advanced Locomotion System V4'''!! ==The next problems== There are still some problems! But these are of a more general character.... I tried to retarget one of the PARAGON characters. And as for the Makehuman/Mixamo characters only a subset of the system is working. IK can be made working, somewhat, following some of the steps shown in the tutorials below - but ALS V4 holds a lot of changes and we need a lot more virtual IK bones, a subject I don't enough about yet.... Since ALS V4 is a very strong product I hope that there will be a better UE4, and perhaps one of us could make one to share? I will share what I got, as soon as I have made it a bit better. Take a look at the older ALS tutorials for "odd" skeletons: {{#ev:youtube|kTrjEeoNi4w}} 697648fc9911807aa0da9fce5b2a919bc82005cd Documentation:Scratch 3000 221 724 705 2016-05-20T11:33:43Z Joepal 14 wikitext text/x-wiki === Application design and Code overview === ==== Structural Organization of MakeHuman ==== MakeHuman is organized hierarchically. There is a root application (type gui3d.Application) that handles rendering of objects (guicommon.Object). These objects can be added/removed to/from the root application. Objects added to root application are always visible in the canvas.[I'm wondering if this is really true? - There are object on hidden tabs and the skeleton or mesh can be visible or not. Am I confusing the distinction between 'canvass' and 'view'? - RWB] Every added object has an openGL counterpart. mhmain.MHApplication inherits from root application to constructmain application. A view is a visual context. A tab is a view, for example, the main application is a view.[The main application IS a view or the main application HAS a view? "the "main application frame/window is a view?"- RWB] The Root application[you do meanrootand notmain? - RWB]contains Categories. A Category (gui3d.Category) is a specialised view object which contains multple taskiew objects (gui3d.TaskView). Taskview objects are specialised view objects with a panes and tab. In context of MakeHuman interface, Category objects constitute the upper row of tabs while taskview objects constitute the lower row of tabs. Objects (guicommon.Object) can be added/removed to/from a taskview. Objects added to a taskview are only visible if the taskview is visible. For example, a skeleton added to the skeleton chooser is only visible when the skeleton chooser taskview is visible. Objects added to root application[root not main? - RWB]are always visible. Thus objects like human and all proxies such as clothes are added to theapplication,because they should always be visible. Visiblilty can be disabled by setting the visibility flag on objects but an object that is not added to a currently visible taskview, or the application, is not visible, even if its visibility flag is set positive. [Wording needs improving -- 'should always be visible' and a 'visibility flag' are mixed message - RWB] An object can only be added to one context. So an object is either added to one taskview, or the application, not two different taskviews. Apart from root application, there is another application (type qtui.Application) which implements MH gui structures using Qtlibraries. mhmain.MHApplication inherits from this application too for handling of gui content.e General structure in MH can be represented as: !IMAGE!Pictures/mh-inheritance.png!/IMAGE! ==== Basics of event handling in Makehuman: ==== Makehuman is a GUI based, interactive, Qt application in which objects interact by sending messages to each other. The Qt class QEvent encapsulates notion of low level events like mouse events, key press events, action events, etc. A Qt application is event loop-based, which is basically a program structure which allows events to be prioritized, queued and dispatched to application objects. In a Qt based application, there are different sources of events. Some events like key events and mouse events come from window system, while some others originate from within application. When an event occurs, Qt creates an event object to represent it by constructing an instance of the appropriate QEvent subclass, and delivers it to a particular instance of QObject (or one of its subclasses) by calling its event() function. This function does not handle the event itself, but rather, it calls an event handlerbased on the type of event delivered, and sends an acknowlegement based on whether the event was accepted or ignored. QCoreApplication::exec()method enters the main event loop and waits until exit() is called. It is necessary to call this function to start event handling. In MH, it is done in lib.qtui.Applicationwhich inherits fromQApplicationwhich in turn inherits fromQCoreApplication: def start(self): self.OnInit() self.callAsync(self.started) self.messages.start() self.exec_() In MH, event handling falls in two broad categories. * Event handling forcontainers(application, categories, taskviews) * Event handling forwidgets(contained in containers) ==== Event handling for containers: ==== MH is organized hierarchically in the context of containers. At top is the main application (core.mhmain.MHMainApplication). It contains categories (core.gui.Category), which in turn contains taskviews (core.gui.TaskView). In a Qt-based application, there are five different ways of events processing, as listed below: * * Reimplementing an event handler function like paintEvent(), mousePressEvent() and so on. This is the most common, easiest, but least powerful approach. * ReimplementingQCoreApplication::notify( QObject * receiver, QEvent * event ). This is very powerful, providing complete control; but only one subclass can be active at a time. Qt's event loop and sendEvent() calls use this approach to dispatch events. * Installing an event filter onQCoreApplication::instance(). Such an event filter is able to process all events for all widgets. It's just as powerful as reimplementing notify(); furthermore, it's possible to have more than one application-global event filter. Global event filters even see mouse events for disabled widgets. Note that application event filters are only called for objects that live in the main thread.[I believe that MH is single threaded - implications? RWB] * ReimplementingQObject::event()(as QWidget does). If you do this you get Tab key presses[<--Explain what is special about TAB and shift-TAB presses ?- RWB], and you get to see the events before any widget-specific event filters. * Installing an event filter on the object itself. Such an event filter gets all the events, including Tab and Shift+Tab key press events[<--Explain what is special about TAB and shift-TAB presses ?- RWB], as long as they do not change the focus widget. In MakeHuman, approaches 2 and 4 are used for extensively for event handling. As part of strategy 2,inlib.qtui.Application (which extendsQApplication), notify has been reimplemented:[I don''t understand the implication of this? Expond? -RWB] def notify(self, object, event): self.logger_event.debug('notify(%s, %s(%s))', object, event, event.type()) return super(Application, self).notify(object, event) object is the receiver object. Class implementing notify has to be singleton. [Clarify? - RWB] In MakeHuman,MHApplicationsubclasseslib.qtui.Application.MHApplicationobject is the main application object. It's notify function receives notification from the event loop in the underlying Qt layer about each[container only or widgets too?]event, which is then relayed to receiver object's event method. Thereceiver object's event method is either inherited from QObject or reimplemented. The Receiver object then either sends TRUE or FALSE, as the case may be, to[WHERE??] - RWB lib.qtui.Applicationalso implements an event function, which is called if the receiver object isMHApplication objectitself. Then,lib.qtui.Application.event()checks if its a user-defined event or not,and it is so true is returned, else we call super class's event(). In case of true being returned,Qt dispatches event to receiver object's callEvent function which determines which function to be called on object to handle the event. Called function then handles the event or propagate it to its parent(or to current task if its application object), as may seem fit. ==== Event handling for widgets ==== Most of MH widgets are wrappers around Qt widgets. These widgets (defined in module lib.qtgui) inherit from the respective Qt widgets and the Widget class (lib.qtgui.Widget). MH makes use ofsignal and slot mechanismby making the connection between the signal originating from the Qt layer and the corresponding handler function. For example, class TabBase connects the signal 'currentChanged' to its function 'tabChanged' as follows: class TabsBase(Widget): def __init__(self): super(TabsBase, self).__init__() self.tabBar().setExpanding(False) self.connect(self, QtCore.SIGNAL('currentChanged(int)'), self.tabChanged) ...................... Any class inheriting from TabsBase(e.g., lib.qtgui.Tabs or lib.qtgui.TabBar) also gets this facility. So now whenever signal 'currentChanged' is emitted from Qt layer function 'tabChanged' is called. The result is that when a user clicks the mouse on a tab, the 'tabChanged' code will be called, Similarly, MH Slider widget connects various slider operations to its event handling functions as: ........................... self.connect(self.slider, QtCore.SIGNAL('sliderMoved(int)'), self._changing) self.connect(self.slider, QtCore.SIGNAL('valueChanged(int)'), self._changed) self.connect(self.slider, QtCore.SIGNAL('sliderReleased()'), self._released) self.connect(self.slider, QtCore.SIGNAL('sliderPressed()'), self._pressed) ........................... [-- EDITING/PROOFING ENDS HERE - RWB --] ==== Overriding vs event decorators: ==== The View, Category and Application classes inherit from events3d.EventHandler, hence they have callEvent() function. The events that apply to this category are usually application-wide. If user make a change that impacts the whole application, and whole application must know about this change, then best way to do so is to call callEvent() for all the taskviews of the application,as follows: for category in self.categories.itervalues(): for task in category.tasks: task.callEvent('onMyEvent', params) A good example is the event of makehuman's scene changing(core.qtui.MHApplication._sceneChanged). So when callEvent is called on a taskview object and it has onMyEvent implemented,it is being called. In core.gui3d.View too one can see that most of the events (onShow, onMouseDown,...) on the taskview are propagated by default to their parents - the categories. The categories also are views, so the events are propagated again to their parent, the application. If, again, the application or any category has an onMyEvent method, it is executed. There are some events that affect the application, but only a single task at a time,for example onMouseDown event. It only happens to the active taskview (the others are hidden, so they receive no mouse events). Once the mouse is pressed, an Application.currentTask.callEvent("onMouseDown", event)is issued. This causes the onMouseDown event to be received by the active Taskview, its parent Category, and finally the Application. This call executes any onMouseDown method in these objects. Apart from the Category events described above, there are events used for local purposes. Such events are handled withevent decorators. Suppose we have a new Taskview, FooTaskView. This Taskview has a 'mybar' member variable, which is of type Bar(events3d.eventHandler). The requirement is that when self.mybar executes code, we may want to communicate with its parent to inform it about an event that just happened. So, inside the code for Bar, is located a 'self.callEvent('onBaz', 42)' command. Thus, in the Bar class, we emit a timely event signal and use the event decorator to let the parent Taskview know about the event. In the FooTaskView class, but below the place where self.mybar is created, we add: @self.mybar.mhEvent def onBaz(event): # code on event. # guess what, event == 42. When now the self.mybar Bar reaches that callEvent, the above method, located in FooTaskView, will be executed. core.mhmain.MHApplication's human is perfect example of this approach.Human has onMouseDown event handler and we need to relay it to application. In loadMainGui function of MHApplication, we add decorator to human attribute as: def loadMainGui(self): .............. @self.selectedHuman.mhEvent def onMouseDown(event): if self.tool: self.selectedGroup = self.getSelectedFaceGroup() self.tool.callEvent("onMouseDown", event) else: self.currentTask.callEvent("onMouseDown", event) ............. Application.human.onMouseDown event is caught and it starts its trip from the Human; it is captured by the decorated method located in Application.loadMainGui (this is the place where the method is bound with the event), it is sent to the currentTask, propagated through the parent category, and finally reaches its destination, the Application. A more intense process happens on Human.onChanged. This is emitted when a save/load happpens, so the whole application has to know. So it starts from the human, captured by the decorated method in app, sent to ALL the taskviews in MH, and finally through the categories again to the app. ==== The MakeHuman Graphical User Interface (GUI): ==== The MakeHuman GUI is based on the pyQt library which, in turn, is built on the Qt library. Qt is a development framework for the creation of applications and user interfaces for desktop. Important GUI classes in MakeHuman are: lib.qtui.Canvas:This is the class in MakeHuman which takes care of rendering openGL graphics.It inherits from Qt's QGLWidget class which is a widget for rendering OpenGL graphics. QGLWidget provides functionality for displaying OpenGL graphics integrated into a Qt application. It is very simple to use. You inherit from it and use the subclass like any other QWidget, except that you have the choice between using QPainter and standard OpenGL rendering commands. The Canvas class reimplements three functions from parent class to perform openGL tasks: * paintGL() - Renders the OpenGL scene. It gets called whenever the widget needs to be updated. * resizeGL() - Sets up the OpenGL viewport, projection, etc. Gets called whenever the widget has been resized (and also when it is shown for the first time because all newly created widgets get a resize event automatically). * initializeGL() - Sets up the OpenGL rendering context, defines display lists, etc. Gets called once before the first timeresizeGL() orpaintGL() is called. lib.qtui.Application: This is the foundation class which manages GUI's control flow and main settings. It inherits fromQtGui.QApplicationandevents3d.EventHandler. QApplicationcontains the main event loop, where all events from the window system and other sources are processed and dispatched. It also handles the application's initialization and finalization.Application class holds gui main window(instance of lib.qtui.Frame). Application class receives event notifications from underlying Qt user intrface framework and dispatches them to appropriateuser intrface elements in MakeHuman. GUI architecture inMakeHumanMH can be depicted as follows: !IMAGE!Pictures/mh-uiarchitecture.png!/IMAGE! === Application Design Notes from IRC Chat with Thanassis === Thanasis comments on gaining the big picture of MH coding * [16:12:57] <Thanasis> I would avoid describing the different parts of code as different entities * [16:13:43] <Thanasis> ie. follow the object-oriented paradigm, and avoid thinking who is inherited by who etc. * [16:13:48] <Thanasis> more specifically * [16:15:03] <Thanasis> I mean, treat an object as a single object * [16:15:08] <Thanasis> I'll show an example * [16:15:45] <Thanasis> you have the application. Inheritance says it consists of three classes, QApplication, MHApplication, and mhmain.Application (names may differ a bit). * [16:15:58] <Thanasis> but it is only one object * [16:16:42] <Thanasis> We don't care if the QApplication activates a function in MH application, because it happens inside the same object * [16:16:50] <Thanasis> the application * [16:17:18] <Thanasis> we only pay attention to the interactions the application object has with other objects * [16:17:43] <Doctor_Hell_> but if you need to find a function, you need to follow the inheritage chain...no? * [16:18:24] <Thanasis> of course, in the code, yes. but in a diagram it will make it complex * [16:21:02] <Thanasis> well, let's go top-down * [16:21:29] <Thanasis> we have: QT, App, Tab, Task * [16:21:56] <Thanasis> The event starts from QT, and activates a handler in App * [16:22:22] <Thanasis> The App sends a new event to the current Task * [16:22:46] <Thanasis> The task handles it, and sends a copy to the parent Tab * [16:23:13] <Thanasis> And finally the Tab handles it and sends a copy to the App * [16:23:35] <Thanasis> which handles it, and stops * [Referring to how distrating it is to describe the big picture of MH, Thanasis comments ...] * "Distract? no, this does not consume any brain energy" * We love your help- the more the bettter -- Thanks [RWB] Comments Regarding MacroTarget slider processing/handling based on naming conventions: * [16:36:24] <Doctor_Hell_> [23:26] <Doctor_Hell_> another complex part to know is the engine coded by Jonas to automatically handel the targets using their name * [16:37:58] <Thanasis> uh. yes, that's a tough one too. I think it does, but I don't remember why and how, because it was a long time ago and Jonas changed the human modifier class since then * [16:38:18] <Thanasis> he simplified it, actually, but I haven't seen the new version yet * [16:38:34] <Doctor_Hell_> where is the code? * [16:38:49] <Thanasis> apps/humanmodifier.py, I think * [16:39:01] <Doctor_Hell_> Jonas should be very busy recently, since I asked him but he didn't reply me yet. * [16:42:37] <Thanasis> um by the way, reading humanmodifier alone won't help a lot. I would suggest starting from the macro plugin, to trace what happens when a slider is created, and when the user moves a slider. It might be easier this way Difficulties in understanding relationships between folder names / module names and the object structure * [16:39:36] <Doctor_Hell_> ANother thing to understand is why we have some code inapps, other incore, other in libs..the logic is not clear for me.. * [16:39:52] <Thanasis> ah, ignore logic in that part. :) * [16:40:20] <Thanasis> as far as I know it is all because of mh history so far * [16:40:29] <Thanasis> the way it developed. * [16:40:56] <Doctor_Hell_> I know some of it * [16:41:24] <Doctor_Hell_> in the early times,it was planned to have a core folder, with all important main files * [16:42:03] <Doctor_Hell_> then anapps folder, to contain many application based on the core files: makeHuman, makeANime, MakeToon, etc.. * [16:42:29] <Doctor_Hell_> butsharedandlibswere added later...I don't know why * [16:43:10] <Thanasis>libs, they are classes imported from c++ directly * [16:43:48] <Doctor_Hell_> ah ..so only the "shared" folder is the mystery * [16:44:04] <Thanasis> shared, they are later classes used by many different parts of the code at the same time * [16:44:15] <Thanasis> classes created later* * [16:44:28] <Thanasis> ie. material. It's used literally everywhere * [16:44:32] <Thanasis> progress too * [16:44:58] <Doctor_Hell_> ok..at least now it make sense, thank you * Comments on New API project * [16:45:39] <Doctor_Hell_> now that you have more time, will you look at the API? * [16:46:55] <Thanasis> 'time' != 'creativity'. I expect it will be easier to me after the start of the semester * [16:46:27] <Doctor_Hell_> if you are logged to MH site, you can see this:!LINK!http://www.makehuman.org/blog/the_makehuman_api_project_mhapi.html -- http://www.makehuman.org/blog/the_makehuman_api_project_mhapi.html!/LINK! * [16:47:02] <Doctor_Hell_> Also Joel has already created this:!LINK!https://bitbucket.org/joepal1976/makehuman-api-project/overview -- https://bitbucket.org/joepal1976/makehuman-api-project/overview!/LINK! * [16:48:52] <Doctor_Hell_> at the moment, you can just post a list of wished api in the issue 534 * [16:49:16] <Doctor_Hell_> we want to start the API in few weeks..they are fundamental, in order to have more contributors... * [16:51:05] <Thanasis> oh, boy. I want to clean up this code!LINK!https://bitbucket.org/joepal1976/makehuman-api-project/commits/aa5c12953fb2c8a1723b21bb0b7d90667653d615 -- https://bitbucket.org/joepal1976/makehuman-api-project/commits/aa5c12953...!/LINK!* ​Go for it? [RWB] :) The Doc_Hell Diagram (green and red arrows that even Glynn couln't understand) [Summary - concentrate on green arrows not red arrows to get the big picture] * <Doctor_Hell_> this is an example of bad diagram:!LINK!https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0 -- https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0!/LINK! * [16:52:48] <Thanasis> well, in your shape, the actual thing is about the green arrows * [16:53:19] <Thanasis> the red arrows could have been implemented in hundreds of different ways * [16:53:44] <Thanasis> but the important is their result, the green arrows * [16:53:53] <Doctor_Hell_> talking about how to draw the objects? * [16:54:26] <Thanasis> well, my idea was, do two shapes * [16:54:36] <Thanasis> the first without code * [16:55:10] <Thanasis> only showing the 5 steps like I explained above, ie, the green arrows * [16:55:28] <Thanasis> the second can explain each step in detail using the red arrows * [16:55:50] <Thanasis> but in any case the definition is the following * [16:56:04] <Thanasis> an event is, you send the name of a method to someone * [16:56:14] <Doctor_Hell_> ok...but also we have the description written by Manish. I'll show you it tomorrow * [16:56:21] <Thanasis> and that someone executes that method of theirs * [16:56:47] <Thanasis> sure, there are many ways to describe it * [16:57:00] <Doctor_Hell_> I hope we can find the best one * [16:57:07] <Thanasis> I think that they all match though in some certain key points * [16:57:52] <Thanasis> if these are filtered out, the explanation may be more simple And touching on API ideas ... * [16:59:09] <Doctor_Hell_> since the core is too complex for average python programmers * [16:59:36] <Thanasis> yes... perhaps the code could be organized in tiers. * [17:00:00] <Thanasis> core, classes, plugins, scripts * [17:00:27] <Doctor_Hell_> ah you are talking of the current code, not the simplified api * [17:00:54] <Doctor_Hell_> yes, it's a good idea..but what group under "core" ? * [17:01:25] <Thanasis> theapplication and its interfaces(ie.communication with the system and devices. QT, GL etc.) * [17:01:59] <Thanasis> classes are abstract, they use the application by calling its methods * [17:02:35] <Thanasis> the application uses the interfaces (QT, GL.these are actually harder than the application andcould be a sepparate tier) * [17:02:54] <Thanasis> thepluginsuse the classes to create objects * [17:03:26] <Doctor_Hell_> I see some possible confusion because: * [17:04:24] <Doctor_Hell_> - not all core modules are into core folder (for example qtui and qtgui are in libs) * [17:04:49] <Doctor_Hell_> - Classes are everywhere * [17:05:07] <Thanasis> yes, libs folder consists of both core and classes... indeed * [17:05:23] <Thanasis> andinterfacestoo * [17:06:51] <Thanasis> but in general, this separation exists somehow. I'm not sure how, but the past programmers instinctively created it, perhaps for better manageability * [17:08:14] <Thanasis> ie. Human is a class, Material too, Armature (probably making name wrong again), and to function I observe that they use callbacks of Application * [17:08:38] <Thanasis> They never use interfaces directly * [17:09:46] <Thanasis> Even for drawing the human, it is the Application that will give the Human's object3d to OpenGL, not the Human directly * [17:10:31] <Thanasis> and plugins use classes ie. they use the callbacks that Human, Material etc. have * [17:11:08] <Doctor_Hell_> Do you mean abstraction classes? * [17:13:27] <Doctor_Hell_> Thanasis: about new API:!LINK!http://bugtracker.makehuman.org/issues/534 -- http://bugtracker.makehuman.org/issues/534!/LINK! * [17:13:42] <Doctor_Hell_> and!LINK!http://bugtracker.makehuman.org/projects/makehuman/wiki/Abstraction_API_for_plugins -- http://bugtracker.makehuman.org/projects/makehuman/wiki/Abstraction_API_...!/LINK! * [17:13:57] <Doctor_Hell_> Feel free to add wished api calls === Q & A with Glynn Clements === Question: For an event when user clicks on a tab, Tabs class method tabChanged is called. QTabWidget documentation.There is no such method. Response: The tabChanged method is defined for qtgui.TabsBase (and overridden for qtgui.Tabs). Both qtgui.Tabs and qtgui.TabBar inherit from qtgui.TabsBase. Tabs inherits from both TabsBase and QTabWidget while TabBar inherits from both TabsBase and QTabBar. Both QTabWidget and QTabBar define the currentChanged signal, which is emitted whenever the current tab changes. The TabsBase initialiser connects this signal to the tabChanged method (lib/qtgui.py:109): class TabsBase(Widget): def __init__(self): ... self.connect(self, QtCore.SIGNAL('currentChanged int)'), self.tabChanged) ========================================================== Question: is it true that qtui module: low level module, that handles signals directly from QtCore, QtGui and QtOpenGL? Response: qtui defines the classes for the application (QApplication subclass), main window QMainWindow subclass), drawing canvas (QGLWidget subclass), and some associated support classes. In other words, it implements the high-level UI, or at least the aspects which are tied to Qt. Question: is it true that qtgui module: low level module, that define the basic widgets of the GUI as buttons, radiobuttons, etc.. Response: Yes; qtgui is essentially a compatibility layer between the Qt widget classes and the legacy MH GUI toolkit. The classes provide methods which more closely mimic the behaviour of original gui3d widgets. Qt events are translated to MH events3d events. Question: Is it true that gui3d module: high level module, that define the principal public classes of MakeHuman: Application, Category, TaskView and View. Response: This is what's left of the legacy MH GUI toolkit. Before the move to Qt, everything was a "View". Now it's just the high-level containers (Application, Category, Task) which exist as somewhere to put event handlers. Question: What is the purpose of the module guicommon.py? Looking at the module name, it appears to be a sort of library for the GUI functions, but it's a completely different thing. What is it really? Response: Object used to be part of gui3d. Its primary function is to be the base class for Human. It's the other main subclass of events3d.EventHandler (the first being gui3d.View). It's not really accurate to call it a "wrapper" around Object3D (although it can have instances of both module3d.Object3D and object3d.Object3D as members). One of the main differences between guicommon.Object and module3d.Object3D is that the latter is a single mesh, while the former has up to four meshes (all of type module3d.Object3D): the base (or "seed") mesh, a proxy mesh, a subdivided mesh, and a subdivided proxy mesh. It [guicommon.py or guicommon.Object ??RWB] also contains an object transformation (location, rotattion, scale) [method?], and optionally a display mesh (object3d.Object3D). As a subclass of EventHandler, it [guicommon.Object ??RWB] provides mouse handlers which propagate the event to the object's view (these are overridden for the Human within MHApplication.loadMainGui). Question: G.app is the singular mhmain.MHApplication instance; the callEvent method (inherited from event3d.EventHandler) will end up calling G.app.onMouseDownCallback. How the function callEvent end up calling G.app.onMouseDownCallback? Response: "direction" will be either onMouseDownCallback or onMouseUpCallback. Note the "Callback" suffix. So typical event flow for clicking on the human model is: G.app.mainwin.canvas.mouseUpDownEvent ("onMouseDownCallback") [Canvas.mouseUpDownEvent] G.app.callEvent("onMouseDownCallback") [EventHandler.callEvent] G.app.onMouseDownCallback() [gui3d.Application.onMouseDownCallback] G.app.selectedHuman.callEvent('onMouseDown', event) [EventHandler.callEvent] G.app.selectedHuman.onMouseDown() [local function in MHApplication.loadMainGui] G.app.currentTask.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.currentTask.onMouseDown() [View.onMouseDown] G.app.currentCategory.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.currentCategory.onMouseDown() [View.onMouseDown] G.app.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.onMouseDown() [MHApplication.onMouseDown] Notes: G.app.currentTask.parent == G.app.currentCategory G.app.currentCategory.parent == G.app Question: is the eventType string (also called 'direction') originated by QT? Response: No. "direction" is just so that code which is common to both mouse press and mouse release events can go into a single method (mouseUpDownEvent) rather than duplicating it in mousePressEvent() and mouseReleaseEvent(). Those functions are identical except for the name of the event passed to callEvent. Bear in mind that self.callEvent("onMouseDown", event) is almost the same as self.onMouseDown(event), except that callEvent forces a redraw after the event has been dealt with, and has some support for logging and profiling. Once you strip that away, the guts of callEvent() is just: method = getattr(self, eventType) method(event) ====================================================================== Question: Can the modularization of the code can be improved? Response: Modularisation is already quite good. Too much of it can make the code harder to understand. Currently, we try to avoid importing OpenGL or Qt modules (directly or indirectly) into modules which don't inherently depend upon them (e.g. guicommon.Object imports object3d locally in the attachMesh and detachMesh methods, so it only gets imported if you actually need to render the object). TODO ACTION. One minor point which I noticed: lib/camera.py imports glmodule solely for the queryDepth() call in convertToWorld2D (the Z coordinate is obtained by retrieving a value from the depth buffer using the X,Y coordinates). This should probably be a local import in that method, so that camera.py could be used in e.g. import/export utilities. ========================================================================== Question: [Referring to DocHell's red and green diagram (!LINK!https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0] -- https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0]!/LINK!] Response: I have no idea; I can't follow that [diagram]. It would probably help if you simply ignore CallEvent(), and treat object.callEvent('method',event) as just object.method(event). The two factors which make following the flow slightly complicated are: Methods aren't always defined within the class used to create an object, but may be inherited from one of its base classes. Event handlers may be dynamically added to an object with the mhEvent method (which is usually invoked using Python's decorator syntax). This is done for the Human object in MHApplication.loadMainGui(): @self.selectedHuman.mhEvent def onMouseDown(event): .... If you aren't familiar with the decorator syntax, the above is equivalent to: def onMouseDown(event): ... self.selectedHuman.mhEvent(onMouseDown) which in turn boils down to: def onMouseDown(event): ... self.selectedHuman.onMouseDown = onMouseDown ================================================================================= Question: Could you provide an explanation of what a weak reference is? How might this impact MakeHuman? Response: [Jonas Hauquier ] A weak reference, one that is not accounted for by the garbage collection. Garbage collection removes objects from memory that have no pointers to them anymore. Weakrefs are not counted among those, so if the object has only weakrefs pointing to it, and not real pointers, it will be removed anyway. This is to make sure that object A and B that always point to each other, are not kept in memory just because they keep referencing each other (I believe the garbage collection does not do expensive graph traversals to check what is still referenced by the active context). [Glynn Clements] Sort of. Python uses both reference-counting (which can't handle circular references) and reachability-based garbage collection (which can). If an object's reference count reaches zero, it will be finalised immediately. But an object with a non-zero reference count can still be finalised if it can be determined that it isn't reachable during a garbage-collection sweep. However: the garbage collector won't attempt to finalise reference cycles if any of the objects in the cycle have a __del__ method, as it can't determine a safe order in which to execute them. Instead, it adds them to a list, accessible as gc.garbage. Application code can inspect this list, manually finalise the objects (which should break the cycles), then remove them from the list (otherwise their presence in gc.garbage will itself constitute a reference). It's possible to have the garbage collector report such cases using gc.set_debug(gc.DEBUG_UNCOLLECTABLE). Only a few MH classes contain __del__ methods. These will only present a problem if the object itself is part of a cycle (i.e. contains references to "complex" objects which themselves contain references which could lead back to the original object). "Leaf-node" classes such as Texture and Shader shouldn't present a problem unless their creators attach additonal references to them. This may be an issue for e.g. qtgui.Slider and qtgui.RadioButton, as these have __del__ methods and will naturally create circular references. Use of weakref may be advised here. Similarly for queue.Thread. SceneItem in plugins/7_scene_editor.py may also be a problem. ============================================================================= Question: Could you clarify wherther the following acurately describe the use of decorators? A basic decorator is a function that: 1) Gets a function "A" as argument 2) Modifies the behavior of "A" 3) Returns a "decorated" version of "A" Response: Correct. Question: Topic: Decorators and side-effects. When is a decorator not about generating a function? So, if the above accurately descibes a decorator, consider the code: @self.selectedHuman.mhEvent def onMouseDown(event): This should translate: onMouseDown = self.selectedHuman.mhEvent(onMouseDown) One would expect that using mhEvent as decorator, it returns a function, but instead, it returns None: def mhEvent(self, eventMethod): self.attachEvent(eventMethod.__name__, eventMethod) How can it be used as decorator? Response: Because the returned "function" isn't actually used anywhere. The definition is local to loadMainGui(), which doesn't reference the functions, so the fact that e.g. onMouseDown is None within loadMainGui() doesn't matter. The mhEvent() method is used for its side-effects, not its return value. It attaches an event to the selectedHuman. It is equivalent to: self.selectedHuman.attachEvent(onMouseDown.__name__, onMouseDown) ============================================================================== == Packager's notes == Notes for packagers of Makehuman stables and nightlies. === Packaging RPM's for Suse/Fedora using Open Build Service (OBS) === The Open Build Service is a service formerly known as the Opensuse build service. OBS allows packagers to build packages for several targets. Here a target is a particular OS version E.g. Suse 13.1, Suse 12.3, Fedora 20 , Ubuntu 14.04 and so on. OBS being a build system by itself can be hosted anywhere even on local infrastructure. For MakeHuman packages we use the OBS instance hosted by Novell at build.opensuse.org This document will briefly outline the typical packaging workflow for Suse and Fedora. Both distributions use the RPM format and subsequently adhere to RPM's packaging rules. !IMAGE!Pictures/obs-flow-chart-scaled.png!/IMAGE! === 1) Prepare source tarball: === OBS does not allow pulling from the internet once the rpm is being processed into a package so. When creating the source tarball you should assemble it either on your own computer or a server online (even a VPS will do). There are several Important files and scripts which are of interest to us. One is build_prepare.py this assembles the main folder and all the common data which is needed by all OSes be it Mac or LInux distros or windows. This script is essential to run. Then there is build_rpm.py. We borrow some of the initial code in this and use it on our bash script but we do not build the whole RPM because OBS does that. Another third inportant file is build.conf (this stores the configuration used by build_prepare.py to make the source tarball). Using the above scripts/files I prepared a Bash script which is shown below. The above script assumes the following: * You have cloned MakeHuman's Mercurial (Hg) repo into your home directory and it is located at ~/makehuman (cloning into ~/ automatically makes the makehuman folder) * You have python , numpy and pyQt4 installed (package names may vary from distribution to distribution) * You are running on a LInux distribution. * You want to prepare a source tarball from Hg tags. * $VERS is the latest user specified stable tagged version * makehuman-$VERS is your destination folder where all files are copied * the final tarball uses bzip compression. How the tarball is compressed is significant as RPM accepts only certain compression algorithms. The resultant file is makehuman-$VERS.tar.bz2 (E.g. makehuman-1.0.2.tar.bz2) * You use an FTP server whose file path is located at /var/ftp you can skip this step if the script is run locally by commenting the lines out. ​Explanation of the above script: In the first section we use Hg and extract available tags and ask the user for input on which stable tag he/she wants to build against. In the second section we automatically create the build.conf file which is used to specify if we want a release or development folder. Here we set isRelease=True In the third section we use build.conf along with build_prepare.py this creates a basic non-OS specific folder in home (~/). In the fourth section we copy extra files such as the .desktop file and the makehuman icon file, the shell wrapper for MakeHuman and remove the .bat file which is not needed in linux. Currently there is a bug where command line arguments are not passed by the shell wrapper to the python executable. We fix this by manually editing the file automatically in our bash script before copying it into the target folder to be tarballed. This is moved into the folder created earlier by build_prepare.py . With this we now have have a folder with all the basic requirements needed for packaging. FInally the folder is then tarballed and it is ready for upload to OBS. If you are not using an FTP server then comment out the “mv” command which moves the tarball to /var/ftp in the shell script above. IN some distributions the FTP directory is /srv/ftp === 2) Upload the tarball to OBS === The next step is to upload the tarball to OBS. Firstly you need to create a username and password. Then login to build.opensuse.org and create a project. On account creation you get your own home directory. Two interfaces exist to OBS. One is the command-line interface which is available by installing the package "osc" it is available in most distributions. The other one is the Web User interface. Both are equally useful the command line interface is better for doing certain tasks however. OBS also has a feature called “ services”. Several services are available such as services to pull from various sources e.g. FTP servers online, services to tarball the version controlled sources directly (tar_scm). You can make use of these _services (they are defined using XML notation in "_service" files). Read!LINK!”http://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService” -- Source Services!/LINK!; or you can manually upload your tarball through the Web UI or use the "osc" command line utility. To learn how to use the "osc" utility use "man osc" or view the manpage online. I would not recommend using _service files to pull the tarball as they can stop working. It is better to manually push the tarball to OBS. Either by pressing the upload button on the Web UI or placing the tarball in your project home directory created by using the “osc checkout” command. Then typing “osc ar” (add /remove) and finally “ osc commit -m ”put commit description here” “ to push and commit the changes you just made. You can also automate the above process by adding lines to the shell script but It is better to administer osc separately and manually to allow for more control. === 3) Prepare the spec file: === A .spec file is a special file which is used to build RPM's. It “contains information required by RPM to build the package, as well as instructions telling RPM to build it. The spec file also dictates exactly what files are a part of the package, and where they should be installed. The RPM specification is very well defined and it is fundamental than any packager develop a strong base in the fundamentals.” (taken from “Maximum RPM”) A very important book detailing the various capabilities of RPM is!LINK!”http://www.rpm.org/max-rpm/” -- Maximum RPM!/LINK!. This is a must read for any packager and will help in understanding the spec file shown below. If you have not read it please bookmark the page and give the book a read. I cannot stress how important it is. In OBS we have 2 main OS's which use RPM's as build targets Fedora and Suse. RPM provides macros to make packaging more standardised and easy. Most Macros are common however some are distribution specific. Below is the spec file used by the Makehuman project. For version 1.0.2. The above .spec file follows the general structure and format of spec files as per the RPM specification. The spec file has been formatted for for OBS by running “osc service localrun format_spec_file” then reading the contents to ensure that nothing went wrong and committing the changes back to OBS. In the above spec file we have split MakeHuman into 2 subpackages and made them depend upon each other to ensure consistency. As you can see there are 2 sources one is the tarball we created with our bash script earlier and there is another file called "makehuman.1" this is a manpage. In the spec file instructions are issued to gzip it and put into the manual directory on install. The manpage (Source101 in the .spec file) is shown below. How man pages are created is out of scope of this document. Man pages use gtroff. There are however ample resources online which can help with this. The .spec file has been commented to provide you with a better understanding of what is done at various stages. Once the .spec file has been updated on OBS it automatically triggers a rebuild duribg that time you can monitor the status of the build process and correct errors in your spec file or sources as they arise. === 4)Pushing changes to the official repositories === Once you are satisfied that your package is stable you can make a submit request to submit the package from the Web User Interface or run the command below. In the above command we submit the “makehuman” package to the OpenSuse “graphics” project. After this the package is reviewed by the maintainer of the graphics project and approved or rejected with comments given. You will receive an email after the project has been reviewed. Notes: * The .spec file and the manual page will change over time. The above is there for illustration purposes only. * You can find copies of the most recent stable .spec file and makehuman.1 manpage!LINK!:https://build.opensuse.org/package/show/graphics/makehuman: -- here!/LINK!. This is the stable version after a "submit request" to the official Suse repositories. 02349cd71a44b476c9e2fba31c8da9b2390570e6 705 687 2016-05-20T11:11:24Z Joepal 14 wikitext text/x-wiki === GUI languages and translations. === Our GUI is available in many languages, but translations are not yet complete. Anyway now contributing in order to add a new language is very easy, since the MakeHuman project is now available for translation on!LINK!http://www.transifex.com/organization/makehuman/ -- Transifex!/LINK!. !IMAGE!Pictures/languages.png!/IMAGE! Transifex is a web application for localization in an easy and agile way. !IMAGE!Pictures/transifex.png!/IMAGE! If you want to help the MakeHuman project by translating the GUI into your language, you first need to create an account on Transifex. Then, when logged in, you can go to!LINK!https://www.transifex.com/projects/p/makehuman/ -- the MakeHuman Transifex page!/LINK!and click on the appropriate language you want to translate. Then click the "Join team" button. Now you can click the current release name (for example "Alpha 8") entry and click "Translate now". If you want to make a translation in another language that is not yet listed, click "request language" on the!LINK!https://www.transifex.com/projects/p/makehuman/ -- MakeHuman transifex page!/LINK!. We will make sure to accept it as fast as possible, so you can start translating. Translating is quick and easy. You can select the "Untranslated strings" filter to show only the things left to translate. Click the first word on the left, and in the center of the screen enter your translation in the input box. When done typing, simply press the TAB button on your keyboard, and it automatically goes to the next entry. Repeat this process untill everything is translated. You can leave things open you are uncertain about, and leave them for later. Perhaps others know a good solution. You can interrupt your work at any time and continue working later, or leave it for others to finish. If you already have a translated file on your hard disk (for example you made modifications to an already existing language .ini file of MakeHuman, or you have filled in a .missing language file), you can upload it as translation and Transifex will automatically include it in the translation. You will be also able to download the json file of your language, in order to put it in makehuman/data/languages. On restarting MakeHuman, the new language will be available as an option under "Settings". === MHBlenderTools: MakeWalk basic workflow === MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ==== Retargeting: how it works ==== The goal of retargeting is to transfer a motion from a source armature (e.g. from a BVH file) to a given target armature (e.g. the MHX rig). However, it is not straightforward to assign the source action to the target rig, even if the bones have identical names. The motion of each bone is specified in local coordinates, relative to the parent and the bone's own rest pose. If the rest poses of the source and target armatures differ, the source F-curves can not be used directly by the target armature. !IMAGE!Pictures/makewalk-1.png!/IMAGE! The picture above shows a transformation in the local coordinate system. Since the parent's local Y points along its axis and its local Z points up, the child bone is rotated around the local X axis. This is not very useful if the target armature has a diffent rest pose. To retarget the pose, we therefore reexpress the transformation in the global coordinate system, as shown below. The local X rotation corresponds to a global Y rotation, and by a different angle. Once the global transformation matrix is known, we can reexpress it in the target bone's local coordinate system. The retargeting process thus consists of making two coordinate transformations: Source local => Global => Target local. This will ensure that the source bone and the target bone will have the same global orientation. !IMAGE!Pictures/makewalk_2.png!/IMAGE! Unfortunately, things are a little more complicated. We do not always want the source and target bones to have identical orientation. In particular, the root or pelvis bone may point in entirely different directions in different armatures. E.g. in the CMU armature rest pose the pelvis points forward-down, and in the MHX rig it points straight up. !IMAGE!Pictures/makewalk-3.png!/IMAGE! If we insisted that the root bone in the MHX rig would point in the same direction as in the CMU rig, the retargeting would not be very successful, as shown in the figure above. If we instead keep the rotation offset from the rest poses, the target pose becomes much better, as shown below. To calibrate the source and target armature against each other, MalkWalk introduces extra keyframes at frame 0, where both armatures are posed in T-pose. !IMAGE!Pictures/mcp-ret-060-calibrate.png!/IMAGE! In the rest of the animation, bones in the target armature copy the global rotations of the source armature, apart from differences present in the T-poses. In this way we can transfer animations from CMU to the MHX rig, despite the fact that the rest poses are very different. ==== Basic Workflow ==== === Retargeting === The MakeWalk panels appear in the tool shelf whenever an armature is the active object. Select the armature and press the Load And Retarget button. In the file selector, select the .bvh file. We choose the file 90_04.bvh from the CMU database. It is a cartwheel animation. !IMAGE!Pictures/makewalk-4.png!/IMAGE! After a short wait, the armature is doing gymnastics. !IMAGE!Pictures/makewalk-5.png!/IMAGE! At frame 0 of the animation the armature has been placed in T-pose. This is not part of the originial .bvh file, but inserted by MakeWalk to calibrate the source armature (defined by the bvh file) and the target armature (the selected armature in the viewport) against each other. === Supported armatures === MakeWalk works with most straightforward biped rigs with FK arms and legs, such as the Rigify meta-rig. There is also built-in support for some more complex rigs: the MHX advanced rig from MakeHuman, the MHX rig from MakeHuman and Rigify. !IMAGE!Pictures/makewalk-6.png!/IMAGE! It is often possible to use MakeWalk with other complex rig, but in that case the automatic bone identification may fail. If so, a bone map must be defined manually, see!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining a Target Rig Manually!/LINK!. === Troubleshooting === Retargeting is a rather involved subject, and it can sometimes result in poor motion. The process may even fail completely, usually because MakeWalk failed to automatically identify the bones of a complex rig. If this should happen, see!LINK!http://www.makehuman.org/doc/node/makewalk_errors_and_corrective_actions.html -- Errors and Corrective Actions!/LINK!. ==== Where to find BVH files ==== There are several different formats that mocap files can be stored in. MakeHuman's mocap tool can only deal with files in Biovision BVH format. BVH files can be bought from many commercial sources, but a large range of mocap files are also available for free download. Here are some sites I found useful. * CMU Graphics Lab Motion Capture Database: Hosted at Carnegie-Mellon University, this is a huge library of mocap files which can be downloaded for free. The web address is!LINK!http://mocap.cs.cmu.edu/ -- http://mocap.cs.cmu.edu!/LINK!. CMU hosts mocap files in three formats: tvd, c3d and amc. However, the mocap tool can only read BVH files, so none of these files can be used directly. Fortunately, B. Hahne at!LINK!http://www.cgspeed.com/ -- www.cgspeed.com!/LINK!has converted the CMU files to BVH. The converted files are located at!LINK!http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture -- http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture!/LINK!. * Advanced Computing Center for the Arts and Design (ACCAD): Hosted at the Ohio State University, this is another great source of free mocap files. BVH files can be downloaded from!LINK!http://accad.osu.edu/research/mocap/mocap_data.htm -- http://accad.osu.edu/research/mocap/mocap_data.htm!/LINK! * Eyes Japan (mocapdata.com):This is a Japanese company that sells mocap data commercially, but they also offer a huge number of motions for free. According to their homepage, mocapdata.com provides 744 premium motion data and 4197 free motion data. The only catch is that downloading requires registration. Not surprisingly, the homepage of mocapdata.com has the address!LINK!http://www.mocapdata.com/ -- http://www.mocapdata.com/!/LINK!. * The Trailer's Park: Free mocap data can also be found at the Trailer's Park,!LINK!http://www.thetrailerspark.com/ -- http://www.thetrailerspark.com!/LINK!. This site does not offer original data, but offer repacks of mocap data from other free sites for download. Free download is limited to some five packs per day, so some patience is required here. * Hochschule der Medien, Universität Bonn (HDM):!LINK!http://www.mpi-inf.mpg.de/resources/HDM05/ -- http://www.mpi-inf.mpg.de/resources/HDM05!/LINK! * The Perfume global site project #001:!LINK!http://perfume-dev.github.com/ -- http://perfume-dev.github.com/!/LINK! === MHBlenderTools: MakeWalk user interface === ==== The user interface ==== The user > interface of MakeWalk is located in under the Armature tab, and becomes visible when an armature is selected. It consists of six panels; the first one is open by default and the others are closed. !IMAGE!Pictures/makewalk-7_0.png!/IMAGE! * Load And Retarget: Select a BVH file and retarget it to the active armature. * Start Frame: The first frame in the BVH file to considered. * Last Frame: The last frame to be considered, unless the animation stops earlier. The difference last_frame - first_frame is the maximal number of frames after retargeting. The number of frames in the BVH file may be larger, if some frames are skipped due to subsampling * Detailed steps: When this options is selected, further buttons are show below * Load BVH File (.bvh). Load a BVH file, and create an animated armature from it. * Rename And Rescale BVH Rig. With the BVH armature active, and a target armature selected, rename and rescale the bones of the active armature to fit the target. * Load And Rename BVH File (.bvh). A combination of the previous two buttons. With a target armature active, load a BVH file, and create an animated armature with renamed and rescaled bones. * Retarget Selected To Active. Retarget the animation from a renamed and rescaled BVH armature to the active armature. * Simplify FCurves. Simplify the F-curves of the active armature. * Rescale FCurves. Rescale F-curevs of the active armature.What if retargeting fails? MakeWalk is designed to retarget animations to a given armature with a minimum of user intervention. However, retargeting is a complex process, and entirely automatic retargeting may fail or result in suboptimal motion. Information about how to identify and correct problems is found in!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Errors and Corrective Actions!/LINK!. A common problem is that automatic identification of bones in the target armature fails. A bone map can then be assigned manually, cf.!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Defining the Target Rig Manually.!/LINK! ==== Options panel ==== !IMAGE!Pictures/makewalk-8.png!/IMAGE! * Use Default Subsample. Blender normally plays the animation in 24 fps or 25 fps, but the animation in the BVH file may be recorded at a different speed. In particular, the BVH files from CMU were filmed at 120 fps. Enable this option to have the animation play at natural speed, irrespective of the frame rate in the BVH file. Other subsample options are described below. * Auto scale. Set the scale automatically based on the size of the left thigh. This choice has two motivations: * Almost all character do have a left leg. * The leg size is crucial for making walk cycles look good. * Scale. The default MakeHuman scale is decimeters - 1 unit = 1 decimeter. Translations in a BVH file are expressed in different units; often the base unit is inches, meters or centimeters, but more obscure units can also occur, e.g. in BVH files from CMU. If the scale is set incorrectly, rotations will still be correctly retargeted, but the character will appear to take giant leaps or miniscule steps. * Use Limits: If this option is enabled, MakeWalk honors any Limit Rotation constraints, and will not allow excessive rotations. If the animation in the bvh files exceeds some rotation limits, this makes the retargeted animation less faithful. On the other hand, the rig may not be built for excessive rotations, so unchecking this option can lead to other problems. * Unlock Rotation: If this option is disabled, MakeWalk honors any rotation locks. If the animation in the bvh files bend around locked axes, this makes the retargeted animation less faithful. If Unlock Rotation is enabled, any X or Z rotation locks are disabled. Y rotation locks (bone twisting) are never disabled. The reason for this is that in the MHX and Rigify rigs, forearm rotation is handled by deform bones controlled by hand twisting. * Auto source rig. The source rig (i.e. the armature defined by the BVH file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Source Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the source rig, based on the structure of the bone hierarchy. * Auto target rig. The target rig (i.e. the armature in the blend file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Target Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the target rig, based on the structure of the bone hierarchy. * Ignore Hidden Layers. Ignore bones on hidden layers when identifying the target rig. === Subsample and Rescale === If the Use Default Subsample option is set, the mocap tool will rescale the animation to fit the current frame rate. However, there are at least two reasons why you may want to load an animation at a different frame rate: * * To obtain a slow-motion or rapid-motion effect. * To quickly load an animation to see if the gross features will work out. If the Use Default Subsample option is disabled, the SubSample section becomes visible. * Subsample. Enable subsampling. * Subsample Factor. If the value of this property is n, only every n:th frame of the BVH animation is loaded. * Rescale. Enable rescaling. * Rescale Factor. If the value of this property is n, the time distance between keyframes is changed to n. * Rescale FCurves. Apply the settings above to existing F-curves rather than to the loaded animation. Rescaling differs from simply scaling F-curves in the F-curve editor. === Simplification === * Simplify FCurves. Remove unnecessary keyframes. * Max Loc Error. The maximal allowed error for location keyframes, in Blender units. A larger error results in fewer keyframes but less accuracy. * Max Rot Error. The maximal allowed error for rotation keyframes, in degrees. A larger error results in fewer keyframes but less accuracy. * Only Visible. Simplification only affect F-curves visible in the Graph editor. * Only Between Markers. Simplification only affects F-curves between the two outermost selected markers. The timeline must have at least two selected markers. ==== Edit panel ==== Loading and retargeting is normally only the first step in the creation of an animation from mocap data. There are many reasons why a loaded animation does not behave exactly the way you want it to: artifacts in the mocap data, differences in armature structure not compensated for correctly by the retargeting process, differences in body stature between the mocap actor and the target character, or simply that the filmed sequence does not do exactly what you intend.. It is of course possible to edit the action directly in the graph editor, but this is unpractical due to the amount of mocap data. The mocap tool offers several possibilities to edit an action at a higher level. These tools are colleted in the Edit Action panel which is located just below the Options panel. !IMAGE!Pictures/edit-action.png!/IMAGE! === Inverse Kinematics === * Transfer FK => IK: The load and retarget steps transfers an animation from a bvh file to the target character. However, only the FK bones are animated. Press this button to transfer the FK animation to the IK bones. Only works for the advanced MHX armature. If two markers are selected, only the animation between the markers is transferred. * Transfer IK => FK: Transfer the animation back from the IK bones to the FK bones. Useful if the IK animation has been edited, * Clear IK Animation: Remove all keyframes from all IK bones (arms and legs). * Clear FK Animation: Remove all keyframes from all FK bones (arms and legs). === Global Edit === * Shift Animation. Shift the keys for the selected bones at all keyframes.If two markers are selected, only the keyframes between the markers are deleted. * X,Y,Z: F-curves affected by the next button. * Fixate Bone Locations:Replace all location keys by their average. Only selected bones and keyframes between selected markers are affected. * Rescale Factor: Factor used by next button. * Rescale FCurves: Rescale all F-curves by the factor above. This is similar to scaling F-curves in the curve editor, but jumps are treated correctly. E.g., rotations of +180 degrees and -180 degrees are the same, but if we scale an F-curve with a factor two, the intermedate keyframe will have the average rotation 0 degrees, The Rescale FCurves button handles this case correctly. === Local Edit === This section could be called "Poor man's animation layers". A loaded mocap animation usually has imperfections that must be edited, but without changing the overall feel of the motion. The Start Edit button creates a new animation layer where differences from the original motion are stored as keys, called delta keys since delta often denotes a difference. * Start Edit: Start editing F-curves. * Undo Edit: Quit F-curve editing, without modifying the original F-curves. * Loc: Set a location delta keyframe. * Rot: Set a rotation delta keyframe. * LocRot: Set a location and rotation delta keyframe. * Delete: Remove all delta keyframes at the current time. * |<: Move to first delta keyframe * <: Move to previous delta keyframe. * >: Move to next delta keyframe. * >|: Move to last delta keyframe. * Confirm Edit: Modify the original F-curves and quit F-curve editing. The delta keys are represented by markers in the timeline. !IMAGE!Pictures/mwe-315-local-keys.png!/IMAGE! A delta key can be added with the Loc, Rot and LocRot buttons, and removed with Delete. There is no way to view the delta keys directly. In the viewport and the curve editor, the final pose is shown, which is the sum of the original pose and the delta key. A common use for delta keys is to correct for intersection with other objects or the character herself. The typical workflow is as follows: * * Start Edit. * Set a delta key at a good frame just before the intersection. * Set a delta key at a good frame just after the intersection. * Edit the pose a the frame(s) where intersection occurs. * If the intersection has been removed, Confirm Edit. If not, set new delta keys until it has, or Undo Edit to remove the delta layer. === Feet === * Left: Affect the left foot. * Right: Affect the right foot. * Hips: Affect the characters hip (COM) bone. * Offset Toes: Ensure that the toe is below the ball of the foot at all keyframes. Primarily useful for rigs with a reverse foot setup as explained below. * Keep Feet Above Floor: If a mesh object (typically a plane) is selected, shift the keyframes to keep the affected feet above the plane. The plane does not necessarily lie in the XY plane; if the plane is tilted, the feet are kept on the plane's upper side. If no plane is selected, the feet are kept above the XY plane (z = 0). The IK feet are affected if the rig has and uses IK legs, otherwise the FK feet are kept above the floor. If two markers are selected, only the keyframes inbetween are shifted. In a rig with a reverse foot setup, such as the MHX rig, the foot can rotate around the toe, ball, and heel. The reverse foot and toe bones are completely fixed by the corresponding FK bones, but the IK effector can be placed arbitrarily, as long as it ends at the toe tip. The transfer tool uses this freedom to make the IK effector perfectly horizontal, provided that the toe is below the ball and heel. !IMAGE!Pictures/refoot.png!/IMAGE! To use this feature we must ensure that the toe is below the ball of the foot, which is done by the Offset Toes button. === Loop And Repeat === !LINK! -- Loop Animation!/LINK! Create a loop of the action between two selected time markers, by blending the keyframes in the beginning and end of the loop. This is useful e.g. to create walk and run cycles for games. For good results, the poses at the beginning and end of the selected region should be similar. * Blend Range: The number of keyframes used for blending. * Loop in place: Remove the X and Y components of the root bone's location. * Loop F-curves: Loop the animation. !LINK! -- Repeat Animation!/LINK! Repeat the action between two selected time markers. The actions should preferably be looped before it is repeated, to make the beginning and end match seamlessly. * Repeat Number: The number of repetitions. * Repeat F-curves: Repeat the animation. === Stitching === Create a new action by stitching two actions together seamlessly. * Update Action List: Update the first and second action drop-down lists. * First Action: The name of the first action. * First End Frame: Last frame of the first action * Set Current Action: Set the first action as the current action. * Second Action: The name of the second action. * Second Start Frame: First frame of the second action. * Set Current Action: Set the second action as the current action. * Action Target: Choose between creating a new action and prepending the second action. * Blend Range: The number of keyframes used for blending. Same parameter as in Loop Animations section. * Output Action Name: * Stitch Actions: Stitch the actions together. === MHBlenderTools: MakeWalk armatures === ==== Source Armature panel ==== MakeWalk transfers an animation from a source armature, defined in a bvh file, to a given target armature. It uses an intermediate standard rig described in!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. The bone map from the source armature to the target armature hence consists of two parts: * A map from the source rig to the standard rig. It is defined in the MakeWalk: Source Armature panel. * A map from the target rig to the standard rig. It is defined in the!LINK!http://makehuman.org/doc/node/makewalk_target_armature_panel.html -- MakeWalk: Target Armature panel!/LINK!. !IMAGE!Pictures/mws-010-panel.png!/IMAGE! When a new scene is opened, the panel consists of the single button Initialize Source Panel. Once this button has been pressed, the following content is available: !IMAGE!Pictures/mws-020-auto.png!/IMAGE! * Reinit Source Panel: Reinitialization. * Auto Source Rig: If this option is enabled, MakeWalk will try to identify the source rig automatically. It may happen that MakeWalk fails to identify the source rig automatically, but this is very unusual. If it should nevertheless happen, it is possible to define the bone map manually in analogy with !LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- how it is done for target rigs!/LINK!. * Source rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected source rig (if Auto Source Rig is disabled) or to Automatic. * Bones in the active source rig. ==== Target Armature panel ==== The second part of the mapping from source to target armatures is defined by the panel labelled MH Mocap: Target armature. It is the top-most of the mocap tool panels, and is closed by default. When a new scene is opened, the panel consists of the single button Initialize Target Panel. Once this button has been pressed, the following content is available: !IMAGE!Pictures/mwt-011-panel.png!/IMAGE! * Reinit Target Panel. Reinitialization. * Target rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected Target rig (if Auto Target rig guessing is disabled), or is set to a matching rig (if automatic target rig identificiation is enabled). * Auto Target Rig. If this option is enabled, MakeWalk will try to identify the target rig automatically. However, automatic rig identification is not trivial for complex rigs, and it may fail. If so, the bone map may be specified manually, cf!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. If the bone map is defined. The target rigs available by default correspond mostly to the rig presets that can be exported from MakeHuman * MHX. An advanced rig from MakeHuman alpha 8. * MH Alpha 7. The MHX rig from MakeHuman alpha 7. * Rigify. * Ignore Hidden Layers: Ignore bones on hidden layers during automatic rig identification. * Reverse Hip. Select this option if the armature has an reverse hip. It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. * Identify Target Rig: Identify the target rig, i.e. find out how bone names in the active armature correspond to the internal names. This step is performed automatically during retargeting, but the identification can also be done separately for debugging purposes. The bone map appears in the area called FK bones below. * Set T-pose. Pose the active armature in T-pose. * Save T-pose. Option used by the next button. * Save Target File. Save the current bone map as a .trg file. If the Save T-pose option is set, also save a json file defining the T-pose. * FK bones. The bone map. The picture below shows automatic rig identification of the Rigify meta-rig (Add > Armature > Advanced Human). !IMAGE!Pictures/mwt-020-metarig.png!/IMAGE! === MHBlenderTools: MakeWalk troubleshooting. === ==== What if retargeting fails? ==== === Errors and Corrective Actions === This document will describe common errors and corrective actions. It may happen that MakeWalk fails to retarget an animation to a given armature. In that case an error message is displayed. !IMAGE!Pictures/mwa-100-error.png!/IMAGE! The error message consists of the following: Mocap error Category Detailed error message A link to this page MakeWalk errors are grouped into the following categories: * Load Bvh File * Rename And Rescale * Identify Target Rig * Automatic Target Rig * Manual Target Rig * Identify Source Rig * Retarget * General Error Load Bvh File Rename And Rescale Identify Target Rig === Automatic Target Rig === The most common problem is probably that MakeWalk fails to identify the target rig automatically. There are several possible reasons for this: * The character is not oriented correctly. In the rest pose, the character should be standing with up being the positive Z axis and facing -Y. * The armature is complex with extra bones not corresponding to a standard biped rig. * The armature only has IK arms or legs. MakeWalk retargets animations to the FK limbs, so if no such bones exist, the program will not work. !IMAGE!Pictures/mwa-110-reverse-hip.png!/IMAGE! It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. !IMAGE!Pictures/mwa-120-reversehip.png!/IMAGE! The advantage of such a setup is that the upper and lower body can be posed independently. However, MakeWalk failes to identify the bones, unless the Reverse Hip option has been enabled. If automatic bone identification still fails, bone mapping has to be made manually. How this is done is described in the next section. === Defining the Target Rig Manually === Internally, MakeWalk retargets animations to an armature with the following bone hierarchy. Here is a visual illustration of the bone hierarchy: !IMAGE!Pictures/mwa-010-armature.png!/IMAGE! In order to retarget to an armature with different bone names, we must define a map between the given bones and the internal names. By default, MakeWalk attempts to do this automatically. However, automatic bone mapping may easily be confused for non-trivial rigs. If this happens, one can define the bone map manually. A bone map for a target armature is defined by a .trg file located in the target_rigs folder under the makewalk directory. The folder already contains three files, for retargeting the MHX advanced rig, the MakeHuman, and Rigify. These rigs are too complicated to identify the bone map automatically, so MakeWalk recognizes these rigs and use the predefined bone map. Create a .trg file using an existing file as a template. E.g., a .trg file could look like this: Note that it is not necessary to define maps to all bones. Bone names must not contain spaces, since whitespace is used as a delimiter in the .trg file. If the bones in your armature do contain spaces, replace them by underscore ( _ ). MakeWalk treats space and underscore as equivalent, so this is not a problem, except for very strange naming convention. !IMAGE!Pictures/mwa-020-myrig.png!/IMAGE! Save the .trg file with the name my_rig.trg in the target_rigs folder and press the Reinit Target Panel button. My_Rig should now appear in the Target rig list. Select it. In the FK bones sections, the My_Rig bone names are now listed. Make sure that the Auto Target Rig option is deselected, to override automatic bone mapping. Finally go to the main panel and press Load And Retarget. The animation should now be loaded. === MHBlenderTools: MakeWalk utilities === ==== Utilities panel ==== This panel contains material that does not naturally fit into the other panels. !IMAGE!Pictures/mwu-010-panel.png!/IMAGE! === Default Settings === * Save Defaults: Save current settings as the default settings. * Load Defaults: Load the default settings from file. === Manage Actions === * Actions: A list of all actions in the scene, at the time when the Update Action List button was last pressed. * Filter: If selected, only actions belonging to the active character are included in the action list. When the mocap tool creates an action, the first four letters in the action name are taken from the rig name. * Update Action List: * Set Current Action: Set the action selected in the Actions list as the active action. * Delete Action: Permanently delete the action selected in the Actions list. The action must have zero users. It is quite cumbersome to permanently delete actions in Blender. The reason is that creating an action with hand animation takes much work, which should not be lost accidentally. The situation is different with mocap, where it is easy to fill up a blend file with many irrelevant actions. This button makes it easier to clean out such junk motions. * Delete Temporary Actions: Some tools create temporary actions, whose names start with a hash sign (#). Deletes all such actions. === Temporary properties === * Delete Temporary Properties. MakeWalk creates some properties for relevant posebones during retargeting. Pressing this button removes these properties. However, be aware that some of the tools in the Edit panel may fail if the temporrary properties are deleted. The temporary properties for the active posebone can be inspected in the N-panel. !IMAGE!Pictures/mwu-030-temp-props.png!/IMAGE! * McpBone: The name of this bone in the internal hierarchy. * McpParent: The parent of this bone in the internal hierarchy. * McpQuatW, McpQuatX, McpQuatY, McpQuatZ: The rotation of this bone in T-pose, represented as a quaternion. === T-pose === * Set T-pose: Set the current pose to T-pose. * Clear T-pose: Set the current pose to the default pose. * Load T-pose: Load a T-pose from a .json file to the active armature. * Save T-pose: Save the current pose as a .json file. === Rest Pose === * Current Pose => Rest Pose: Set the current pose to rest pose. === MHBlenderTools: MHX importer basic usage. === MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. Due to its tight integration with Blender's python API, it supports advanced features like constraints, drivers and properties that general-purpose formats like Collada or FBX do not support. ==== Export From MakeHuman ==== !IMAGE!Pictures/mx010-export.png!/IMAGE! After the character has been designed in MakeHuman, go to the Files > Export tab and select Blender exchange (mhx) as the Mesh format. Type the character's name in the box at the top and press export. An mhx file has been exported. ==== Import Into Blender ==== Once the mhx importer has been enabled, we can import the mhx file. Select File > Import > MakeHuman (.mhx). !IMAGE!Pictures/mx070-import.png!/IMAGE! In the file selector, navigate to the file that we just exported from MakeHuman, i.e. John Doe.mhx in the export directory. After a short while, the character appears in the viewport, ready for posing. !IMAGE!Pictures/mx080-import.png!/IMAGE! === MHBlenderTools: MHX default rigging === If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .MHX format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. The bones are grouped into bone layers. Bone layers can be turn on and off in the MHX Main panel that appears in the user interface pane (N-pane), which is found to the right of the viewport. N-pane visibility can be toggled on and off with N-key. The Root Layer !IMAGE!Pictures/mx210-root.png!/IMAGE! There are two bones on the Root layer: * master: the big bone located at the foot level. It is the ultimate parent of every other bone in the rig, and can be used to move the entire character, including ik effectors. * root: the wiggly bone located at the character's center of mass. It also moves the entire character, but IK effectors remain at a fix position. The Spine Layer !IMAGE!Pictures/mx220-spine.png!/IMAGE! The spine is an immedate child of the root bone. * spine: * spine-1: * chest: * chest-1 * neck * head On this layer the two clavicle bones are also found. They are children of chest-1 and also appear on the arm layers. The Head Layer !IMAGE!Pictures/mx230-head.png!/IMAGE! This layers contains the bones of the head (not the Neck and Head bones, however). * jaw: Jaw bone * tongue_base: Inner part of tongue. * tongue_mid: Middle part of tongue. * tongue_tip: Outer part of tongue. * eye.L: Left eye. * uplid.L: Left upper eyelid. * lolid.L: Left lower eyelid. * eye.R: Right eye. * uplid.R: Right upper eyelid. * lolid.R: Right lower eyelid. * gaze. Target that the left and right eyes are tracking. The FK Arm Layers !IMAGE!Pictures/mx240-fkarm.png!/IMAGE! The left forward kinematics (FK) arm layer consists of: * clavicle.L: Left clavicle. * deltoid.L Left deltoid muscle. * upper_arm.fk.L: Left FK upper arm (humerus). * forearm.fk.L: Left FK forearm. Y rotation is locked on this bone. To twist the forearm, rotate the hand bone instead. * hand.fk.L: Left FK hand. The bones on the right FK arm layer are analogous. Note that there are two shoulder bones: clavicle and deltoid. It is not trivial to pose the shoulder, and with two shoulder bones better deformation is possible. The drawback is that an additional bone must be posed. However, in the common case that the arm is well below shoulder level, the deltoid bone can often be ignored. The FK Leg Layers !IMAGE!Pictures/mx250-fkleg.png!/IMAGE! The left FK leg layer consists of: * thigh.fk.L: Left FK thigh. * shin.fk.L: Left FK shin. * foot.fk.L: Left FK foot. * toe.fk.L: Left FK toes. THe right FK layer is analogous. The Finger Layers !IMAGE!Pictures/mx260-fingers.png!/IMAGE! The long fingers on the Finger layers give a quick way to pose the fingers; the poses can be fine-tuned with the individual finger links on the Links layer. The bones on the left Finger layer are: * thumb.L: Left long thumb. * index.L: Left long index finger. * middle.L: Left long middle finger. * ring.L: Left long ring finger. * pinky.L: Left long pinky. The bones on the right Finger layer are analogous. Rotating a long finger around the local X will cause all finger links to curl (rotate around local X). Rotation around local Z only affects the first finger link. The Finger Link Layers !IMAGE!Pictures/mx270-links.png!/IMAGE! Each of the Finger Links layers contains fourteen bones; two for the thumb and three for each other finger. They are used to fine-tune the finger pose, once a rough pose is achieved with the long finger bones. The Palm Layers !IMAGE!Pictures/mx280-palm.png!/IMAGE! The left Palm layer contain the meta-carpal bones: * thumb.01.L: Parent of the left thumb bones. * palm_index.L: Parent of the left index finger bones. * palm_middle.L: Parent of the left middle finger bones. * palm_ring.L: Parent of the left ring finger bones. * palm_pinky.L: Parent of the left pinky bones. The bones on the right Palm layer are analogous. The IK Arm Layers !IMAGE!Pictures/mx300-ikarm.png!/IMAGE! The arms are controlled by FK by default, but inverse kinematics (IK) can also be used. To quickly switch between FK and IK, press the buttons labelled FK or IK in the MHX FK/IK Switch panel, which appears in the N-panel if an MHX armature is the active object. * clavicle.L: Left clavicle. Same bone as on FK layer. * deltoid.L: Left deltoid. Same bone as on FK layer. * hand.ik.L: Left hand IK effector. Positions and rotates the hand. Also controls forearm twist. * elbow.pt.ik.L: Left elbow pole target. Controls the location of the elbow, which lies in the plane spanned by the arm socket (head of upper arm), wrist (tail of forearm), and elbow pole target. * elbow.link.L: A rubberband that connects the elbow to the elbow pole target. This bone is merely a visual cue; has no effect and can not be selected. The bones on the right IK arm layer are analogous. The IK Leg Layers !IMAGE!Pictures/mx310-ikleg.png!/IMAGE! The legs are controlled by FK by default, but IK can also be used. To quickly switch between FK and IK, press the buttons labelled FK or IK in the MHX FK/IK Switch panel, which appears in the N-panel if an MHX armature is the active object. * foot.ik.L: Left hand IK effector. Positions and rotates the hand. * toe.rev..L: Left reverse toe. * foot.rev.L: Left reverse foot. * knee.pt.ik.L: Left knee pole target. Controls the location of the knee, which lies in the plane spanned by the leg socket (head of thigh), ankle (tail of shin), and knee pole target. * knee.link.L: A rubberband that connects the knee to the knee pole target. This bone is merely a visual cue; has no effect and can not be selected. * shin.ik.L: The foot bones and the pole target control the thigh and shin rotation, except for the twist (local Y rotation) of the shin, which is handle by this bone instead. The IK shin bone does not affect the bending of the shin, only the twisting. The bones on the right IK leg layer are analogous. !IMAGE!Pictures/mx320-revfoot2.png!/IMAGE! The IK leg has an reverse foot setup, which allows the foot to rotate around the toe, ball, and heel. * foot.ik.L: Rotate around heel. * toe.rev.L: Rotate around toe tip. * foot.rev.L: Rotate around ball. FK-IK Snapping In a rig with both FK and IK, it is useful to be able to switch between the two seamlessly. To this end, the MHX FK/IK Switch panel contains buttons to snap the IK to FK and vice versa, in such a way that the character's pose remains unchanged. !IMAGE!Pictures/mx330-fkik2.png!/IMAGE! To snap the IK bones to the FK pose, press the buttons * Snap L IK Arm * Snap R IK Arm * Snap L IK Leg * Snap R IK Leg respectively. Note that the FK buttons at the top of the panel change to IK. !IMAGE!Pictures/mx340-ikfk2.png!/IMAGE! To snap the FK bones to the IK pose, press the buttons * Snap L FK Arm * Snap R FK Arm * Snap L FK Leg * Snap R FK Leg respectively. Note that the IK buttons at the top of the panel change to FK. The Tweak layer !IMAGE!Pictures/mx360-tweak2.png!/IMAGE! This layer contains some rarely used bone that in some cases are useful to tweak a pose. * breast.L: Controls rotation of left breast. Useful mainly for female characters. * arm.socket.L: The left arm socket. Allows the left upper arm (FK and IK) to be moved away from the deltoid bone. * leg.socket.L: The left leg socket. Allows the left thigh (FK and IK) to be moved away from the hip. The right-side bones (with suffix .R) are defined analogously. !IMAGE!Pictures/mx370-markers2.png!/IMAGE! The Tweak layer also contains marker bones. They are used by MakeWalk to determine the location of the toe, ball and heel, so they can be moved up above floor level. Move these bones in Edit mode to fine-tune their locatation. The marker bones on the left side are: * toe.marker.L: Left toe marker. * ball.marker.L: Left ball marker. * heel.marker.L: Left heel marker. The marker bones on the right side are analogous. The MHX Control Panel The default behaviour of the MHX rig can be modified by changing some properties in this panel. !IMAGE!Pictures/mx410-gaze2.png!/IMAGE! * GazeFollowsHead: If 1.0, the gaze bone is parented to the head. If 0.0, the gaze bone remains fixed in space (it is parented to the master bone). * RotationLimits: If 0.0, all Limit Rotation constraint is ignored. If 1.0, they are honored. Default = 0.8. !IMAGE!Pictures/mx420-hinge2.png!/IMAGE! * ArmHinge, Left and Right: Determines whether the arm rotates when the shoulder does. * FingerControl, Left and Right: Determines whether the finger links are parented by the long fingers (the default), or if the long fingers are to be ignored. !IMAGE!Pictures/mx430-leghinge2.png!/IMAGE! * LegHinge, Left and Right: Determines whether the leg rotates when the hip does. !IMAGE!Pictures/mx440-legik2ankle2.png!/IMAGE! * LegIkToAnkle, Left and Right: If turned on, the reverse foot setup is disabled, and the ankle bones on the Extra layers become the effectors for the IK legs. === MHBlenderTools: MHX other rigging systems === By default (i.e., if Pose/Animate > Skeleton is set to 'None') a character is exported as an mhx file is rigged with the MHX rig, which is a rather complex rig with many options. Alternatively, the character can be rigged with a simpler and ligher armature by choosing an alternate Rig Preset under Pose/Animate > Skeleton. !IMAGE!Pictures/mx710-other-rig2.png!/IMAGE! To this end, select one of the rigs in the Pose/Animate > Skeleton tab. A skeleton is drawn. Export the character from MakeHuman as an mhx file. To reselect the default mhx rig, press None in the Pose/Animate > Skeleton tab. !IMAGE!Pictures/mx720-other-blender2.png!/IMAGE! Import the mhx file into Blender. Note that there are fewer bone layers available in the MHX Main panel. ==== Using the Rigify rig ==== As an alternative to the mhx rig, MakeHuman characters can also be rigged with the popular Rigify add-on by Nathan Vegdahl. Links to documentation about Rigify in general: !LINK!http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Rigging/Rigify -- Official Rigify documentation!/LINK! !LINK!http://blenderartists.org/forum/showthread.php?200371-Rigify-Auto-rigging-system-new-and-improved -- Blenderartist thread!/LINK! !IMAGE!Pictures/mx810-rigify-export2.png!/IMAGE! To use Rigify, the character must first be prepared in MakeHuman. Select the Export for Rigify checkbox in the Options group and export the file. This checkbox overrides any other rig selected under the Skeleton tab. !IMAGE!Pictures/mx820-rigify-enable2.png!/IMAGE! In Blender, enable the Rigify add-on. It is found in the Rigging category. Press Save User Settings to remember the choice. !IMAGE!Pictures/mx830-rigified2.png!/IMAGE! Import the mhx file as usual. John Doe is now rigged with Rigify and ready for use. !IMAGE!Pictures/mx840-norigify2.png!/IMAGE! If the Rigify add-on is not enabled, an intermediate rig is imported and an error message appears. If this happens, open a new Blender file, enable Rigify, and try again. Alternatively, you may select the armature and press the Rigify MHX Rig button that appears in the N-panel (after you have enabled the Rigify add-on, of course). Disclaimer: MakeHuman has no control of the Rigify add-on. Rigify support was tested with Blender 2.69. If the specification of Rigify changes in the future, mhx file exported for Rigify may cease to work. === MHBlenderTools: MHX Layers and masks === The mhx importer creates objects on the first four layers. !IMAGE!Pictures/mx900-layers2.png!/IMAGE! * * This layer contains the body, including hair, eyes, etc. * This layer contains the armature. * This layer contains any clothes. Empty if the character is nude. * This layer contains any proxy meshes. Empty if no proxy mesh was exported. Note that a proxy mesh does not replace the original human mesh, but is added as a separate object. If you only want to use the proxy mesh, the body can be deleted. However, the proxy mesh (perhaps slightly edited) has several uses apart from simply replacing the body, e.g. as a deflection surface for cloth simulation, or to speed up viewport performance when animating. It is therefore up to the user to decide which meshes to delete. !IMAGE!Pictures/mx920-unmasked2.png!/IMAGE! Vertices beneath clothes are hidden, to avoid ugly penetration issues. The picture above illustrates what may happen if skin under clothes is not hidden. !IMAGE!Pictures/mx910-mask2.png!/IMAGE! However, skin beneath clothes is not removed, only hidden by masks. This becomes evident if in edit mode, where the entire body is visible. To undress the character, deselect the clothes layer (layer 3), and disable all mask modifiers. Don't forget to disable the mask modifier for rendering as well. With the mask modifiers, it is possible to export a character from MakeHuman with several different outfits, and select the outfit and hidden body vertices in Blender. If you wish to delete the hidden vertices permanently, e.g. to improve performance or for export to some other application, apply the relevant mask modifiers. === MHBlenderTools: MakeClothes rigid fitting === The standard clothes fitting algorithm is suitable for flexible clothes, especially clothes that follow the body closely. However, is does not work well for rigid objects like shoes, Therefore, MakeClothes has a variant suitable for rigid shoes. Rigid fitting is used on a vertex group basis, so rigid and flexible fitting can be mixed in the same piece of clothing. Rigid fitting is used for every vertex group whose name starts with a '*'. Each such vertex group in the human must contain exactly three vertices, that determine the triangle used for fitting in this group. !IMAGE!Pictures/rf-100-orig.png!/IMAGE! The use of rigid vertex groups is best explained by an example. Consider a pair of shoes, which is a rigid object. We used the standard MakeClothes settings and an adult human with the original shoe to the left. Then the mhclo file was loaded onto a baby, with the result to the right. The shoe is recognizable but it has been deformed in an undesirable way. However, even though the quality of the fitting is poor, make sure to save the mhclo file, because we will need it at the end of this tutorial. !IMAGE!Pictures/rf-110-projection.png!/IMAGE! Each clothing vertex v is associated with a triangle t in the human mesh, i.e. three human vertices v1, v2, v3. Letrdenote the location of v andr1,r2,r3the locations of the corners of the triangle. Further, let d be the perpendicular distance from the clothes vertex to the plane spanned by the triangle. MakeClothes assigns three weights w1, w2, w3, such that r= w1r1+ w2r2+ w3r3+d, where the sum of weights w1+ w2+ w3= 1. When the clothing is loaded onto a different character, the new location becomes r'= w1r'1+ w2r'2+ w3r'3+d', wherer'1,r'2,r'3are the locations of the three human vertices in the new character, and d' = Sd= (sxdx, sydy, szdz) is obtained from the original offsetdby inhomogeneous global scaling with the diagonal scale matrix S = diag(sx, sy, sz). The important observation is that the quality of the fitting depends crucially on the chosen triangle, i.e. the triple of human vertices the determines the clothes vertex location. The standard choice is to choose the human triangle closest to to clothing vertex. In rigid fitting the triangle is the same for all vertices, and is defined by the tree vertices in the vertex group. !IMAGE!Pictures/rf-120-vgroups.png!/IMAGE! Here we see the vertex groups used to fit the left shoe. The standard vertex group Left consists of all vertices close to the left shoe, in the tights helper. On the other hand, the rigid vertex group *Left only contains three vertices that define the single triangle used for all clothes vertices in this group. !IMAGE!Pictures/rf-130-triangles.png!/IMAGE! The next illustration shows the corresponding triangles used for fitting. The Left group uses many triangles obtained by triangulating the corresponding faces. Different shoe vertices are associated with triangles that are transformed differently, and the rigid character of the shoe is lost. The *Left group only has one single triangle, with corners at the three vertices in the vertex group. The same triangle is used by all left shoe vertices. !IMAGE!Pictures/rf-140-rename-vgroups.png!/IMAGE! Once the human vertex groups have been defined, we proceed with clothes-making. Rename the shoe vertex groups to *Left and *Right, to make the shoes use rigid fitting. Recall that the human can have several overlapping vertex groups, but in a piece of clothing each vertex must belong to exactly one group. !IMAGE!Pictures/rf-150-offset-scaling.png!/IMAGE! Next we open the Offset Scaling section and select Foot as the body part. In flexible fitting, the offsets are usually very small, and selecting the correct body part is not so important. In contrast, this step is very important in rigid fitting, because many vertices are far away from their triangles and the offsets must be scaled correctly. Press Examing Boundary for a visual inspection of which vertices define the global scale matrix.. !IMAGE!Pictures/rf-160-baby-shoes.png!/IMAGE! This picture shows the shoe loaded on a baby, using flexible fitting (blue) and rigid fitting (red). Rigid fitting clearly maintains the shape of the shoe much better. However, one problem remains: bone weighting. Start up MakeHuman and load the shoes under the Geometries > Clothes tab. Export the character with a rig in one of the formats that allows that, e.g. mhx, and import the character into Blender. Now try to pose the feet. As we see in the picture below, the shoe does not follow the foot but is squashed or stretched in strange ways. !IMAGE!Pictures/rf-170-bad-deformation.png!/IMAGE! The reason is that rigid fitting affects the bone weights as well as the vertex locations. The bone weights are interpolated between the three corners of the triangle, rather than using the information from the entire foot. To correct this we need to use two different associations between clothes and human vertices: rigid fitting for vertex locations, but flexible fitting for bone weights. Fortunately, MakeHuman can handle this situation, although there is currently no elegant interface for it in MakeClothes. In a text editor, open the mhclo file obtained by standard fitting in the beginning of this tutotial (this is why you needed to save it), and copy everything after the line verts 0 to the end of the new mhclo file obtained by rigid fitting. Before the copied section, insert the line weighting_verts Export the shoes again from MakeHuman and import into Blender. The shoes should now both maintain their rigid shape and deform correctly. !IMAGE!Pictures/rf-190-good-deformation.png!/IMAGE! Due to an unfortunate behavior in MakeHuman, it is possible that the updated mhclo file is not loaded after it has replaced the old one. This is because MakeHuman automatically compiles mhclo and obj files when loaded, so they can be loaded faster next time. Although this behavior is convenient for ordinary users, it is very confusing and frustrating for clothes makers. If MakeHuman insists on loading old versions of your clothes, you may need to delete the compiled files (*.mhpxy and *.npz), or restart MakeHuman, or both. After the compiled files are gone, the updated clothes should load without problems. !IMAGE!Pictures/rf-180-compiled-files.png!/IMAGE! == Developers' note == Some notes about how to obtain the source code, modify it and share it. === Makehuman Plugin System === ==== Plugins ==== Makehuman has a simple plugin framework which makes it easy to add and remove features. At startup, MakeHuman now looks for .py files in the plugins folder which are not starting with an underscore (which makes it easier to disable unwanted plugins). It loads them one by one and calls the load entry point passing a reference to the application. The plugin can use this reference to add the necessary GUI widgets or code to the application. The rules for plugins are very simple: * A plugin is a .py file in the plugins folder with a load entry point. * A plugin only imports core files. The reason a plugin cannot import other plugins is that it would make it difficult to know which files belong to which plugin. We still need to define a convention for shared files beyond the core MakeHuman files. To get started look at example.py or any of the other plugins to see how you can create your own feature in MakeHuman. ==== GUI ==== The main layout is a two level tab control. The tabs at the top represent categories, like files. modelling, geometries, materials, etc. The ones at the bottom are the tasks in the current category and refine the more broad category in face, torso, gender, saving, loading, exporting etc. So when creating your plugin, the first thought should be “In which category does it belong?”. From experience we know that it can be a though question to answer. Sometimes the only answer is adding a new category. This is what we initially did for measurement for example Next you probably want your own task to implement your feature. While it’s possible to attach functionality to an instance of gui3d.Task, it’s often easier to derive your own class. When you create an instance of your class, you pass the parent of your task, which can either be an existing category or the new one which you added. In your derived task you will then add the necessary controls to let the user interact. A good place to see how to use the different controls is the example plugin. You will see that even if you don’t add any controls, the model is already visible. This is because the model is attached to the root of the GUI tree. In the onShow event of your task you might want to reset the camera position, like we do in the save task, or hide the model, like we do in the load task. Just don’t forget to reset the state when your task gets hidden in onHide. ==== Undo-redo ==== It is important that every modification is undoable, since just one undo able modification would leave the user without the possibility to undo anything. So it’s crucial that if you write a plugin which modifies the model, you also make undo work. The Application class has several methods to work with actions. An action is a class with two methods, do and undo. If the action itself does the modification you can use app.do to add it to the undo stack. If you did the modification yourself already during user interaction, you can add the action using app.did. The application won’t call the do method of the action in that case. If you want to make your own undoredo buttons, you can use app.undo and app.redo. To illustrate, here is the action we use to change the hair color: The postAction is a handy way to specify a method to keep your GUI in sync with the changes. ==== Asynchronous Calls and Animation ==== When doing lengthy operations it is important not to block the GUI from redrawing. Since everything runs in one thread, it is easy to block the event loop in your plugin. There are 4 ways to avoid this, depending on the need. If no user interaction is needed, a progressbar can be used. A progressbar uses the redrawNow() method of the application. This redraws the screen outside the event loop. Instead of creating your own progressbar, it is advised to use the progress method, which uses the global progressbar. Calling progress with a value greater than zero shows the progressbar, a value of zero hides it. If user interaction is desired during the operation, either asynchronous calls, a timer or a thread can be used. Asynchronous calls are used when a lengthy operation can be split in several units. It is used for example in the startup procedure as well as for the plugin loading loop. The mh.callAsync(method) queues the calling of method in the event loop, so it will be called when the event gets processed. In case different methods need to be called after each other, as in the startup procedure, callAsync is used to call the next method. In case of the plugin loading loop, it calls the same method until it is done. This is not to be used for animations, as it takes very little time between calling callAsync and the event loop calling the method. Calling time.sleep(dt) to avoid this should not be done as it blocks the main thread. For animations use timers instead. An example of this can be found in the BvhPlayer plugin. The method mh.addTimer(interval, method) adds a timer which calls the given method every interval milliseconds. It returns a value to be used by removeTimer to stop the timer. If a lengthy operation includes blocking on sockets or pipes, it is advised to use a python thread. However this has been shown to be problematic on Linux. To get around the problems on linux you should not access any makehuman structures from within your thread, but use mh.callAsync to call the methods from the main thread. See the clock plugin example for example code on how to use threads correctly. ==== A template for plugins ==== Looking in the makehuman source folder, in the "plugin" directory, you will notice a file called "7_example.py". This is an "Hello world" plugin. It includes all main controls and some nice example of mesh manipulation. It's designed to be used as template of new plugin. To see how it works, you need to enable it in the Preferences->Setting. Then it will be located at Utilities-->Example. !IMAGE!Pictures/UtilitiesExampleTab3.png!/IMAGE! ==== Example Controls ==== !IMAGE!Pictures/UtilitiesExampleControls.png!/IMAGE! === OpenGL Notes === Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. OpenGL is a 3D graphics library that enables a 3D world to be defined, with a camera, objects, lights, textures etc. It then enables that 3D world to be visualised as a 2D representation that can be displayed on a computer screen and provides functions to enable an application (in response to user input) to navigate around the scene. ==== Basics ==== OpenGL takes a 3D scene and draws it into a 2D viewing area on your screen known as the viewport. OpenGL can project the scene onto the viewport in a variety of different ways, but the most common are: * Perspective projection, as you would get if you could place a camera in the scene * Orthographic projection, as a draftsman may contstruct technical drawings such as plans and elevations. MakeHuman only uses Perspective projection. ==== Projection Transformation ==== You tell OpenGL how to project 3D objects onto the 2D viewport by defining a projection transformation, which indicates whether you wish to use perspective or orthographic projection (or an alternative projection pattern) and specifies other projection settings. This can be imagined as being comparable to specifying the characteristics of a camera (field of view, aspect ratio etc.) where an orthographic projection is equivalent to a camera at an infinite distance. The main difference being that with OpenGL you can change the settings between drawing different objects, which is a bit like taking a photo, changing the lens and moving the camera, then taking another photo without winding the film on. MakeHuman sets a perspective projection using the function gluPerspective(fovAngle,aspectRatio,near,far) where: * fovAngle: is the vertical field of view angle (45 degrees) * aspectRatio: is the viewport width divided by the viewport height which, by default, is 800/600 (4/3) * near: is the distance to the centre of the viewing plane (0.1) * far: is the distance to the centre of the rear clippling plane (100) ==== Modelview Transformation ==== For OpenGL to know what to display in the viewport it also needs to know where the camera is relative to the 3D model. For this you need to define a modelview which defines the position and orientation of the camera and the position and orientation of objects that go to make up the model inside a virtual 3D world. You do this by moving through and around the 3D world and by creating objects relative to your current position. OpenGL keeps track of your current position and orientation in the 3D world by recording the modelview transformation. Both the projection transformation and the modelview transformation are stored internally in 4x4 transformation matrices. You can modify these matrices by calling functions that apply direct transformations (translations and rotations) or by calling functions that calculate transformations (e.g. the gluPerspective function outlined above). To apply transformations you need to first make one of these matrices the current matrix. Subsequent transformations are applied cumulatively to the current matrix. The glMatrixMode function is used to set the current matrix mode: * glMatrixMode(GL_PROJECTION) makes the projection transformation the current matrix so that projection settings can be applied, such as the field of View angle and Aspect Ratio. * glMatrixMode(GL_MODELVIEW) makes the modelview transformation matrix the current matrix so that subsequent translations and rotations move the current location through the 3D world. ==== Resetting a transformation matrix ==== Matrix transformations that you apply are applied cumulatively. It is therefore often necessary to reset the matrix to its default ‘no transformation’ state so that you can apply a fresh set of transformations. OpenGL uses the transformation and modelview matrices to transform coordinates by performing a matrix multiplication. If you multiply by an identity matrix then the result is the same as the thing you started with, so to reset one of these matrices to an initial state where the transformation has no effect you can simply load the identity matrix using the function glLoadIdentity(). This loads the identity matrix into whichever transformation matrix is currently active, resetting it to the default ‘no transformation’ state. ==== Coordinates ==== OpenGL world space coordinates are unitless, so 2 units can represent milimeters, inches or light years. Interpretation of world space coordinates is up to the application. OpenGL uses a right handed coordinate system, so, if you are looking at the origin with the +X axis stretching away to the right and the +Y axis pointing straight up, the +Z axis will be heading out of the screen straight towards you and the -Z axis will be dissapearing away from you into the distance. MakeHuman uses the default OpenGL modelview camera settings which are equivalent to invoking gluLookAt(0,0,0, 0,0,-1, 0,1,0). This places the camera at the origin, looking straight into the model along the -Z axis with the +Y axis pointing straight up. This means that a 2 unit wide and 2 unit high object centred at <0,0,-1> will roughly fill the viewport, as will a 4x4 object at twice the distance from the viewpoint. ==== Drawing objects ==== MakeHuman contains multiple objects. The Humanoid object is the main object, but it is surrounded by a set of control objects. Each object is constructed using triangular faces. The position and orientation of each face is defined relative to the object of which it is a part. The positions and orientations of the vertices and normals of the faces are defined relative to the face they’re on. The sequence in which face vertices are defined is significant in OpenGL. If the face is viewed from the front, the sequence of points runs counter clockwise. If the face is viewed from the back the points run clockwise. Faces viewed from behind may be invisible or may have a different color/texture defined to the front face. This order is also called the "winding order" of vertices, and is used by MakeHuman to calculate the normal of each face. If the winding order is reversed, the normal will be flipped. The glPushMatrix and glPopMatrix functions can be used to store away a copy of a matrix that can subsequently restored. MakeHuman uses this before and after drawing each object to store a copy of the modelview matrix and restore it. === Directory structure and core modules === Overview There are 10 main source folders with the main MakeHuman folder in the SVN repository: * apps * core * data * docs * icons * lib * licences * plugin * shared Of these, two folders: (licenses and docs) are associated with the general housekeeping and installation aspects of MakeHuman. Details of the housekeeping folders will be summarized, where relevant, elsewhere in the documentation. The remaining folder are discussed below. Directory Structure and the Build System During the pyinstaller build process, only files in the makehuman/data/ directory are included as data files, which means that any other data files will be skipped, causing file not found errors. Thus, the developer should place all data files under the data/ folder. The idea is to be able to cleanly identify what is data to be loaded at run time.and what is code that can be compiled at build time. One exception here is target (data) files that can optionally be precompiled to binary files at build time even though their binaries will reside in the data/ directory. The rational for this is that target files are static data core assets and should therefore naturally reside in makehuman/data/, but by compiling target files at build time, the size of the build distribution can be reduced and program startup times can be minimized The files in makehuman/plugins/ form a second exception to data is "loaded at runtime" and code is "comiled at build time". Files in the makehuman/plugins/ folder are kept as a "side effect" of the fact that the makehuman/plugins/ path is included as data. It is included as data to make it possible to load plugins at runtime by inspecting the folder. Plugins are compiled as well, though. This does not mean that data may be stored in makehuman/plugins/ as this practice threatens logical organization of code and data, and it is not guaranteed that this will keep working in the future. Plugins should never be used as imported modules in other plugins or, even worse, in a core module. Currently, the core plugins of MakeHuman all start with a digit (e.g., import 9_export_mhx). This is done intentionally to prevent their improper import into other modules in the program because imports of a module starting with a digit will produce a syntax error. Core plugins that require data, for example those related to .mhx export, should make use of a subfolder in the makehuman/data/ path (makehuman/data/mhx/). Third-party plugins might have slightly greater lattitude about including data than core assets, but the clean separation of code and data is strongly encouraged. Therefore, third-party plugin developers should place data in makehuman/plugins/pluginName/data to make it easily identifiable. makehuman/data/ folder Most operating systems set aside separate storage space for code and data, and programs can generally not write data to their own directory structure. In addition, most OS support the notion of multiuser login, and support separate writable data areas for each user to customize. MakeHuman includes some "fixed data assets" that are intrinsic to the program. These data assets are save in the programs data folder within the program itself. However, MakeHuman also makes provision for third-party and user developed assets like additional clothes, additional hairstyles, etc. These latter assets are not saved in the program area but rather are save in user writable areas under the path userhome/makehuman/. For example, on Windows 7 systems this would be "Docuements/makehuman". In populating asset lists, the library holdings are generated based on the fact that syspath/data/itemtype and userhome/data/itemtype can coexist. Themakehuman/data/ folderdoes not contain any codeper se. As its name implies this folder contains the basic data resources that ship with MakeHuman. Often, during the development and building of MakeHuman, a given resource may exist in multiple formats. Many if not most resources initially exist as “text-based” files which are stored in the data directory with an appropriate extension (see section of file extensions). When MakeHuman is built for distribution on supported platforms, these text-based data resources are compressed into .npy format to produce a smaller and more rapidly loading distribution package. Typically, the original text-based data files do not ship with standard, downloadable installation builds but instead, the corresponding compressed versions are distributed. The data folder contains many subfolders which correspond to unique data assets. The details of these assets will not be discussed here, but the reader can get a general idea of asset types just by reviewing the folder names. 3dobjs, animations, bvhs, expressions, eyebrows, eyes, genitals, hair, icons, languages, litspheres, materials, mhx, poses, povray, proxymeshes, rigs, scenes, shaders, skins, targets, textures, themes, uvs, vertesgroups, visemes. Many of these data subfolders have subfolders themselves, but generally, this organization is easily discovered just by looking. Four of the data subfolders (eyes, hair, and clothes) are directed at important geometry assets of the MakeHuman model. MakeHuman supplies a special tool that lets developers or even end-users design additional assets using the 3D modeling program Blender. The name for this tool isMakeClotheseven though it supports the development of the other geometries as well. ==== /makehuman/apps/ ==== * catmull_clark_subdivision.py- an implementation of the!LINK!http://en.wikipedia.org/wiki/Catmull%E2%80%93Clark_subdivision_surface -- catmull clark subdivision algorithm.!/LINK! * devtests.py- testing and development use only, and can safely be ignored. * human.py- contains the Human class, which is the core data structure for MakeHuman model. * humanmodifier.py- contains the functions and classes that link the GUI sliders to their respective effects on the MakeHuman mesh. * metadataengine.py- implements algorithms to handle MakeHuman metadata tags within large files. It makes it possible to quickly and easily associate descriptive adjectives (tags) such as "eye" or "brown" with the complete file path to an object that has these characteristics. * mh2proxy.py- (unknown) * posemode.py- contains classes and functions relevant to entering and exiting posemode, and altering a figure's pose. Changing the pose of a figure will deform the mesh and require the vertex warps to be reset. * warpmodifier.py- contains classes and functions to handle the source and target of a warp. * which.py- checks to see whether or not a program exists (needed for the GUI controls). ==== /makehuman/core/ ==== * algos3d.py- contains algorithms used to perform high-level 3D transformations on the 3D mesh that is used to represent the human figure in the MakeHuman application. * aljabr.py- contains the most common 3D algebraic operations used in MakeHuman including vector, matrix, quaternion, and various other operations. * animation3d.py- contains functions and classes to animate a wide range of objects. Includes support for rotation, scaling, translation, camera movement, and variety of interpolation methods. * compat.py- (Unknown) * download.py- contains classes and functions to download media from the web and import it into MakeHuman. * events3d.py- contains classes to allow an object to handle events resulting from keyboard or mouse input, window resizing, and changes to the human model with MakeHuman. * export.py- (Not fully implemented) contains classes to export the MakeHuman model. * files3d.py- contains functions to convert other 3D file formats to and from the internal format used by MakeHuman. * geometry3d.py- contains classes for commonly used 2D and 3d objects such as rectangles, cubes, and flat meshes. * gui3d.py- contains classes defined to implement widgets that provide utility functions to the graphical user interface. * mhmain.py- contains the operations and event handlers that provide the core functionality of MakeHuman. * module3d.py- contains classes and functions to handle the appearance and behavior of 3D objects such as shading, texturing, visibility, transparency, and creating groups of faces. * selection3d.py- contains classes and functions that allow users to select elements within a 3D scene by clicking on them with the mouse using a technique called "!LINK!http://www.opengl.org/archives/resources/faq/technical/selection.htm -- Selection Using Unique Color ID's!/LINK!" * textures3d.py- contains functions to perform standard proccesses on bitmaps and translate UV coordinates to a pixel index in a bitmap. * transformations.py- A library for calculating 4x4 matrices for translating, rotating, reflecting, scaling, shearing, projecting, orthogonalizing, and superimposing arrays of 3D homogeneous coordinates as well as for converting between rotation matrices, Euler angles, and quaternions. Also includes an Arcball control object and functions to decompose transformation matrices. * warp.py- contains classes and functions to warp vertex locations from a source character to a target character. This makes it possible to correctly combine several morphs that affect overlapping regions of the body. ==== /makehuman/lib/ ==== * camera.py -handles camera events such as changing focus, camera mode, and field of view. * core.py -sets default global variables * debugdump.py -handles creating a debug text file in the user's home directory and writing relevant debug information to that file. * filechooser.py- a Qt based filechooser widget that allows the user to preview and select files as well as sort them by name, creation date, modification date, and size. * getpath.py- Utility module for finding the user's home path. * glmodule.py- contains classes and functions to render 3D objects with openGL in both draw mode and pick mode. * gui.py -alias from gui.py to qtgui.py * image.py- handles flipping and resizing images as well as converting between RGB, ARGB, and greyscale. * imageqt.py- handles loading and saving RGB and ARGB images. * inifile.py- contains functions for formatting and parsing .ini files. * language.py- handles language file loading and translation. * log.py- extends the functionality of Python's logging module. The logging module can be used to create log files of events for debugging, or to display information or warnings within MakeHuman. It is used instead of print statements. * matrix.py- uses the NumPy package to define standard matrix operations. * mh.py- Python compatibility layer that replaces the old C functions of MakeHuman. * object3d.py- defines the object3d class * profiler.py- defines functions to handle profiling (how long various parts of the program executed). === File formats and extensions === This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] Thetargets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found inalgos3d.pymodule (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. Thecompile_models.pymodule (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, thecompile_targets.pymodule (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau inMakeHuman.specfile, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file calledcleanpz.bat(for Windows) and a corresponding shell script file calledcleanpz.sh(for Linux) whose function is to delete NPZ files between SVN builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of SVN versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file namedclear.mhclois is used to restore the default UV map that comes with the system. In the lib folder, thefilechooser.pymodule has aMhcloFileLoader.Refresh()method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,and 3_libraries_polygon_hair_chooser.pyall access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses acage.mhclofile. In the tools folder, the tool ‘MakeClothes’ accessws MHCLO files in both the makeclothes.pyandmaterial.pymodules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py,import_obj.py,mt.py, andsettings.py. Finally, two experimental tools in the utils folder, themakeface.pyandhelpers.pymodules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. === Description of the file format === The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like:colorProperty R G B,where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit like if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. === Libraries and build procedures === With each MakeHuman release, packages are created for MS Windows, Mac OS X, and Debian derivatives for linux. At present there is not an operating system independent package (although the raw repository will work on all platforms). Each platform has special considerations that are addressed by the designated mainainter for that platform. === Dependencies === In order to run makehuman and/or build packages the following need to be installed on the system: * Python (Python 2.7 (python 3.x will not work).!LINK!http://www.python.org/download/ -- http://www.python.org/download/!/LINK!) * Python-numpy (!LINK!http://sourceforge.net/projects/numpy/files/NumPy/ -- http://sourceforge.net/projects/numpy/files/NumPy/!/LINK!) * Python-opengl (!LINK!http://pyopengl.sourceforge.net/ -- http://pyopengl.sourceforge.net/!/LINK!) * Python-qt4 (!LINK!http://www.riverbankcomputing.com/software/pyqt -- http://www.riverbankcomputing.com/software/pyqt!/LINK!) * Python-qt4-gl (Package required by some linux distributions only) For linux there are scripts (buildscripts/deb/install_deb_dependencies.bash and buildscripts/rpm/install_rpm_dependencies.bash) which will install all the necessary dependencies but please note that these scripts may not agree with all debian and rpm based distros so it may be worth reading the bash script contents prior to running them. === Assets === For obvious reasons, the binary assets (characters, textures, clothes, etc..) are not stored on Mercurial repository, but in two different places: * * Immutable single archive files of the assets of finished versions of MH are stored (disregarding patch version token) on bitbucket (!LINK!https://bitbucket.org/MakeHuman/makehuman/downloads -- https://bitbucket.org/MakeHuman/makehuman/downloads!/LINK!) * Assets still under development are store on Tuxfamily ftp:!LINK!http://download.tuxfamily.org/makehuman/assets/ -- http://download.tuxfamily.org/makehuman/assets/!/LINK! When a new version is released, the current ftp asset tree gets zipped and uploaded to bitbucket. In the tuxfamily asset store, the folder for that version's contents are replaced with an archive_url.txt file that points the download script to the right url. A new folder gets created on the tuxfamily host containing the assets to be included in the next release. For a released version, assets will usually not change, unless to fix bugs (in which case the previous archive is best kept, and a new one is created alongside it with a slightly different name), and the archive_url.txt file is updated. To download automatically the assets and place them in the correct folder on a local repository, it's sufficient to run the python script with the command: === Other scripts === In the makehuman root, there are a few scripts which need to be run: * cleannpz.sh (cleannpz.bat) * cleanpyc.sh (cleanpyc.bat) * compile_targets.py * compile_models.py * compile_proxies.py Note that all these are called automatically in the correct order by the "build_prepare.py" script in "buildscripts" when running one of the pre-existing package building routines below. However, when running makehuman from a source checkout, you will need to run these scripts in the above order. === General proceedings for making a package === On all platforms the following steps should be taken when making the package: * Update from HG repository (!LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK!) * Run the scripts in the makehuman root directory. These will for example compile target files to npz files * Copy all that's relevant to a work directory, excluding at least *.target, the utils directory and the tools directory (strictly speaking there are more that is not necessary, but it will have a minor influence) * Do platform-dependent stuff to the work directory * Zip the directory into a suitable installable format for the platform. ==== Linux ==== === Debian === In order for makehuman to work on Debian the following dependencies are needed. * python * python-qt4 * python-numpy * python-opengl * python-qt4-gl These can be installed by running the command below: On Debian/derivatives (Ubuntu kubuntu etc.) the whole package building is automated through the buildDeb.py script found in the "deb" folder. For Deb script see:!LINK!https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=default -- https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=d...!/LINK! To build a deb file, create an empty directory (for example /tmp/deb) and run: When the script has finished, the deb file will be available in /tmp/deb/output.There are some settings in the head of the buildDeb.py script for tweaking the output. === Fedora 19 64-biit RPM Packaging === These instruction have been written for and tested on Fedora 19 64-bit. You will never be able to run the MakeHuman HG version on distros such as RHEL/CentOS 6.4 or earlier, since they do not support python 2.7, not even if you enable RPMForge. The instructions may or may not work on other RPM-based distros. * * Install a Mercurial client (Hg) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- Makehuman BitBucket Repository!/LINK!. * Install required dependencies. As root, run the bash script for installing the required dependencies. buildscripts/rpm/install_rpm_dependencies.bash This script also installs optional but recommended dependencies. If you only want the really required dependencies, run * Run MakeHuman. Change working directory to the root of the makehuman tree: Then run: You will most likely want to do this as your normal desktop user, not as root. ==== Windows ==== * * Install an Mercurial client!LINK!http://tortoisehg.bitbucket.org/download/ -- (Tortoise HG client!/LINK!is a good choice on Windows) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- MakeHuman repository!/LINK!(see!LINK!http://www.makehuman.org/doc/node/development_infrastructure.html -- http://www.makehuman.org/doc/node/development_infrastructure.html!/LINK!) * Install required dependencies If you are using a 64bit Windows version (only applies to 64-bit computers), you can choose to use either 32-bit python or 64-bit python. Howver it is important that your library dependencies (NumPy, PyOpenGL, and pyQT4) are 32-bit if you use 32-bit Python and 64-bit if you use 64-bit Python. * Run MakeHuman. Start a command console (cmd.exe), change directory to the makehuman folder. Then run: ==== Mac OSX ==== To build MakeHuman for Mac OS X, you should: * * Download the MakeHuman OSX Builder from: !LINK!https://bitbucket.org/MakeHuman/makehuman-osx-builder -- https://bitbucket.org/MakeHuman/makehuman-osx-builder!/LINK! * Follow the included instructions (Instructions.rtf) === Development infrastructure === The development of MakeHuman is based on two fundamental tools: * Mercurial (HG), a stable and robust platform for distributed revision control, with the main repo hosted on!LINK!https://bitbucket.org/MakeHuman/makehuman -- Bitbucket!/LINK! * A collaborative software!LINK!http://bugtracker.makehuman.org -- development platform!/LINK!, based on!LINK!http://www.redmine.org/ -- Redmine!/LINK!. ==== Get the code from BitBucket. ==== Obtain the code from BitBucket repository is very simple, but you need to have Mercurial installed on your system. It's natively present on Linux systems, while for Microsoft Windows, a good software is TortoiseHG (!LINK!http://tortoisehg.bitbucket.org/ -- http://tortoisehg.bitbucket.org/!/LINK!). To clone the repository to your PC, just use this command: hg clone!LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK! With tortoiseHG, you can do it visually, with: right-click --> TortoiseHG --> clone ==== Using Redmine in MakeHuman development ==== Redmine is a very powerful tool. [To expand with technical information about the roadmap organizations, the subprojects, and how to use it to accept experimental features] === Development organization === !IMAGE!Pictures/mh-hg-infographic01.png!/IMAGE! The Unstable branch is where the development happens. This is our working branch, and so we can refer to it as default branch too. The Stable branch is used for official release only. It's just for mainteinance of the current official version. It's rarely used, except in the case of very noticeable bugs that will cause a service release. Any bugfix in the Stable must be merged in Unstable. When the Unstable is ready for the release, it's merged in the Stable and a tag (a sort of bookmark) is created on this exact revision. !IMAGE!Pictures/mh-hg-infographic02.png!/IMAGE! Working on experimental clone for new features in early development is a great comfort for the developer. He doesn't have to keep his code on the local drive since he can commit it immediately. It doesn't matter if the code does not work yet or breaks the app, it is the private playground of the developer. !IMAGE!Pictures/mh-hg-infographic03.png!/IMAGE! To start up a new feature yet unproven or that is unsure how to implement it exactly, or for a big refactor that might make a lot of problems until solved, we will create experimental repos, cloning the main one. One repo for (large) feature. !IMAGE!Pictures/mh-hg-infographic04.png!/IMAGE! Once the developer has something to show, he can communicate with other team members so they can: * clone the experimental repo to a new folder on their local disk * test it * give feedback * perhaps even commit fixes Once a feature is proven to work well enough and accepted by the rest of the team, it can be merged in official unstable branch, where it can be integrated in nighly build version and further finalized (it can now be tested by a broader audience and we will receive bugs reports from them) !IMAGE!Pictures/mh-hg-infographic05.png!/IMAGE! It is also possible that an external programmer, without commit rights on the official repo, make changes on his own personal clone (that he can make public on his own account if he desires). This is a good way to test new team members, where we can accept changes after verifying them. When we trust a new developer, we can give him direct access to official repo. === Getting started === The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. In order to procced easily. it is recommended you use the tools available at!LINK!https://bitbucket.org -- https://bitbucket.org!/LINK!. The general procedure is: * Go to!LINK!https://bitbucket.org -- https://bitbucket.org!/LINK!and sign up (if you don't already have an account) * Go to !LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK! * Click "fork" (it's hidden under "..." in the button menu) !IMAGE!Pictures/fork.jpg!/IMAGE! * Enter a name and description of your choice (the fork will end up on your account, so it doesn't matter what you call it). Use "fork at tip" and don't check "this is a private repository" * You should be redirected to the new repository on bitbucket * clone your new repository to your local harddrive (if you need a primer on how to clone or use bitbucket,!LINK!https://confluence.atlassian.com/display/BITBUCKET/Bitbucket+201+Bitbucket+with+Git+and+Mercurial -- see their tutorial!/LINK!) * Make your code changes locally. Do not make a feature branch, work directly on the default branch. * Commit and push the changes to your repository on bitbucket * Go to your repository on bitbucket and click "pull request" (in the button menu at the top right of the page) * Write a good description for what your changes concern and click "create pull request" Once you have done this, the makehuman team will get a notification that there is an incoming code changes. This will be reviewed and either merged or rejected. If you want to continue working with updates in the future, make sure your fork is up to date with changes in the makehuman repository. Go to your repository, click the "..." button in the button menu and choose "compare", click the compare button on the page you get to. Merge any incoming changes. If your tree is hopelessly out of sync with the makehuman tree, just delete it and make a new fork. Better that than accidentally getting junk in your pull requests. Before starting with any of the above, you might want to read up on how to run makehuman from a source checkout rather than from a binary download. The short story is that you need to install a few dependencies. More information can be found here:!LINK!http://www.makehuman.org/doc/node/libraries_and_build_procedures.html -- http://www.makehuman.org/doc/node/libraries_and_build_procedures.html!/LINK! === Application design and Code overview === ==== Structural Organization of MakeHuman ==== MakeHuman is organized hierarchically. There is a root application (type gui3d.Application) that handles rendering of objects (guicommon.Object). These objects can be added/removed to/from the root application. Objects added to root application are always visible in the canvas.[I'm wondering if this is really true? - There are object on hidden tabs and the skeleton or mesh can be visible or not. Am I confusing the distinction between 'canvass' and 'view'? - RWB] Every added object has an openGL counterpart. mhmain.MHApplication inherits from root application to constructmain application. A view is a visual context. A tab is a view, for example, the main application is a view.[The main application IS a view or the main application HAS a view? "the "main application frame/window is a view?"- RWB] The Root application[you do meanrootand notmain? - RWB]contains Categories. A Category (gui3d.Category) is a specialised view object which contains multple taskiew objects (gui3d.TaskView). Taskview objects are specialised view objects with a panes and tab. In context of MakeHuman interface, Category objects constitute the upper row of tabs while taskview objects constitute the lower row of tabs. Objects (guicommon.Object) can be added/removed to/from a taskview. Objects added to a taskview are only visible if the taskview is visible. For example, a skeleton added to the skeleton chooser is only visible when the skeleton chooser taskview is visible. Objects added to root application[root not main? - RWB]are always visible. Thus objects like human and all proxies such as clothes are added to theapplication,because they should always be visible. Visiblilty can be disabled by setting the visibility flag on objects but an object that is not added to a currently visible taskview, or the application, is not visible, even if its visibility flag is set positive. [Wording needs improving -- 'should always be visible' and a 'visibility flag' are mixed message - RWB] An object can only be added to one context. So an object is either added to one taskview, or the application, not two different taskviews. Apart from root application, there is another application (type qtui.Application) which implements MH gui structures using Qtlibraries. mhmain.MHApplication inherits from this application too for handling of gui content.e General structure in MH can be represented as: !IMAGE!Pictures/mh-inheritance.png!/IMAGE! ==== Basics of event handling in Makehuman: ==== Makehuman is a GUI based, interactive, Qt application in which objects interact by sending messages to each other. The Qt class QEvent encapsulates notion of low level events like mouse events, key press events, action events, etc. A Qt application is event loop-based, which is basically a program structure which allows events to be prioritized, queued and dispatched to application objects. In a Qt based application, there are different sources of events. Some events like key events and mouse events come from window system, while some others originate from within application. When an event occurs, Qt creates an event object to represent it by constructing an instance of the appropriate QEvent subclass, and delivers it to a particular instance of QObject (or one of its subclasses) by calling its event() function. This function does not handle the event itself, but rather, it calls an event handlerbased on the type of event delivered, and sends an acknowlegement based on whether the event was accepted or ignored. QCoreApplication::exec()method enters the main event loop and waits until exit() is called. It is necessary to call this function to start event handling. In MH, it is done in lib.qtui.Applicationwhich inherits fromQApplicationwhich in turn inherits fromQCoreApplication: def start(self): self.OnInit() self.callAsync(self.started) self.messages.start() self.exec_() In MH, event handling falls in two broad categories. * Event handling forcontainers(application, categories, taskviews) * Event handling forwidgets(contained in containers) ==== Event handling for containers: ==== MH is organized hierarchically in the context of containers. At top is the main application (core.mhmain.MHMainApplication). It contains categories (core.gui.Category), which in turn contains taskviews (core.gui.TaskView). In a Qt-based application, there are five different ways of events processing, as listed below: * * Reimplementing an event handler function like paintEvent(), mousePressEvent() and so on. This is the most common, easiest, but least powerful approach. * ReimplementingQCoreApplication::notify( QObject * receiver, QEvent * event ). This is very powerful, providing complete control; but only one subclass can be active at a time. Qt's event loop and sendEvent() calls use this approach to dispatch events. * Installing an event filter onQCoreApplication::instance(). Such an event filter is able to process all events for all widgets. It's just as powerful as reimplementing notify(); furthermore, it's possible to have more than one application-global event filter. Global event filters even see mouse events for disabled widgets. Note that application event filters are only called for objects that live in the main thread.[I believe that MH is single threaded - implications? RWB] * ReimplementingQObject::event()(as QWidget does). If you do this you get Tab key presses[<--Explain what is special about TAB and shift-TAB presses ?- RWB], and you get to see the events before any widget-specific event filters. * Installing an event filter on the object itself. Such an event filter gets all the events, including Tab and Shift+Tab key press events[<--Explain what is special about TAB and shift-TAB presses ?- RWB], as long as they do not change the focus widget. In MakeHuman, approaches 2 and 4 are used for extensively for event handling. As part of strategy 2,inlib.qtui.Application (which extendsQApplication), notify has been reimplemented:[I don''t understand the implication of this? Expond? -RWB] def notify(self, object, event): self.logger_event.debug('notify(%s, %s(%s))', object, event, event.type()) return super(Application, self).notify(object, event) object is the receiver object. Class implementing notify has to be singleton. [Clarify? - RWB] In MakeHuman,MHApplicationsubclasseslib.qtui.Application.MHApplicationobject is the main application object. It's notify function receives notification from the event loop in the underlying Qt layer about each[container only or widgets too?]event, which is then relayed to receiver object's event method. Thereceiver object's event method is either inherited from QObject or reimplemented. The Receiver object then either sends TRUE or FALSE, as the case may be, to[WHERE??] - RWB lib.qtui.Applicationalso implements an event function, which is called if the receiver object isMHApplication objectitself. Then,lib.qtui.Application.event()checks if its a user-defined event or not,and it is so true is returned, else we call super class's event(). In case of true being returned,Qt dispatches event to receiver object's callEvent function which determines which function to be called on object to handle the event. Called function then handles the event or propagate it to its parent(or to current task if its application object), as may seem fit. ==== Event handling for widgets ==== Most of MH widgets are wrappers around Qt widgets. These widgets (defined in module lib.qtgui) inherit from the respective Qt widgets and the Widget class (lib.qtgui.Widget). MH makes use ofsignal and slot mechanismby making the connection between the signal originating from the Qt layer and the corresponding handler function. For example, class TabBase connects the signal 'currentChanged' to its function 'tabChanged' as follows: class TabsBase(Widget): def __init__(self): super(TabsBase, self).__init__() self.tabBar().setExpanding(False) self.connect(self, QtCore.SIGNAL('currentChanged(int)'), self.tabChanged) ...................... Any class inheriting from TabsBase(e.g., lib.qtgui.Tabs or lib.qtgui.TabBar) also gets this facility. So now whenever signal 'currentChanged' is emitted from Qt layer function 'tabChanged' is called. The result is that when a user clicks the mouse on a tab, the 'tabChanged' code will be called, Similarly, MH Slider widget connects various slider operations to its event handling functions as: ........................... self.connect(self.slider, QtCore.SIGNAL('sliderMoved(int)'), self._changing) self.connect(self.slider, QtCore.SIGNAL('valueChanged(int)'), self._changed) self.connect(self.slider, QtCore.SIGNAL('sliderReleased()'), self._released) self.connect(self.slider, QtCore.SIGNAL('sliderPressed()'), self._pressed) ........................... [-- EDITING/PROOFING ENDS HERE - RWB --] ==== Overriding vs event decorators: ==== The View, Category and Application classes inherit from events3d.EventHandler, hence they have callEvent() function. The events that apply to this category are usually application-wide. If user make a change that impacts the whole application, and whole application must know about this change, then best way to do so is to call callEvent() for all the taskviews of the application,as follows: for category in self.categories.itervalues(): for task in category.tasks: task.callEvent('onMyEvent', params) A good example is the event of makehuman's scene changing(core.qtui.MHApplication._sceneChanged). So when callEvent is called on a taskview object and it has onMyEvent implemented,it is being called. In core.gui3d.View too one can see that most of the events (onShow, onMouseDown,...) on the taskview are propagated by default to their parents - the categories. The categories also are views, so the events are propagated again to their parent, the application. If, again, the application or any category has an onMyEvent method, it is executed. There are some events that affect the application, but only a single task at a time,for example onMouseDown event. It only happens to the active taskview (the others are hidden, so they receive no mouse events). Once the mouse is pressed, an Application.currentTask.callEvent("onMouseDown", event)is issued. This causes the onMouseDown event to be received by the active Taskview, its parent Category, and finally the Application. This call executes any onMouseDown method in these objects. Apart from the Category events described above, there are events used for local purposes. Such events are handled withevent decorators. Suppose we have a new Taskview, FooTaskView. This Taskview has a 'mybar' member variable, which is of type Bar(events3d.eventHandler). The requirement is that when self.mybar executes code, we may want to communicate with its parent to inform it about an event that just happened. So, inside the code for Bar, is located a 'self.callEvent('onBaz', 42)' command. Thus, in the Bar class, we emit a timely event signal and use the event decorator to let the parent Taskview know about the event. In the FooTaskView class, but below the place where self.mybar is created, we add: @self.mybar.mhEvent def onBaz(event): # code on event. # guess what, event == 42. When now the self.mybar Bar reaches that callEvent, the above method, located in FooTaskView, will be executed. core.mhmain.MHApplication's human is perfect example of this approach.Human has onMouseDown event handler and we need to relay it to application. In loadMainGui function of MHApplication, we add decorator to human attribute as: def loadMainGui(self): .............. @self.selectedHuman.mhEvent def onMouseDown(event): if self.tool: self.selectedGroup = self.getSelectedFaceGroup() self.tool.callEvent("onMouseDown", event) else: self.currentTask.callEvent("onMouseDown", event) ............. Application.human.onMouseDown event is caught and it starts its trip from the Human; it is captured by the decorated method located in Application.loadMainGui (this is the place where the method is bound with the event), it is sent to the currentTask, propagated through the parent category, and finally reaches its destination, the Application. A more intense process happens on Human.onChanged. This is emitted when a save/load happpens, so the whole application has to know. So it starts from the human, captured by the decorated method in app, sent to ALL the taskviews in MH, and finally through the categories again to the app. ==== The MakeHuman Graphical User Interface (GUI): ==== The MakeHuman GUI is based on the pyQt library which, in turn, is built on the Qt library. Qt is a development framework for the creation of applications and user interfaces for desktop. Important GUI classes in MakeHuman are: lib.qtui.Canvas:This is the class in MakeHuman which takes care of rendering openGL graphics.It inherits from Qt's QGLWidget class which is a widget for rendering OpenGL graphics. QGLWidget provides functionality for displaying OpenGL graphics integrated into a Qt application. It is very simple to use. You inherit from it and use the subclass like any other QWidget, except that you have the choice between using QPainter and standard OpenGL rendering commands. The Canvas class reimplements three functions from parent class to perform openGL tasks: * paintGL() - Renders the OpenGL scene. It gets called whenever the widget needs to be updated. * resizeGL() - Sets up the OpenGL viewport, projection, etc. Gets called whenever the widget has been resized (and also when it is shown for the first time because all newly created widgets get a resize event automatically). * initializeGL() - Sets up the OpenGL rendering context, defines display lists, etc. Gets called once before the first timeresizeGL() orpaintGL() is called. lib.qtui.Application: This is the foundation class which manages GUI's control flow and main settings. It inherits fromQtGui.QApplicationandevents3d.EventHandler. QApplicationcontains the main event loop, where all events from the window system and other sources are processed and dispatched. It also handles the application's initialization and finalization.Application class holds gui main window(instance of lib.qtui.Frame). Application class receives event notifications from underlying Qt user intrface framework and dispatches them to appropriateuser intrface elements in MakeHuman. GUI architecture inMakeHumanMH can be depicted as follows: !IMAGE!Pictures/mh-uiarchitecture.png!/IMAGE! === Application Design Notes from IRC Chat with Thanassis === Thanasis comments on gaining the big picture of MH coding * [16:12:57] <Thanasis> I would avoid describing the different parts of code as different entities * [16:13:43] <Thanasis> ie. follow the object-oriented paradigm, and avoid thinking who is inherited by who etc. * [16:13:48] <Thanasis> more specifically * [16:15:03] <Thanasis> I mean, treat an object as a single object * [16:15:08] <Thanasis> I'll show an example * [16:15:45] <Thanasis> you have the application. Inheritance says it consists of three classes, QApplication, MHApplication, and mhmain.Application (names may differ a bit). * [16:15:58] <Thanasis> but it is only one object * [16:16:42] <Thanasis> We don't care if the QApplication activates a function in MH application, because it happens inside the same object * [16:16:50] <Thanasis> the application * [16:17:18] <Thanasis> we only pay attention to the interactions the application object has with other objects * [16:17:43] <Doctor_Hell_> but if you need to find a function, you need to follow the inheritage chain...no? * [16:18:24] <Thanasis> of course, in the code, yes. but in a diagram it will make it complex * [16:21:02] <Thanasis> well, let's go top-down * [16:21:29] <Thanasis> we have: QT, App, Tab, Task * [16:21:56] <Thanasis> The event starts from QT, and activates a handler in App * [16:22:22] <Thanasis> The App sends a new event to the current Task * [16:22:46] <Thanasis> The task handles it, and sends a copy to the parent Tab * [16:23:13] <Thanasis> And finally the Tab handles it and sends a copy to the App * [16:23:35] <Thanasis> which handles it, and stops * [Referring to how distrating it is to describe the big picture of MH, Thanasis comments ...] * "Distract? no, this does not consume any brain energy" * We love your help- the more the bettter -- Thanks [RWB] Comments Regarding MacroTarget slider processing/handling based on naming conventions: * [16:36:24] <Doctor_Hell_> [23:26] <Doctor_Hell_> another complex part to know is the engine coded by Jonas to automatically handel the targets using their name * [16:37:58] <Thanasis> uh. yes, that's a tough one too. I think it does, but I don't remember why and how, because it was a long time ago and Jonas changed the human modifier class since then * [16:38:18] <Thanasis> he simplified it, actually, but I haven't seen the new version yet * [16:38:34] <Doctor_Hell_> where is the code? * [16:38:49] <Thanasis> apps/humanmodifier.py, I think * [16:39:01] <Doctor_Hell_> Jonas should be very busy recently, since I asked him but he didn't reply me yet. * [16:42:37] <Thanasis> um by the way, reading humanmodifier alone won't help a lot. I would suggest starting from the macro plugin, to trace what happens when a slider is created, and when the user moves a slider. It might be easier this way Difficulties in understanding relationships between folder names / module names and the object structure * [16:39:36] <Doctor_Hell_> ANother thing to understand is why we have some code inapps, other incore, other in libs..the logic is not clear for me.. * [16:39:52] <Thanasis> ah, ignore logic in that part. :) * [16:40:20] <Thanasis> as far as I know it is all because of mh history so far * [16:40:29] <Thanasis> the way it developed. * [16:40:56] <Doctor_Hell_> I know some of it * [16:41:24] <Doctor_Hell_> in the early times,it was planned to have a core folder, with all important main files * [16:42:03] <Doctor_Hell_> then anapps folder, to contain many application based on the core files: makeHuman, makeANime, MakeToon, etc.. * [16:42:29] <Doctor_Hell_> butsharedandlibswere added later...I don't know why * [16:43:10] <Thanasis>libs, they are classes imported from c++ directly * [16:43:48] <Doctor_Hell_> ah ..so only the "shared" folder is the mystery * [16:44:04] <Thanasis> shared, they are later classes used by many different parts of the code at the same time * [16:44:15] <Thanasis> classes created later* * [16:44:28] <Thanasis> ie. material. It's used literally everywhere * [16:44:32] <Thanasis> progress too * [16:44:58] <Doctor_Hell_> ok..at least now it make sense, thank you * Comments on New API project * [16:45:39] <Doctor_Hell_> now that you have more time, will you look at the API? * [16:46:55] <Thanasis> 'time' != 'creativity'. I expect it will be easier to me after the start of the semester * [16:46:27] <Doctor_Hell_> if you are logged to MH site, you can see this:!LINK!http://www.makehuman.org/blog/the_makehuman_api_project_mhapi.html -- http://www.makehuman.org/blog/the_makehuman_api_project_mhapi.html!/LINK! * [16:47:02] <Doctor_Hell_> Also Joel has already created this:!LINK!https://bitbucket.org/joepal1976/makehuman-api-project/overview -- https://bitbucket.org/joepal1976/makehuman-api-project/overview!/LINK! * [16:48:52] <Doctor_Hell_> at the moment, you can just post a list of wished api in the issue 534 * [16:49:16] <Doctor_Hell_> we want to start the API in few weeks..they are fundamental, in order to have more contributors... * [16:51:05] <Thanasis> oh, boy. I want to clean up this code!LINK!https://bitbucket.org/joepal1976/makehuman-api-project/commits/aa5c12953fb2c8a1723b21bb0b7d90667653d615 -- https://bitbucket.org/joepal1976/makehuman-api-project/commits/aa5c12953...!/LINK!* ​Go for it? [RWB] :) The Doc_Hell Diagram (green and red arrows that even Glynn couln't understand) [Summary - concentrate on green arrows not red arrows to get the big picture] * <Doctor_Hell_> this is an example of bad diagram:!LINK!https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0 -- https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0!/LINK! * [16:52:48] <Thanasis> well, in your shape, the actual thing is about the green arrows * [16:53:19] <Thanasis> the red arrows could have been implemented in hundreds of different ways * [16:53:44] <Thanasis> but the important is their result, the green arrows * [16:53:53] <Doctor_Hell_> talking about how to draw the objects? * [16:54:26] <Thanasis> well, my idea was, do two shapes * [16:54:36] <Thanasis> the first without code * [16:55:10] <Thanasis> only showing the 5 steps like I explained above, ie, the green arrows * [16:55:28] <Thanasis> the second can explain each step in detail using the red arrows * [16:55:50] <Thanasis> but in any case the definition is the following * [16:56:04] <Thanasis> an event is, you send the name of a method to someone * [16:56:14] <Doctor_Hell_> ok...but also we have the description written by Manish. I'll show you it tomorrow * [16:56:21] <Thanasis> and that someone executes that method of theirs * [16:56:47] <Thanasis> sure, there are many ways to describe it * [16:57:00] <Doctor_Hell_> I hope we can find the best one * [16:57:07] <Thanasis> I think that they all match though in some certain key points * [16:57:52] <Thanasis> if these are filtered out, the explanation may be more simple And touching on API ideas ... * [16:59:09] <Doctor_Hell_> since the core is too complex for average python programmers * [16:59:36] <Thanasis> yes... perhaps the code could be organized in tiers. * [17:00:00] <Thanasis> core, classes, plugins, scripts * [17:00:27] <Doctor_Hell_> ah you are talking of the current code, not the simplified api * [17:00:54] <Doctor_Hell_> yes, it's a good idea..but what group under "core" ? * [17:01:25] <Thanasis> theapplication and its interfaces(ie.communication with the system and devices. QT, GL etc.) * [17:01:59] <Thanasis> classes are abstract, they use the application by calling its methods * [17:02:35] <Thanasis> the application uses the interfaces (QT, GL.these are actually harder than the application andcould be a sepparate tier) * [17:02:54] <Thanasis> thepluginsuse the classes to create objects * [17:03:26] <Doctor_Hell_> I see some possible confusion because: * [17:04:24] <Doctor_Hell_> - not all core modules are into core folder (for example qtui and qtgui are in libs) * [17:04:49] <Doctor_Hell_> - Classes are everywhere * [17:05:07] <Thanasis> yes, libs folder consists of both core and classes... indeed * [17:05:23] <Thanasis> andinterfacestoo * [17:06:51] <Thanasis> but in general, this separation exists somehow. I'm not sure how, but the past programmers instinctively created it, perhaps for better manageability * [17:08:14] <Thanasis> ie. Human is a class, Material too, Armature (probably making name wrong again), and to function I observe that they use callbacks of Application * [17:08:38] <Thanasis> They never use interfaces directly * [17:09:46] <Thanasis> Even for drawing the human, it is the Application that will give the Human's object3d to OpenGL, not the Human directly * [17:10:31] <Thanasis> and plugins use classes ie. they use the callbacks that Human, Material etc. have * [17:11:08] <Doctor_Hell_> Do you mean abstraction classes? * [17:13:27] <Doctor_Hell_> Thanasis: about new API:!LINK!http://bugtracker.makehuman.org/issues/534 -- http://bugtracker.makehuman.org/issues/534!/LINK! * [17:13:42] <Doctor_Hell_> and!LINK!http://bugtracker.makehuman.org/projects/makehuman/wiki/Abstraction_API_for_plugins -- http://bugtracker.makehuman.org/projects/makehuman/wiki/Abstraction_API_...!/LINK! * [17:13:57] <Doctor_Hell_> Feel free to add wished api calls === Q & A with Glynn Clements === Question: For an event when user clicks on a tab, Tabs class method tabChanged is called. QTabWidget documentation.There is no such method. Response: The tabChanged method is defined for qtgui.TabsBase (and overridden for qtgui.Tabs). Both qtgui.Tabs and qtgui.TabBar inherit from qtgui.TabsBase. Tabs inherits from both TabsBase and QTabWidget while TabBar inherits from both TabsBase and QTabBar. Both QTabWidget and QTabBar define the currentChanged signal, which is emitted whenever the current tab changes. The TabsBase initialiser connects this signal to the tabChanged method (lib/qtgui.py:109): class TabsBase(Widget): def __init__(self): ... self.connect(self, QtCore.SIGNAL('currentChanged int)'), self.tabChanged) ========================================================== Question: is it true that qtui module: low level module, that handles signals directly from QtCore, QtGui and QtOpenGL? Response: qtui defines the classes for the application (QApplication subclass), main window QMainWindow subclass), drawing canvas (QGLWidget subclass), and some associated support classes. In other words, it implements the high-level UI, or at least the aspects which are tied to Qt. Question: is it true that qtgui module: low level module, that define the basic widgets of the GUI as buttons, radiobuttons, etc.. Response: Yes; qtgui is essentially a compatibility layer between the Qt widget classes and the legacy MH GUI toolkit. The classes provide methods which more closely mimic the behaviour of original gui3d widgets. Qt events are translated to MH events3d events. Question: Is it true that gui3d module: high level module, that define the principal public classes of MakeHuman: Application, Category, TaskView and View. Response: This is what's left of the legacy MH GUI toolkit. Before the move to Qt, everything was a "View". Now it's just the high-level containers (Application, Category, Task) which exist as somewhere to put event handlers. Question: What is the purpose of the module guicommon.py? Looking at the module name, it appears to be a sort of library for the GUI functions, but it's a completely different thing. What is it really? Response: Object used to be part of gui3d. Its primary function is to be the base class for Human. It's the other main subclass of events3d.EventHandler (the first being gui3d.View). It's not really accurate to call it a "wrapper" around Object3D (although it can have instances of both module3d.Object3D and object3d.Object3D as members). One of the main differences between guicommon.Object and module3d.Object3D is that the latter is a single mesh, while the former has up to four meshes (all of type module3d.Object3D): the base (or "seed") mesh, a proxy mesh, a subdivided mesh, and a subdivided proxy mesh. It [guicommon.py or guicommon.Object ??RWB] also contains an object transformation (location, rotattion, scale) [method?], and optionally a display mesh (object3d.Object3D). As a subclass of EventHandler, it [guicommon.Object ??RWB] provides mouse handlers which propagate the event to the object's view (these are overridden for the Human within MHApplication.loadMainGui). Question: G.app is the singular mhmain.MHApplication instance; the callEvent method (inherited from event3d.EventHandler) will end up calling G.app.onMouseDownCallback. How the function callEvent end up calling G.app.onMouseDownCallback? Response: "direction" will be either onMouseDownCallback or onMouseUpCallback. Note the "Callback" suffix. So typical event flow for clicking on the human model is: G.app.mainwin.canvas.mouseUpDownEvent ("onMouseDownCallback") [Canvas.mouseUpDownEvent] G.app.callEvent("onMouseDownCallback") [EventHandler.callEvent] G.app.onMouseDownCallback() [gui3d.Application.onMouseDownCallback] G.app.selectedHuman.callEvent('onMouseDown', event) [EventHandler.callEvent] G.app.selectedHuman.onMouseDown() [local function in MHApplication.loadMainGui] G.app.currentTask.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.currentTask.onMouseDown() [View.onMouseDown] G.app.currentCategory.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.currentCategory.onMouseDown() [View.onMouseDown] G.app.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.onMouseDown() [MHApplication.onMouseDown] Notes: G.app.currentTask.parent == G.app.currentCategory G.app.currentCategory.parent == G.app Question: is the eventType string (also called 'direction') originated by QT? Response: No. "direction" is just so that code which is common to both mouse press and mouse release events can go into a single method (mouseUpDownEvent) rather than duplicating it in mousePressEvent() and mouseReleaseEvent(). Those functions are identical except for the name of the event passed to callEvent. Bear in mind that self.callEvent("onMouseDown", event) is almost the same as self.onMouseDown(event), except that callEvent forces a redraw after the event has been dealt with, and has some support for logging and profiling. Once you strip that away, the guts of callEvent() is just: method = getattr(self, eventType) method(event) ====================================================================== Question: Can the modularization of the code can be improved? Response: Modularisation is already quite good. Too much of it can make the code harder to understand. Currently, we try to avoid importing OpenGL or Qt modules (directly or indirectly) into modules which don't inherently depend upon them (e.g. guicommon.Object imports object3d locally in the attachMesh and detachMesh methods, so it only gets imported if you actually need to render the object). TODO ACTION. One minor point which I noticed: lib/camera.py imports glmodule solely for the queryDepth() call in convertToWorld2D (the Z coordinate is obtained by retrieving a value from the depth buffer using the X,Y coordinates). This should probably be a local import in that method, so that camera.py could be used in e.g. import/export utilities. ========================================================================== Question: [Referring to DocHell's red and green diagram (!LINK!https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0] -- https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0]!/LINK!] Response: I have no idea; I can't follow that [diagram]. It would probably help if you simply ignore CallEvent(), and treat object.callEvent('method',event) as just object.method(event). The two factors which make following the flow slightly complicated are: Methods aren't always defined within the class used to create an object, but may be inherited from one of its base classes. Event handlers may be dynamically added to an object with the mhEvent method (which is usually invoked using Python's decorator syntax). This is done for the Human object in MHApplication.loadMainGui(): @self.selectedHuman.mhEvent def onMouseDown(event): .... If you aren't familiar with the decorator syntax, the above is equivalent to: def onMouseDown(event): ... self.selectedHuman.mhEvent(onMouseDown) which in turn boils down to: def onMouseDown(event): ... self.selectedHuman.onMouseDown = onMouseDown ================================================================================= Question: Could you provide an explanation of what a weak reference is? How might this impact MakeHuman? Response: [Jonas Hauquier ] A weak reference, one that is not accounted for by the garbage collection. Garbage collection removes objects from memory that have no pointers to them anymore. Weakrefs are not counted among those, so if the object has only weakrefs pointing to it, and not real pointers, it will be removed anyway. This is to make sure that object A and B that always point to each other, are not kept in memory just because they keep referencing each other (I believe the garbage collection does not do expensive graph traversals to check what is still referenced by the active context). [Glynn Clements] Sort of. Python uses both reference-counting (which can't handle circular references) and reachability-based garbage collection (which can). If an object's reference count reaches zero, it will be finalised immediately. But an object with a non-zero reference count can still be finalised if it can be determined that it isn't reachable during a garbage-collection sweep. However: the garbage collector won't attempt to finalise reference cycles if any of the objects in the cycle have a __del__ method, as it can't determine a safe order in which to execute them. Instead, it adds them to a list, accessible as gc.garbage. Application code can inspect this list, manually finalise the objects (which should break the cycles), then remove them from the list (otherwise their presence in gc.garbage will itself constitute a reference). It's possible to have the garbage collector report such cases using gc.set_debug(gc.DEBUG_UNCOLLECTABLE). Only a few MH classes contain __del__ methods. These will only present a problem if the object itself is part of a cycle (i.e. contains references to "complex" objects which themselves contain references which could lead back to the original object). "Leaf-node" classes such as Texture and Shader shouldn't present a problem unless their creators attach additonal references to them. This may be an issue for e.g. qtgui.Slider and qtgui.RadioButton, as these have __del__ methods and will naturally create circular references. Use of weakref may be advised here. Similarly for queue.Thread. SceneItem in plugins/7_scene_editor.py may also be a problem. ============================================================================= Question: Could you clarify wherther the following acurately describe the use of decorators? A basic decorator is a function that: 1) Gets a function "A" as argument 2) Modifies the behavior of "A" 3) Returns a "decorated" version of "A" Response: Correct. Question: Topic: Decorators and side-effects. When is a decorator not about generating a function? So, if the above accurately descibes a decorator, consider the code: @self.selectedHuman.mhEvent def onMouseDown(event): This should translate: onMouseDown = self.selectedHuman.mhEvent(onMouseDown) One would expect that using mhEvent as decorator, it returns a function, but instead, it returns None: def mhEvent(self, eventMethod): self.attachEvent(eventMethod.__name__, eventMethod) How can it be used as decorator? Response: Because the returned "function" isn't actually used anywhere. The definition is local to loadMainGui(), which doesn't reference the functions, so the fact that e.g. onMouseDown is None within loadMainGui() doesn't matter. The mhEvent() method is used for its side-effects, not its return value. It attaches an event to the selectedHuman. It is equivalent to: self.selectedHuman.attachEvent(onMouseDown.__name__, onMouseDown) ============================================================================== == Packager's notes == Notes for packagers of Makehuman stables and nightlies. === Packaging RPM's for Suse/Fedora using Open Build Service (OBS) === The Open Build Service is a service formerly known as the Opensuse build service. OBS allows packagers to build packages for several targets. Here a target is a particular OS version E.g. Suse 13.1, Suse 12.3, Fedora 20 , Ubuntu 14.04 and so on. OBS being a build system by itself can be hosted anywhere even on local infrastructure. For MakeHuman packages we use the OBS instance hosted by Novell at build.opensuse.org This document will briefly outline the typical packaging workflow for Suse and Fedora. Both distributions use the RPM format and subsequently adhere to RPM's packaging rules. !IMAGE!Pictures/obs-flow-chart-scaled.png!/IMAGE! === 1) Prepare source tarball: === OBS does not allow pulling from the internet once the rpm is being processed into a package so. When creating the source tarball you should assemble it either on your own computer or a server online (even a VPS will do). There are several Important files and scripts which are of interest to us. One is build_prepare.py this assembles the main folder and all the common data which is needed by all OSes be it Mac or LInux distros or windows. This script is essential to run. Then there is build_rpm.py. We borrow some of the initial code in this and use it on our bash script but we do not build the whole RPM because OBS does that. Another third inportant file is build.conf (this stores the configuration used by build_prepare.py to make the source tarball). Using the above scripts/files I prepared a Bash script which is shown below. The above script assumes the following: * You have cloned MakeHuman's Mercurial (Hg) repo into your home directory and it is located at ~/makehuman (cloning into ~/ automatically makes the makehuman folder) * You have python , numpy and pyQt4 installed (package names may vary from distribution to distribution) * You are running on a LInux distribution. * You want to prepare a source tarball from Hg tags. * $VERS is the latest user specified stable tagged version * makehuman-$VERS is your destination folder where all files are copied * the final tarball uses bzip compression. How the tarball is compressed is significant as RPM accepts only certain compression algorithms. The resultant file is makehuman-$VERS.tar.bz2 (E.g. makehuman-1.0.2.tar.bz2) * You use an FTP server whose file path is located at /var/ftp you can skip this step if the script is run locally by commenting the lines out. ​Explanation of the above script: In the first section we use Hg and extract available tags and ask the user for input on which stable tag he/she wants to build against. In the second section we automatically create the build.conf file which is used to specify if we want a release or development folder. Here we set isRelease=True In the third section we use build.conf along with build_prepare.py this creates a basic non-OS specific folder in home (~/). In the fourth section we copy extra files such as the .desktop file and the makehuman icon file, the shell wrapper for MakeHuman and remove the .bat file which is not needed in linux. Currently there is a bug where command line arguments are not passed by the shell wrapper to the python executable. We fix this by manually editing the file automatically in our bash script before copying it into the target folder to be tarballed. This is moved into the folder created earlier by build_prepare.py . With this we now have have a folder with all the basic requirements needed for packaging. FInally the folder is then tarballed and it is ready for upload to OBS. If you are not using an FTP server then comment out the “mv” command which moves the tarball to /var/ftp in the shell script above. IN some distributions the FTP directory is /srv/ftp === 2) Upload the tarball to OBS === The next step is to upload the tarball to OBS. Firstly you need to create a username and password. Then login to build.opensuse.org and create a project. On account creation you get your own home directory. Two interfaces exist to OBS. One is the command-line interface which is available by installing the package "osc" it is available in most distributions. The other one is the Web User interface. Both are equally useful the command line interface is better for doing certain tasks however. OBS also has a feature called “ services”. Several services are available such as services to pull from various sources e.g. FTP servers online, services to tarball the version controlled sources directly (tar_scm). You can make use of these _services (they are defined using XML notation in "_service" files). Read!LINK!”http://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService” -- Source Services!/LINK!; or you can manually upload your tarball through the Web UI or use the "osc" command line utility. To learn how to use the "osc" utility use "man osc" or view the manpage online. I would not recommend using _service files to pull the tarball as they can stop working. It is better to manually push the tarball to OBS. Either by pressing the upload button on the Web UI or placing the tarball in your project home directory created by using the “osc checkout” command. Then typing “osc ar” (add /remove) and finally “ osc commit -m ”put commit description here” “ to push and commit the changes you just made. You can also automate the above process by adding lines to the shell script but It is better to administer osc separately and manually to allow for more control. === 3) Prepare the spec file: === A .spec file is a special file which is used to build RPM's. It “contains information required by RPM to build the package, as well as instructions telling RPM to build it. The spec file also dictates exactly what files are a part of the package, and where they should be installed. The RPM specification is very well defined and it is fundamental than any packager develop a strong base in the fundamentals.” (taken from “Maximum RPM”) A very important book detailing the various capabilities of RPM is!LINK!”http://www.rpm.org/max-rpm/” -- Maximum RPM!/LINK!. This is a must read for any packager and will help in understanding the spec file shown below. If you have not read it please bookmark the page and give the book a read. I cannot stress how important it is. In OBS we have 2 main OS's which use RPM's as build targets Fedora and Suse. RPM provides macros to make packaging more standardised and easy. Most Macros are common however some are distribution specific. Below is the spec file used by the Makehuman project. For version 1.0.2. The above .spec file follows the general structure and format of spec files as per the RPM specification. The spec file has been formatted for for OBS by running “osc service localrun format_spec_file” then reading the contents to ensure that nothing went wrong and committing the changes back to OBS. In the above spec file we have split MakeHuman into 2 subpackages and made them depend upon each other to ensure consistency. As you can see there are 2 sources one is the tarball we created with our bash script earlier and there is another file called "makehuman.1" this is a manpage. In the spec file instructions are issued to gzip it and put into the manual directory on install. The manpage (Source101 in the .spec file) is shown below. How man pages are created is out of scope of this document. Man pages use gtroff. There are however ample resources online which can help with this. The .spec file has been commented to provide you with a better understanding of what is done at various stages. Once the .spec file has been updated on OBS it automatically triggers a rebuild duribg that time you can monitor the status of the build process and correct errors in your spec file or sources as they arise. === 4)Pushing changes to the official repositories === Once you are satisfied that your package is stable you can make a submit request to submit the package from the Web User Interface or run the command below. In the above command we submit the “makehuman” package to the OpenSuse “graphics” project. After this the package is reviewed by the maintainer of the graphics project and approved or rejected with comments given. You will receive an email after the project has been reviewed. Notes: * The .spec file and the manual page will change over time. The above is there for illustration purposes only. * You can find copies of the most recent stable .spec file and makehuman.1 manpage!LINK!:https://build.opensuse.org/package/show/graphics/makehuman: -- here!/LINK!. This is the stable version after a "submit request" to the official Suse repositories. 8d0cbbd591ce7ba590569617f6743320d9e68c0d 687 674 2016-05-20T08:37:48Z Joepal 14 wikitext text/x-wiki === Zoom, pan and rotate using the orbital camera === ==== Orbital camera ==== == Define Human Characteristics == This section illustrates the modeling of the human using theparametric approach. === Gender, Random, Measure and Custom === The gender plugin comprises sliders used to alter gender specific attributes of your human models. Currently there are 2 categories under this: * * Breast - this category, as the name suggests, comprises of sliders used to alter attributes related to the human female breasts such as firmness, size, pointiness etc. * * Genitals - This category comprises of sliders used to alter attributes pertaining to male/female genitalia. Currently only male genitals are supported. (Note: male genitals have to be enabled under Geometries->Genitals for this to have any effect). Note:For the upcoming MakeHuman 1.1 these sliders have been disabled and the Geometries->Genitals subpanel no longer exists this is because we no longer have male genitals as a seperate mesh. Seperate male and female!LINK!http://www.makehuman.org/doc/node/makehuman_alternative_topologies.html -- alternate topologies/proxies!/LINK!exists with/without genitalia which are to be used instead. ==== Random modifier ==== !IMAGE!Pictures/random2_2_0.png!/IMAGE! The random modifier is used to auto generate human beings with randomised parameters. The interface comprises of 3 checkboxes, 2 sliders and 2 buttons. * Macro checkbox -This checkbox is used to toggle whether "Macro" attributes such as age, tone/muscle, gender are randomised or not. * Height checkbox -This checkbox is used to toggle whetherthe height attribute is randomised or not. * Face checkbox -If this is enabled the facial features of the model are randomised. * Symmetry slider -THis is used to introduce Assymmetry in the model. * Amount -THis slider is used to control the amount of randomisation of the character done by the random plugin. * Replace current -usede to replace current model with a new random model. * Adjust current -this is used to alter the parameters of the current model. ==== Measure Panel ==== !IMAGE!Pictures/measure_1.png!/IMAGE! The "Measure" tab facilitates the end user in more precise modelling of the human form. With the measure panel you are able to use the sliders as well as specify the units as sliders for more accurate adjustment of proportions. Various proportions can be edited here such as the proportions of the neck, waist , arms, legs and so on. One example of where this would be useful is in modelling characters like Michael Phelps who has an arm span longer than his height making him a better swimmer. ==== Custom modifier ==== !IMAGE!Pictures/customtab_0.png!/IMAGE! The custom panel is primarily used for "custom morphs". Cusom morphs can be created by you using blender tools and then used inside makehuman. This tab will remain empty unless you make your own targets using blender scripts and import them for use inside blender. This would be used for instance if you wanted to make an "Elven ears" morph inside makeuman for a humanoid character. This tab is more relevant for advanced makehuman users. === Using MakeHuman Hairstyles and Clothes === ==== Hairstyles ==== The default MakeHuman™ humanoid model has no hair. However, you may want your model to have hair and a particular hairstyle. In MakeHuman™, you can choose from the available character hairstyles by first selecting the tabsGeometries > Hair. !IMAGE!Pictures/hair_1_0_0.png!/IMAGE! This opens the Hair library window. The Hair library window, as usual, is arranged in three sections. There is a left hand panel (currently empty, but that will include a tag filter), a center preview window showing your current character model, and a right hand panel containing a list of available hairstyles shown as a thumbnail with a label. For the moment, the default hairstyles within MakeHuman™ are only few types. The library will be expanded release by release. To be able to see your character with an available hairstyle, you must click on the thumbnail image with your mouse. === Changing or Removing Hairstyles and Hair === You can change an assigned hairstyle with another one by clicking on another thumbnail. For example, you can change the hairstyle "afro" of your model by clicking on the hairstyle "fhair" from the panel of thumbnails. Note that doing this will not combine the two hairstyles. If you are unhappy with how the chosen hairstyle looks on your model and want to return to the previous state of your model, you can press the Undo button at the top left of the screen. In case you want to return to the original state of the model prior to applying any hairstyles, just find the thumbnail named "None" from the gallery of hairstyles and click on it. Your model will now revert to the state that it had before applying any hairstyles to it. ==== Clothes ==== The default MakeHuman™ model is barefoot and has no clothing on. However, if you would like to dress your model in MakeHuman™ it is possible by simply clicking and loading clothing and shoes from the library of clothing geometry objects that are fitted to the model automatically. To dress your model press the tabsGeometries > Clothes. !IMAGE!Pictures/clothes_1_0.png!/IMAGE! The clothes interface is very similar to the hair one, with some differences: * Clicking on more items in the right panel will combine them. To remove an item you have to re-click it. * There is a tag filter in the left panel, useful to navigate through a big library. * An option called "Hide Faces Under Clothes" is provided to prevent portions of the body from intersecting the clothing and creating holes during animating. === Parametric Modelling === !IMAGE!Pictures/main_labelled.png!/IMAGE! The Main controls are accessed by going to the 'Modelling' tab and selecting the “Main” sub-tab. These controls define the major characteristics of a human being. controls are used to define the character's macro features. The first six corresponding to Gender, Age, Muscle, Weight, Height, Proportions respectively and the last three ( African, Asian, and Caucasian) correspond to ethnicity. !IMAGE!Pictures/age_0.png!/IMAGE! * Gender:The gender tab is used to define what gender the human being poseeses. Male or female or a mixture of both characteristics with either being dorminant. * Age:The age slider is used to alter the age of the human being as a whole. The above image shows human beings at various ages ranging from young to old. * Muscle:The muscle sider is used adjust the amount of muscle possesed by the human character. * Weight:The Weight silder is used to adjust the weight of the character. The default setting is the character with average weight. Used along with "Muscle" it can be used to specify the proportion of muscle and fat contributing to the weight. * Height:The Height slider is used to adjust the height of the characters. * Proportions:The proportions slider is used to adjust the the proportions, from "uncommon" to "idealistic". Ethnicity sliders:THe ethinicity sliders (African, Asian, Caucasian) are used to alter the ethnic traits of the human being. These slidersare dependent on each other such that the sum of all three sliders is always 100 percent or a value on 1. This means that an increase in the value of "African" slider will lead to a decrease in the value of the "Caucasian" and "Asian" sliders. This is rational because if for instance a human being is of pure African origin then he/she is expected to possess only African traits whereas if he/she is of mixed decent the character is expected to have a fusion of ethnic characteristics. A human being cannot be hundred percent African and hundred percent Asian. ==== Face modifiers: ==== !IMAGE!Pictures/face_modifier_labelled.png!/IMAGE! The makehuman face modifiers in makehuman are organised into several categories(eyes, nose , chine etc.) comprising of the morphs pertaining to varios facial features. The morphs available on the right hand side pertain to the category currently active. E.g. When the Head category is selected all morphs pertaining to the head such as head shape (oval ,round , triangular etc), angle and age are available. If the category was to be switched to Mouth size however all sliders related to that category would be visible and manipulatable. ==== Adjusting the Torso Shape: ==== !IMAGE!Pictures/torso_cropped_labelled.png!/IMAGE! In order to alter the torso-related features of the human we have to select the "Torso" sub-tab located under the main "Modeling" tab. In the torso section we are able toalter various attibutes such as stomach (size, pregnancy shape), body height, width and so on. ==== Arms and Legs Shape: ==== !IMAGE!Pictures/legs_modelling_2_0.png!/IMAGE! The "Arms and Legs" sub-tab is again located under the main "Modeling" tab. Here we can alter the various attributes related to the arms and legs such as hands, arms and feet. === Makehuman alternative topologies === Makehuman provides a group of alternative topologies which replace the base mesh and are designed for special purposes. These are useful for various applications such as simulation (E.g. a car crash computer simulator), games and so on. !IMAGE!Pictures/topologies_0.png!/IMAGE! In order to use the alternative topologies provided by MakeHuman; go to Geometries -> Topologies. For alternative topologies we follow a specific naming convention having the structureNameVertex-countE.g. proxy741 is a alternative topology named proxy with 741 vertices, female1605 is an alternative topology designed for females with 1605 vertices in the mesh. For illustration purposes we show the wireframe/mesh view of female1605 with 1605 vertices in the figure below. !IMAGE!Pictures/Proxies1.png!/IMAGE! === Skin and other materials === ==== Changing Skin Texture ==== By default the human has a texturless skin. Assigning a new skin material is very easy. Go in Materials Tab. You will now see a radio button option for "Skin" under the Human category choices section on the left side of the window. The right side will display available skin materials that can be applied to replace the default skin. By clicking on one of them your character will be displayed with the chosen material. !IMAGE!Pictures/materials_0.png!/IMAGE! ==== Changing Hair Textures ==== Same process as the skin, but selecting the "hair" radio button instead. The materials available depend by the type of hair loaded. !IMAGE!Pictures/hair2_0_0.png!/IMAGE! ==== Changing Clothes Textures ==== Changing clothes texture is exactly as the hair one, selecting the cloth type instead of hair. !IMAGE!Pictures/clothes2_0_0.png!/IMAGE! == Rendering Your Work == To write === Quick rendering and advanced rendering === ==== Introduction ==== MakeHuman™ has an internal rendering engine based on OpenGL technology: GLSL 1.2 for openGL 2.1 or superior. For this reason some features will be available only for machine(s) build after semptember 2006. For the same reasons, the results can vary a bit, depending the video cards. !IMAGE!Pictures/render_0.png!/IMAGE! ==== Quick render and advanced render ==== MakeHuman™ uses two different rendering approaches, quick and advanced rendering. Both them produce images with transparent background, in order to be eaily mounted in Gimp or Photoshop. The quick renderingis intended to for a click-and-see render. It uses fixed presets for lights and materials, studied to show the model in an optimal way. There are only ywo available options in that mode: * Resolution, written in the form widthxheight * Antialiasing(turn it on for quality rendering): Aliasing happens when model edges look 'jaggy'. Raise this slider to filter these. It also help hair and thin stuff in general look better. However raising the AA level can have an equivalent performance hit. The advanced renderinguse a different rendering technique. It gets the lights defined in "scene" and make complex calculations. In future it will supports shadows and more options to increase the realism. In addition to the two existing options, there is the subsurface scattering one. Enabling it will produce a more realistic and impressive skin, to simulate the skin's behaviour when light passes through it. When you have finished selecting the desired options, press the 'Render' button and see your model become a piece of 3D art! === Scene and Viewer === ==== Makehuman "Scenes": ==== MakeHuman™ provides a library of lighting presets, that will be used in the "advanced rendering" mode. This library is the "Scene" library which currently has only one lighting preset named "default". ==== The "Viewer": ==== The rendering result will be displayed in the "viewer". It's possible to zoom and move the image using the usual mouse buttons, and then save the image as png, using the "Save as" button. !IMAGE!Pictures/viewer_0.png!/IMAGE! == Settings == Setting the preferences in MakeHuman. === Background === The Background tab allows you to add background/foreground images to use as a modelling reference or to create a scene within MakeHuman™ for the Short Pipeline. When you open the Background tab you will see a "None" icon and a list of thumbnails of the files within the backgrounds folder in the!LINK!http://www.makehuman.org/doc/faq/where_is_my_home.html -- MakeHuman home folder!/LINK!, if they are present. The "None" icon is used to remove the background from the MakeHuman™ scene. !IMAGE!Pictures/background_0_0.png!/IMAGE! ==== Different backgrounds for different sides ==== Prior to selecting an image you should first determine the side of the MakeHuman™ scene where you want the image to appear. You can specify where you would like the background placed relative to your MakeHuman™ character with the Side control choices on the right hand side of the Background tab screen. The first six (6) options set the background in your scene using the standard Camera view positions. If you choose the last radio button option labeled "Other" you can add the background into the scene with the character and camera position however it was last set, as long as it was not in one of the predfined camera views. If you are placing an image to act as a reference image for modelling your character, you should select the side that matches your reference facing. You can insert up to 7 different images into the MakeHuman™ scene by applying a different image to each Side option. As the camera view changes into each side view or other view angle, the image shown will change as match your image side configuration for each of the camera side views shown in the modelling window. The background image, in fact, will only appear while the camera remains in the side view specified. Pressing one of the camera view options is the easiest way to get a background image to reappear if it disappears due to a camera view change. ==== Background opacity and position. ==== The Background Setting options allow you to set the background image's opacity using the Opacity slider control, which determines how transparent or opaque the image will appear in the scene, and to set the image as a background or foreground. These controls are particularly useful when you are using reference images to model your character. The standard Opacity setting of 100 is equivalent to a 60% transparency level. Setting the control to 0 will make the image invisible (100% transparency) and setting the opacity control to 250 will make the image fully opaque (0% tranparency). The "Show in Foreground" checkbox option allows you to place the image in front of the character in the scene so that the character will be obscured according to the opacity level setting of the background image. This option should be checked if the image will be used as a reference image for modelling. The background can be moved and resized to properly fit the character, checking the options in the left side and then clicking and dragging with leftbutton or rightbutton. === General === ==== General Settings ==== The general settings include important features that can make a huge difference in MakeHuman's performance. !IMAGE!Pictures/general.png!/IMAGE! === Slider behaviour === * Update realtime. This option recalculates the human shape in real time during the slider movements. This requires more CPU resources. * Update normals real time. By enabling this option, the normals are updated during the slider movements in order to see a correct shading in real time. Computing the surface normals requires an intensive CPU calculation, so this can slow down old PCs. * Fit objects in realtime. By enabling it, all objects (eyes, hair, clothes, teeth, etc..) are fitted in real time during the body transformations. This requires more CPU resources. * Autozoom camera. Enabling it will automatically zoom in the camera to the zone of interest. For example, editing the head, it will zoom in to it, editing the hand, it will automatically zoom in to the hand, etc.. This can be useful in some cases, but it doesn't allow custom point of view, so this option is disabled by default. * Slider images. Enable the images to illustrate the sliders' effect. Disable it for a more compact list of controls. === Units === This setting is to choose the measurement system that will be used : * Metric, to use meters, centimeters, etc * Imperial, to use inch, feet,etc.. === Startup === * Preload macro targets. This option is very important for perfomance and startup loading time. Using the preload increases a lot the performance, but in the case when the targets are not compiled (for example the raw targets cloned from HG) it will considerably increase the loading time during startup. * Restore windows size. This option is just to remember the custom windows size used for MakeHuman. === Theme and languages. === These options areself explanatory. MakeHuman needs to be restarted for a change in the language settings to be effective. === Mouse === ==== Managing mouse configuration: ==== THe "Mouse" tab allows you to configure the behaviour of the mouse in makehuman. !IMAGE!Pictures/mouse_001.png!/IMAGE! The first wiidget in the left panel contains one slider labelled "3D viewport Speed". This slider controls the how sensitive the viewport is to mouse movement. As you increase this parameter the viewport become increasingly sensitive to mouse movements, thereby moving faster. Tweak this parameter with care. A value of one is the default speed at which makehuman models rotate and move in response to the mouse. Increase this parameter if you feel that the movements are too slow for your liking. The second widget inside the left panel is the "Camera" widget this widget allows you to configure the mouse settings used to control the camera. This also allows you to invert the mouse wheel. Note:With the orbital camera, panning is available only in certain situations. Therefore, the "Move" shortcut has been made available for configuration. If you cannot pan your model it may not a bug. === Shortcuts === THe "Shortcuts" tab helps us to manage shortcuts in makehuman. For your convinience shortcuts have been organised into 3 categories. The first category with the largest number of shrrtcuts available for configuration is the "Camera" category whose panel is located on the left hand side. THe other two categories are "Actions" and "Navigation". The "Action" panel helps us to alter shortcuts for actions such as undo and redo. The "Navigation" panel helps us to set shortcuts to quickly navigate between various frequently used tabs in Makehuman. !IMAGE!Pictures/shortcuts-mh_002.jpg!/IMAGE! ==== How to use the Shortcuts Tab ==== Managing of shortcuts is very easy inside makehuman. Just select the appropriate box with the current shortcut key andf type in thenew shortcut key/key combination. Makehuman will warn you if there are duplicates. === Plugins === Makehuman is designed using a modular approach. All features within makehuman belong to one module or the other. THese modules are called Plugins. With the help of the "Plugins" tab in makehuman we can enable or disable certain plugins thereby altering the feature set available. This feature is useful when: 1) A particular feature is uneeded and you want to improve performance of makehuman by disabling it. 2) A particular plugin is giving problems on your machine and you would like to disable it to avoid accidently triggering the fault again. !IMAGE!Pictures/plugins-mh_002.png!/IMAGE! By default all plugins are enabled plugins can be disabled by clicking on the option buttons and removing the "x" next to the related plugin. == Reporting a Bug == How to help MakeHuman development reporting a bug. === Using the Makehuman log files for error reporting === Occassionally, MakeHuman will not behave as expected, or you will note an exception in the status line, You willingness to make a bug report.for such events goes a long way to help imrove MakeHuman. For simple bugs,, it can often be enough to report the version of your operating system, the version of MakeHuman that you are using, and the steps to reproduce the problem. However, the developers often need to know more detail to reproduce your problem in a different environment. As long as MakeHuman has not "crashed" completely, the easiest way to learn the details is to use thebuilt-in log viewer. This can be accessed by selecting theutilities taband then thelog subtab. On the left, you will see alevel selectorthat is initially set to "default". The center panel will show a very verbose set of all the actions that have happened inside MakeHuman since it was last restarted. This entire set of information is seldom needed. For bug reporting, you will be most interested in the messages that show when you set the level selector to "error". If severe problems have occurred, the center window will show the errors logged in red. If there are none, it may still be worth reporting the somewhat less severe "warning" level messages which resulted in code exceptions. These messages will show in orange if you set the level selector to "warning". Only seldom will levels of "notice" or "message" be of interest to developers. Supply these only upon request. When you find "errors" or "warnings" you can highlight the message(s) with the mouse and press the "copy" button in the left panel. The message will be copied to your clipboard. Simply paste these messages at the end of your bug report. In the event that MakeHuman crashes completely, or in the case of complex problems it may be better or easier to upload more complete log information from the log files. MakeHuman always creates 2 important files called "makehuman-debug.txt" and "makehuman.log" in the user's home directory (under "My Documents/makehuman/v1" in Windows or "~/makehuman/v1" in your linux distribution). makehuman-debug.txt:This provides some essential information about the system on which you have installed makehuman such as version information, machine architecture type, numpy versions and so on which is useful when reporting a bug as the bug may be applicable to your particular machine configuration. makehuman.log:The makehuman.log file is another separate file. This file logs all events that take place from the beginning when makehuman is loading till the end when makehuman is closed. ALl regular events and error messages are logged in this file. It is important that you attach either this whole file or the last few signinficant lines indicating where the bug occured. This logs contains backtraces and other useful information like what plugins loaded, what plugins did not at which point did a python script fail and so on. When reporting a bug in the makehuman bugtracker posting the contents of both these files is useful and will help us to debug and resolve the issue(s) more quickly. This is of course not needed when you are posting a feature request which is not a bug. === Using the Makehuman bug tracker === Makehuman has introduced a new internal bug tracker based on redmine (!LINK!http://www.redmine.org -- www.redmine.org!/LINK!) this tracker allows us to easily handle bug reports and feature requests reported/requested by you. In order to use this new bug tracker a forum account is compulsory (even if you do not wish to use forums). Your forum ID becomes your makehuman bug tracker ID. Following are some quick links related to makehuman bug tracker: * Roadmaps:!LINK!http://bugtracker.makehuman.org/projects/makehuman/roadmap -- http://bugtracker.makehuman.org/projects/makehuman/roadmap!/LINK! * Add a new issue and see the isues list:!LINK!http://bugtracker.makehuman.org/projects/makehuman/issues -- http://bugtracker.makehuman.org/projects/makehuman/issues!/LINK! * Graph for a quick overview:!LINK!http://bugtracker.makehuman.org/projects/makehuman/issues/growth -- http://bugtracker.makehuman.org/projects/makehuman/issues/growth!/LINK! * Activity:!LINK!http://bugtracker.makehuman.org/projects/makehuman/activity -- http://bugtracker.makehuman.org/projects/makehuman/activity!/LINK! == Tools and contributing methods == Blendertools and contributing methods === MakeTarget standalone === ==== Making Wavefront .obj Files MakeHuman™ Compliant ==== The following procedures should be followed to create Wavefront .obj files that comply with the requirements of MakeHuman™ using modelling software programs such as 3dMax, Maya, XSI, etc. * * Download the 1.x base mesh base.obj file from MakeHuman!LINK!https://bitbucket.org/MakeHuman/makehuman/src/c40af22cebf2d5372b931b485f60588f42f24480/makehuman/data/3dobjs/base.obj?at=default -- HG repository!/LINK! * Import it into your preferred modelling software * Modify it in order to create your final character * Export it as .obj (of course with a different name than base.obj) During editing of the base mesh be careful about 3 things!You have to pay attention that: * The import/export does not alter the number of vertices, the faces, does not split the obj, etc. The topology has to be the same as the original one. * When modifying the base, you do not delete or add vertices, do not add or remove faces, etc. The topology has to be the same as the original one. * The 3D program used also preserves the exact order of the vertices. ==== There are no other limitations on the .obj files used. ==== ==== Making Targets with MakeTarget™ StandAlone ==== ==== Using the MakeTarget GUI program ==== To obtain the MakeTarget GUI program, download and install either the Windows version or the Linux version at the bottom of the download page of the MakeHuman website at: !LINK!http://makehuman.org/content/download.html -- http://makehuman.org/content/download.html!/LINK! Looking at the GUI of MakeTarget, you can notice other elements: the (+) and (-) lists, the possibility to process whole directories and to have .obj as output. These are batch tools, designed for MakeHuman developers. Let’s go on to describe an usual scenario. Assuming you have 30 “chin” targets modelled on the young caucasian female. These targets will create artifacts when applied on a young asian female. So our artists have to process 30 targets in order to create an asian version from all of them. The steps are: * For each chin target, do: asian-female-young.target + chin.target and save the result as .obj. * Import each .obj in a modelling software, fix the artifacts by hand and export the corrected .obj. * For each corrected .obj, subtract the asian-female-young.target and save the rest as asian version of the chin target. For step (1) we will process an entire directory, choosing “Directory” as “input source” and targets as input type. Then we will “add” the asian-female-young.target, loading it in the (+) section. Then will choose “Obj” as “Output type”. !IMAGE!Pictures/image01.png!/IMAGE! Pressing the “Make” button, the entire folder will be processed, and in the same directory of targets we will see the newly created .objs. At this point, we can copy the folder, renaming it as “chin_fixed” and deleting the original targets. For step (2), we have to import, edit and export each .obj individually, as showed previously for the single target. After completing step (2), all .objs in “chin_fixed” will be fixed and ready to be converted into targets. So, it’s time for step (3). Again, we will process the entire directory, but this time the input type will be “Obj” and the output “Target”. Also, this time we will subtract the asian target, in order to obtain only the chin morph. !IMAGE!Pictures/image00.png!/IMAGE! Pressing the “make” button, this time we will obtain a series of .target, with the same name as the original objs, placed in the “chin_fixed” folder. That’s all! ==== Command Line Usage ==== This tool allows wavefront .obj files to be used that were edited using any 3D program. The only limitations are that the edit stems from the original base.obj file and that no vertices, edges or faces are added or removed. The 3D program used also needs to preserve the exact order of the vertices. There are no other limitations on the obj files used. Usage: There are a commandline version and a version with graphic user interface. Both do exactly the same thing. Here follows the explanation of how to use the commandline version. Options: -i --in input obj or target -o --out output obj or target -s --sub target to subtract from obj -a --add target to add to obj -d --dir input folder to load all objs or targets from --intype type of file to be input, obj (default) or target only applicable if --dir is used --outtype type of file that will be output, obj or target (default) -h --help this info -v --verbose verbose mode, shows extra information Usage scenarios: Load foo.obj as input, compare it with base.obj and output the difference as foo.target. Load foo.obj, subtract foo1.target from it, and output the difference between the resulting obj and base.obj as foo.target. Load foo.obj, add foo1.target to it, and output the difference between the resulting obj and base.obj as foo.target. Load all objs from myfolder, save the difference between the base.obj and each of the input objs to a target file with the same name as the input obj. Load all objs from myfolder, subtract foo1.target from each of them, and save the difference between base.obj and each of the resulting objs to a target file with the same name as the input obj. Load all objs from myfolder, add foo1.target to each of them, and save the difference between base.obj and each of the resulting objs to a target file with the same name as the input obj. Load foo.target, apply it to base.obj and output the resulting obj as foo.obj. Load all target files from myfolder, apply each of them to base.obj and save the result of each to obj with the same name as the target file. Load all target files in myfolder, apply each of them to base.obj while also subtracting foo1.target from the result. Save each combination to an obj with the same name as the input target. Load all target files in myfolder, apply each of them to base.obj while also adding foo1.target to the result. Save each combination to an obj with the same name as the input target. This is the usage information as can be obtained by running the "maketarget.py --help" command. Some additional scenarios that are not documented are possible with the tool. The user is protected from issuing commands that make no sense (eg. do nothing) as the tool will warn you about this. Also note that files are never overwritten. Upon encountering an already existing file this file is backed up as original_filename.bak. Additional backups of the same file are named in order original_filename.bak.0 original_filename.bak.1 etc. The GUI version of the tool does exactly the same thing. The exact same options (except help and verbose) are available in the GUI. The only difference between commandline and GUI version is that the GUI demands you specify an --in or --dir parameter. With the commandline tool you can do without as long as you specify some --add or --sub targets. ==== Compiling Binaries ==== For the ease of distribution a pyinstaller configuration is supplied to create a self-contained binary executable for both windows and linux. (MAC OS might work but is untested). For running this executable, the user does not need to install python or any other libraries (such as wxwidgets) on his computer. For building the package, however, you need to have those dependencies installed, and need to build the package on the target OS. There are two build files available: * compilePyinstaller.bat,for building a windows executable * compilePyinstaller.sh for building a linux executable (might work for OSX too) In order to use them you need to create a folder called "pyinstaller" in the makehuman/tools/standalone/maketarget folder. The build configs were tested with pyinstaller 1.5.1, but might work on future or older versions too. Additionally these dependencies are needed for the respective operating systems: Windows: * Python 2.7 !LINK!http://python.org/ -- http://python.org/!/LINK! I recommend using python 2.7 as I had issues with 2.6 and pyinstaller. The tool works fine with python 2.6, however * pywin32 !LINK!http://sourceforge.net/projects/pywin32/ -- http://sourceforge.net/projects/pywin32/!/LINK! Python extensions for windows. Needed for pyinstaller to work. * wxpython2.8 !LINK!http://www.wxpython.org/ -- http://www.wxpython.org/!/LINK! WX Widgets libraries and python wrappers for windows. Installable as one singe package.I recommend using the wxPython2.8 win32 unicode package for python 2.7. * UPX (optional) !LINK!http://upx.sourceforge.net/ -- http://upx.sourceforge.net/!/LINK! This is a tool for compressing the executable and reduce its size. Compression will happen automatically if UPX is installed. To install UPX copy upx.exe to C:\WINDOWS\system32 Note: you will need at least UPX 1.92 beta due to incompatibilites with the Visual Studio compiler, with which newer versions of python are compiled on windows. Linux: * Python 2.6 !LINK!http://python.org/ -- http://python.org/!/LINK! Version 2.7 works fine too. * python-wxgtk2.8 * libwxgtk2.8 !LINK!http://www.wxpython.org/ -- http://www.wxpython.org/!/LINK! !LINK!http://www.wxwidgets.org/ -- http://www.wxwidgets.org/!/LINK! WX Widgets libraries and python wrappers for wx * UPX (optional) !LINK!http://upx.sourceforge.net/ -- http://upx.sourceforge.net/!/LINK! This is a tool for compressing the executable and reduce its size. Compression will happen automatically if UPX is installed The pyinstaller script will create all the files that need to be distributed in a folder called dist/ (this will be an .xrc file, the executable, and a resources/ folder containing images used in the GUI). You can archive the contents of the dist/ folder and distribute these freely as a standalone application. === wxWidgets specific information === The GUI of this tool has been made using the python version of wxWidgets. The GUI form itself is not created using application code, but is instead loaded from the maketarget.xrc file that declares the GUI. This file was built using wxFormBuilder (!LINK!http://wxformbuilder.org/ -- http://wxformbuilder.org/!/LINK!). The file maketarget_gui.fbp is the source file that can be opened in formbuilder. The xrc file is output generated using the formbuilder application. However, the xrc could be edited manually too (but this would cause fbp and xrc file to go out of sync). === More information === For more specific details you can contact the author Jonas Hauquier at the makehuman.org website. === MHBlenderTools: MakeTarget === ==== What is a Target? The MakeHuman Morphing Process. ==== The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. !IMAGE!Pictures/morph1.png!/IMAGE! A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format,.target. ==== Loading the Base Mesh ==== While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. !IMAGE!Pictures/maketarget131-area.png!/IMAGE! The MakeTarge™ Version 1.31 Panel (Initial Settings) !IMAGE!Pictures/maketarget131.png!/IMAGE! Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file !IMAGE!Pictures/helper_details.png!/IMAGE! Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. !IMAGE!Pictures/maketarget-base.png!/IMAGE! ==== Basic usage ==== === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === !IMAGE!Pictures/MakeTarget_load.png!/IMAGE! After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™base. === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. ==== Advanced usage ==== === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. !IMAGE!Pictures/maketarget131-panels.png!/IMAGE! At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image below beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. !IMAGE!Pictures/maketarget3.png!/IMAGE! === Load Target Section (After The First Target Is Loaded) === !IMAGE!Pictures/MakeTargetLoadSecondaryTarget.png!/IMAGE! The three buttons that now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. === Discard And Apply Target Section === !IMAGE!Pictures/MakeTargetDiscardAndApplyTarget.png!/IMAGE! The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. === Symmetry Section === !IMAGE!Pictures/MakeTargetTargetSymmetryButtons.png!/IMAGE! The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === !IMAGE!Pictures/MakeTargetSaveTargetSection.png!/IMAGE! Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === !IMAGE!Pictures/MakeTargetFitTargetButton.png!/IMAGE! !IMAGE!Pictures/MakeTargetSkirtEditingAffectOnly3.png!/IMAGE! When the fit helpers have been included as part of the target, the additional options of the MakeTarget™panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. === MHBlenderTools: MakeClothes === === Overview === MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that theclothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within %USER%/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. === Using MakeClothes addon === MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. !IMAGE!Pictures/mc2-010-main.png!/IMAGE! The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: * Base Mesh: The MakeHuman mesh without any targets applied. * Average Male: A caucasian young male. * Average Female: A caucasian young female. * Average Child: A caucasian young child. * Average Baby: A caucasian young baby. * Base Mesh with Helpers: The MakeHuman mesh without any targets applied. * Average Male with Helpers: A caucasian young male. * Average Female with Helpers: A caucasian young female. * Average Childwith Helpers: A caucasian young child. * Average Baby with Helpers: A caucasian young baby. * Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The picture below shows the result of pressing "Load Human Mesh", with type set to Base Mesh. !IMAGE!Pictures/mc2-011-main_0.png!/IMAGE! A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and wrongly detected as a human item) * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. !IMAGE!Pictures/makeclothes03.png!/IMAGE! === Glue clothes to the body === The clothes are meshes that be done directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with thesame namemust exist in the human mesh as well. Only human vertices in the correct vertex group will be considered when making clothes. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === If vertex groups need to be reassigned, e.g. because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image above, called "Create Vertex Groups From Selection". Selecting a cloth, the button change in "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate onlya partof the human vertices withallvertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the image below, vertices assigned to the Mid and Left groups for a nude human. !IMAGE!Pictures/auto-vert.png!/IMAGE! === Generate the clothes file. === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/a8/data/clothes, in order to be inbcluded automatically in MakeHuman. ==== Advanced tools ==== Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === !IMAGE!Pictures/options-01.png!/IMAGE! Show selection.This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go in edit mode, move the mous on a vert and press Lkey to select the linked vertices), you can just press these buttons. Show Materials. This will show a button to export the materials only. It's useful in case there are not changes on geometry, but only on the material, in order to avoid to recompute all. Show UV projection.This section is useful mainly for making proxy meshes. * Recover seams.Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be reference for marking seams for the clothing. * Auto seams. * Project UVs.Automatically create an UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. * Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. === Show ZDepth, Show Offset scaling === !IMAGE!Pictures/options-02_0.png!/IMAGE! Show ZDepth.This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). * Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and lingerie, Socks and stockings, Shirt and trousers, Sweater, Indoor jacket, Shoes and boots, Coat, Backpack. * Set Z depth.Set the Z depth depending on the selected depth name. * Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be dialledmanually for fine-tuning. Show Offset scaling.The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. * Body part.Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. * Examine.Select the boundary vertices with Set boundary is invoked. * Set boundary.Set the boundary to vertices determined by the selected body part. * Custom Boundary.To manually set the bounday box. * X1, X2, Y1, Y2, Z1, Z2.The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. === Show Setting, Show License === !IMAGE!Pictures/options-03.png!/IMAGE! Show Setting.The setting include the author name and the export path. It's possible to save and restore the settings. Show License.This set of options are to add theauthor name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. * Author. Defaults to: Unknown. * License. Defaults to: AGPL3 * HomePage. Defaults to:!LINK!http://www.makehuman.org/ -- http://www.makehuman.org/!/LINK! === GUI languages and translations. === Our GUI is available in many languages, but translations are not yet complete. Anyway now contributing in order to add a new language is very easy, since the MakeHuman project is now available for translation on!LINK!http://www.transifex.com/organization/makehuman/ -- Transifex!/LINK!. !IMAGE!Pictures/languages.png!/IMAGE! Transifex is a web application for localization in an easy and agile way. !IMAGE!Pictures/transifex.png!/IMAGE! If you want to help the MakeHuman project by translating the GUI into your language, you first need to create an account on Transifex. Then, when logged in, you can go to!LINK!https://www.transifex.com/projects/p/makehuman/ -- the MakeHuman Transifex page!/LINK!and click on the appropriate language you want to translate. Then click the "Join team" button. Now you can click the current release name (for example "Alpha 8") entry and click "Translate now". If you want to make a translation in another language that is not yet listed, click "request language" on the!LINK!https://www.transifex.com/projects/p/makehuman/ -- MakeHuman transifex page!/LINK!. We will make sure to accept it as fast as possible, so you can start translating. Translating is quick and easy. You can select the "Untranslated strings" filter to show only the things left to translate. Click the first word on the left, and in the center of the screen enter your translation in the input box. When done typing, simply press the TAB button on your keyboard, and it automatically goes to the next entry. Repeat this process untill everything is translated. You can leave things open you are uncertain about, and leave them for later. Perhaps others know a good solution. You can interrupt your work at any time and continue working later, or leave it for others to finish. If you already have a translated file on your hard disk (for example you made modifications to an already existing language .ini file of MakeHuman, or you have filled in a .missing language file), you can upload it as translation and Transifex will automatically include it in the translation. You will be also able to download the json file of your language, in order to put it in makehuman/data/languages. On restarting MakeHuman, the new language will be available as an option under "Settings". === MHBlenderTools: Download and installation === The Blendertools package is available on the download page:!LINK!http://www.makehuman.org/content/download.html -- http://www.makehuman.org/content/download.html!/LINK! The current version is 1.0.0, designed to work with MakeHuman 1.0.0 and with Blender 2.69. It's a zip package of four folders: * MakeTarget * MakeClothes * MakeWalk * mhx_importer To install the addons, these subfolders must first be copied to a location where Blender can find it. Depending on the operating system being used, the addons destination directory where Blender will look for user-defined add-ons, is * Windows 7: C:\Users\%username%\AppData\Roaming\Blender Foundation\Blender\2.6x\scripts\addons * Windows XP: C:\Documents and Settings\%username%\Application Data\Blender Foundation\Blender\2.6x\scripts\addons * Vista: C:\Program Files\Blender Foundation\Blender\%blenderversion%\scripts\addons (this is valid at least for blender 2.69) * Linux: /home/$user/.blender/$version/scripts/addons Note that the AppData folder in Windows 7 and the .blender folder in Linux are hidden folders. The location may also be different depending on your choices for setting up your operating system and Blender. For more information see the Blender documentation. To enable the MH addons, in Blender open the User Preferences window from the File > User Preferences menu, and go to the Addons tab. The Blendertools addons are located in the MakeHuman category. Enable them by checking the box in the upper-right corner, next to the running man symbol. If you want Blendertools to start every time Blender is restarted, press the "Save User Settings" button. !IMAGE!Pictures/mhx-pref.png!/IMAGE! === MHBlenderTools: MakeWalk basic workflow === MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ==== Retargeting: how it works ==== The goal of retargeting is to transfer a motion from a source armature (e.g. from a BVH file) to a given target armature (e.g. the MHX rig). However, it is not straightforward to assign the source action to the target rig, even if the bones have identical names. The motion of each bone is specified in local coordinates, relative to the parent and the bone's own rest pose. If the rest poses of the source and target armatures differ, the source F-curves can not be used directly by the target armature. !IMAGE!Pictures/makewalk-1.png!/IMAGE! The picture above shows a transformation in the local coordinate system. Since the parent's local Y points along its axis and its local Z points up, the child bone is rotated around the local X axis. This is not very useful if the target armature has a diffent rest pose. To retarget the pose, we therefore reexpress the transformation in the global coordinate system, as shown below. The local X rotation corresponds to a global Y rotation, and by a different angle. Once the global transformation matrix is known, we can reexpress it in the target bone's local coordinate system. The retargeting process thus consists of making two coordinate transformations: Source local => Global => Target local. This will ensure that the source bone and the target bone will have the same global orientation. !IMAGE!Pictures/makewalk_2.png!/IMAGE! Unfortunately, things are a little more complicated. We do not always want the source and target bones to have identical orientation. In particular, the root or pelvis bone may point in entirely different directions in different armatures. E.g. in the CMU armature rest pose the pelvis points forward-down, and in the MHX rig it points straight up. !IMAGE!Pictures/makewalk-3.png!/IMAGE! If we insisted that the root bone in the MHX rig would point in the same direction as in the CMU rig, the retargeting would not be very successful, as shown in the figure above. If we instead keep the rotation offset from the rest poses, the target pose becomes much better, as shown below. To calibrate the source and target armature against each other, MalkWalk introduces extra keyframes at frame 0, where both armatures are posed in T-pose. !IMAGE!Pictures/mcp-ret-060-calibrate.png!/IMAGE! In the rest of the animation, bones in the target armature copy the global rotations of the source armature, apart from differences present in the T-poses. In this way we can transfer animations from CMU to the MHX rig, despite the fact that the rest poses are very different. ==== Basic Workflow ==== === Retargeting === The MakeWalk panels appear in the tool shelf whenever an armature is the active object. Select the armature and press the Load And Retarget button. In the file selector, select the .bvh file. We choose the file 90_04.bvh from the CMU database. It is a cartwheel animation. !IMAGE!Pictures/makewalk-4.png!/IMAGE! After a short wait, the armature is doing gymnastics. !IMAGE!Pictures/makewalk-5.png!/IMAGE! At frame 0 of the animation the armature has been placed in T-pose. This is not part of the originial .bvh file, but inserted by MakeWalk to calibrate the source armature (defined by the bvh file) and the target armature (the selected armature in the viewport) against each other. === Supported armatures === MakeWalk works with most straightforward biped rigs with FK arms and legs, such as the Rigify meta-rig. There is also built-in support for some more complex rigs: the MHX advanced rig from MakeHuman, the MHX rig from MakeHuman and Rigify. !IMAGE!Pictures/makewalk-6.png!/IMAGE! It is often possible to use MakeWalk with other complex rig, but in that case the automatic bone identification may fail. If so, a bone map must be defined manually, see!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining a Target Rig Manually!/LINK!. === Troubleshooting === Retargeting is a rather involved subject, and it can sometimes result in poor motion. The process may even fail completely, usually because MakeWalk failed to automatically identify the bones of a complex rig. If this should happen, see!LINK!http://www.makehuman.org/doc/node/makewalk_errors_and_corrective_actions.html -- Errors and Corrective Actions!/LINK!. ==== Where to find BVH files ==== There are several different formats that mocap files can be stored in. MakeHuman's mocap tool can only deal with files in Biovision BVH format. BVH files can be bought from many commercial sources, but a large range of mocap files are also available for free download. Here are some sites I found useful. * CMU Graphics Lab Motion Capture Database: Hosted at Carnegie-Mellon University, this is a huge library of mocap files which can be downloaded for free. The web address is!LINK!http://mocap.cs.cmu.edu/ -- http://mocap.cs.cmu.edu!/LINK!. CMU hosts mocap files in three formats: tvd, c3d and amc. However, the mocap tool can only read BVH files, so none of these files can be used directly. Fortunately, B. Hahne at!LINK!http://www.cgspeed.com/ -- www.cgspeed.com!/LINK!has converted the CMU files to BVH. The converted files are located at!LINK!http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture -- http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture!/LINK!. * Advanced Computing Center for the Arts and Design (ACCAD): Hosted at the Ohio State University, this is another great source of free mocap files. BVH files can be downloaded from!LINK!http://accad.osu.edu/research/mocap/mocap_data.htm -- http://accad.osu.edu/research/mocap/mocap_data.htm!/LINK! * Eyes Japan (mocapdata.com):This is a Japanese company that sells mocap data commercially, but they also offer a huge number of motions for free. According to their homepage, mocapdata.com provides 744 premium motion data and 4197 free motion data. The only catch is that downloading requires registration. Not surprisingly, the homepage of mocapdata.com has the address!LINK!http://www.mocapdata.com/ -- http://www.mocapdata.com/!/LINK!. * The Trailer's Park: Free mocap data can also be found at the Trailer's Park,!LINK!http://www.thetrailerspark.com/ -- http://www.thetrailerspark.com!/LINK!. This site does not offer original data, but offer repacks of mocap data from other free sites for download. Free download is limited to some five packs per day, so some patience is required here. * Hochschule der Medien, Universität Bonn (HDM):!LINK!http://www.mpi-inf.mpg.de/resources/HDM05/ -- http://www.mpi-inf.mpg.de/resources/HDM05!/LINK! * The Perfume global site project #001:!LINK!http://perfume-dev.github.com/ -- http://perfume-dev.github.com/!/LINK! === MHBlenderTools: MakeWalk user interface === ==== The user interface ==== The user > interface of MakeWalk is located in under the Armature tab, and becomes visible when an armature is selected. It consists of six panels; the first one is open by default and the others are closed. !IMAGE!Pictures/makewalk-7_0.png!/IMAGE! * Load And Retarget: Select a BVH file and retarget it to the active armature. * Start Frame: The first frame in the BVH file to considered. * Last Frame: The last frame to be considered, unless the animation stops earlier. The difference last_frame - first_frame is the maximal number of frames after retargeting. The number of frames in the BVH file may be larger, if some frames are skipped due to subsampling * Detailed steps: When this options is selected, further buttons are show below * Load BVH File (.bvh). Load a BVH file, and create an animated armature from it. * Rename And Rescale BVH Rig. With the BVH armature active, and a target armature selected, rename and rescale the bones of the active armature to fit the target. * Load And Rename BVH File (.bvh). A combination of the previous two buttons. With a target armature active, load a BVH file, and create an animated armature with renamed and rescaled bones. * Retarget Selected To Active. Retarget the animation from a renamed and rescaled BVH armature to the active armature. * Simplify FCurves. Simplify the F-curves of the active armature. * Rescale FCurves. Rescale F-curevs of the active armature.What if retargeting fails? MakeWalk is designed to retarget animations to a given armature with a minimum of user intervention. However, retargeting is a complex process, and entirely automatic retargeting may fail or result in suboptimal motion. Information about how to identify and correct problems is found in!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Errors and Corrective Actions!/LINK!. A common problem is that automatic identification of bones in the target armature fails. A bone map can then be assigned manually, cf.!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Defining the Target Rig Manually.!/LINK! ==== Options panel ==== !IMAGE!Pictures/makewalk-8.png!/IMAGE! * Use Default Subsample. Blender normally plays the animation in 24 fps or 25 fps, but the animation in the BVH file may be recorded at a different speed. In particular, the BVH files from CMU were filmed at 120 fps. Enable this option to have the animation play at natural speed, irrespective of the frame rate in the BVH file. Other subsample options are described below. * Auto scale. Set the scale automatically based on the size of the left thigh. This choice has two motivations: * Almost all character do have a left leg. * The leg size is crucial for making walk cycles look good. * Scale. The default MakeHuman scale is decimeters - 1 unit = 1 decimeter. Translations in a BVH file are expressed in different units; often the base unit is inches, meters or centimeters, but more obscure units can also occur, e.g. in BVH files from CMU. If the scale is set incorrectly, rotations will still be correctly retargeted, but the character will appear to take giant leaps or miniscule steps. * Use Limits: If this option is enabled, MakeWalk honors any Limit Rotation constraints, and will not allow excessive rotations. If the animation in the bvh files exceeds some rotation limits, this makes the retargeted animation less faithful. On the other hand, the rig may not be built for excessive rotations, so unchecking this option can lead to other problems. * Unlock Rotation: If this option is disabled, MakeWalk honors any rotation locks. If the animation in the bvh files bend around locked axes, this makes the retargeted animation less faithful. If Unlock Rotation is enabled, any X or Z rotation locks are disabled. Y rotation locks (bone twisting) are never disabled. The reason for this is that in the MHX and Rigify rigs, forearm rotation is handled by deform bones controlled by hand twisting. * Auto source rig. The source rig (i.e. the armature defined by the BVH file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Source Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the source rig, based on the structure of the bone hierarchy. * Auto target rig. The target rig (i.e. the armature in the blend file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Target Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the target rig, based on the structure of the bone hierarchy. * Ignore Hidden Layers. Ignore bones on hidden layers when identifying the target rig. === Subsample and Rescale === If the Use Default Subsample option is set, the mocap tool will rescale the animation to fit the current frame rate. However, there are at least two reasons why you may want to load an animation at a different frame rate: * * To obtain a slow-motion or rapid-motion effect. * To quickly load an animation to see if the gross features will work out. If the Use Default Subsample option is disabled, the SubSample section becomes visible. * Subsample. Enable subsampling. * Subsample Factor. If the value of this property is n, only every n:th frame of the BVH animation is loaded. * Rescale. Enable rescaling. * Rescale Factor. If the value of this property is n, the time distance between keyframes is changed to n. * Rescale FCurves. Apply the settings above to existing F-curves rather than to the loaded animation. Rescaling differs from simply scaling F-curves in the F-curve editor. === Simplification === * Simplify FCurves. Remove unnecessary keyframes. * Max Loc Error. The maximal allowed error for location keyframes, in Blender units. A larger error results in fewer keyframes but less accuracy. * Max Rot Error. The maximal allowed error for rotation keyframes, in degrees. A larger error results in fewer keyframes but less accuracy. * Only Visible. Simplification only affect F-curves visible in the Graph editor. * Only Between Markers. Simplification only affects F-curves between the two outermost selected markers. The timeline must have at least two selected markers. ==== Edit panel ==== Loading and retargeting is normally only the first step in the creation of an animation from mocap data. There are many reasons why a loaded animation does not behave exactly the way you want it to: artifacts in the mocap data, differences in armature structure not compensated for correctly by the retargeting process, differences in body stature between the mocap actor and the target character, or simply that the filmed sequence does not do exactly what you intend.. It is of course possible to edit the action directly in the graph editor, but this is unpractical due to the amount of mocap data. The mocap tool offers several possibilities to edit an action at a higher level. These tools are colleted in the Edit Action panel which is located just below the Options panel. !IMAGE!Pictures/edit-action.png!/IMAGE! === Inverse Kinematics === * Transfer FK => IK: The load and retarget steps transfers an animation from a bvh file to the target character. However, only the FK bones are animated. Press this button to transfer the FK animation to the IK bones. Only works for the advanced MHX armature. If two markers are selected, only the animation between the markers is transferred. * Transfer IK => FK: Transfer the animation back from the IK bones to the FK bones. Useful if the IK animation has been edited, * Clear IK Animation: Remove all keyframes from all IK bones (arms and legs). * Clear FK Animation: Remove all keyframes from all FK bones (arms and legs). === Global Edit === * Shift Animation. Shift the keys for the selected bones at all keyframes.If two markers are selected, only the keyframes between the markers are deleted. * X,Y,Z: F-curves affected by the next button. * Fixate Bone Locations:Replace all location keys by their average. Only selected bones and keyframes between selected markers are affected. * Rescale Factor: Factor used by next button. * Rescale FCurves: Rescale all F-curves by the factor above. This is similar to scaling F-curves in the curve editor, but jumps are treated correctly. E.g., rotations of +180 degrees and -180 degrees are the same, but if we scale an F-curve with a factor two, the intermedate keyframe will have the average rotation 0 degrees, The Rescale FCurves button handles this case correctly. === Local Edit === This section could be called "Poor man's animation layers". A loaded mocap animation usually has imperfections that must be edited, but without changing the overall feel of the motion. The Start Edit button creates a new animation layer where differences from the original motion are stored as keys, called delta keys since delta often denotes a difference. * Start Edit: Start editing F-curves. * Undo Edit: Quit F-curve editing, without modifying the original F-curves. * Loc: Set a location delta keyframe. * Rot: Set a rotation delta keyframe. * LocRot: Set a location and rotation delta keyframe. * Delete: Remove all delta keyframes at the current time. * |<: Move to first delta keyframe * <: Move to previous delta keyframe. * >: Move to next delta keyframe. * >|: Move to last delta keyframe. * Confirm Edit: Modify the original F-curves and quit F-curve editing. The delta keys are represented by markers in the timeline. !IMAGE!Pictures/mwe-315-local-keys.png!/IMAGE! A delta key can be added with the Loc, Rot and LocRot buttons, and removed with Delete. There is no way to view the delta keys directly. In the viewport and the curve editor, the final pose is shown, which is the sum of the original pose and the delta key. A common use for delta keys is to correct for intersection with other objects or the character herself. The typical workflow is as follows: * * Start Edit. * Set a delta key at a good frame just before the intersection. * Set a delta key at a good frame just after the intersection. * Edit the pose a the frame(s) where intersection occurs. * If the intersection has been removed, Confirm Edit. If not, set new delta keys until it has, or Undo Edit to remove the delta layer. === Feet === * Left: Affect the left foot. * Right: Affect the right foot. * Hips: Affect the characters hip (COM) bone. * Offset Toes: Ensure that the toe is below the ball of the foot at all keyframes. Primarily useful for rigs with a reverse foot setup as explained below. * Keep Feet Above Floor: If a mesh object (typically a plane) is selected, shift the keyframes to keep the affected feet above the plane. The plane does not necessarily lie in the XY plane; if the plane is tilted, the feet are kept on the plane's upper side. If no plane is selected, the feet are kept above the XY plane (z = 0). The IK feet are affected if the rig has and uses IK legs, otherwise the FK feet are kept above the floor. If two markers are selected, only the keyframes inbetween are shifted. In a rig with a reverse foot setup, such as the MHX rig, the foot can rotate around the toe, ball, and heel. The reverse foot and toe bones are completely fixed by the corresponding FK bones, but the IK effector can be placed arbitrarily, as long as it ends at the toe tip. The transfer tool uses this freedom to make the IK effector perfectly horizontal, provided that the toe is below the ball and heel. !IMAGE!Pictures/refoot.png!/IMAGE! To use this feature we must ensure that the toe is below the ball of the foot, which is done by the Offset Toes button. === Loop And Repeat === !LINK! -- Loop Animation!/LINK! Create a loop of the action between two selected time markers, by blending the keyframes in the beginning and end of the loop. This is useful e.g. to create walk and run cycles for games. For good results, the poses at the beginning and end of the selected region should be similar. * Blend Range: The number of keyframes used for blending. * Loop in place: Remove the X and Y components of the root bone's location. * Loop F-curves: Loop the animation. !LINK! -- Repeat Animation!/LINK! Repeat the action between two selected time markers. The actions should preferably be looped before it is repeated, to make the beginning and end match seamlessly. * Repeat Number: The number of repetitions. * Repeat F-curves: Repeat the animation. === Stitching === Create a new action by stitching two actions together seamlessly. * Update Action List: Update the first and second action drop-down lists. * First Action: The name of the first action. * First End Frame: Last frame of the first action * Set Current Action: Set the first action as the current action. * Second Action: The name of the second action. * Second Start Frame: First frame of the second action. * Set Current Action: Set the second action as the current action. * Action Target: Choose between creating a new action and prepending the second action. * Blend Range: The number of keyframes used for blending. Same parameter as in Loop Animations section. * Output Action Name: * Stitch Actions: Stitch the actions together. === MHBlenderTools: MakeWalk armatures === ==== Source Armature panel ==== MakeWalk transfers an animation from a source armature, defined in a bvh file, to a given target armature. It uses an intermediate standard rig described in!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. The bone map from the source armature to the target armature hence consists of two parts: * A map from the source rig to the standard rig. It is defined in the MakeWalk: Source Armature panel. * A map from the target rig to the standard rig. It is defined in the!LINK!http://makehuman.org/doc/node/makewalk_target_armature_panel.html -- MakeWalk: Target Armature panel!/LINK!. !IMAGE!Pictures/mws-010-panel.png!/IMAGE! When a new scene is opened, the panel consists of the single button Initialize Source Panel. Once this button has been pressed, the following content is available: !IMAGE!Pictures/mws-020-auto.png!/IMAGE! * Reinit Source Panel: Reinitialization. * Auto Source Rig: If this option is enabled, MakeWalk will try to identify the source rig automatically. It may happen that MakeWalk fails to identify the source rig automatically, but this is very unusual. If it should nevertheless happen, it is possible to define the bone map manually in analogy with !LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- how it is done for target rigs!/LINK!. * Source rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected source rig (if Auto Source Rig is disabled) or to Automatic. * Bones in the active source rig. ==== Target Armature panel ==== The second part of the mapping from source to target armatures is defined by the panel labelled MH Mocap: Target armature. It is the top-most of the mocap tool panels, and is closed by default. When a new scene is opened, the panel consists of the single button Initialize Target Panel. Once this button has been pressed, the following content is available: !IMAGE!Pictures/mwt-011-panel.png!/IMAGE! * Reinit Target Panel. Reinitialization. * Target rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected Target rig (if Auto Target rig guessing is disabled), or is set to a matching rig (if automatic target rig identificiation is enabled). * Auto Target Rig. If this option is enabled, MakeWalk will try to identify the target rig automatically. However, automatic rig identification is not trivial for complex rigs, and it may fail. If so, the bone map may be specified manually, cf!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. If the bone map is defined. The target rigs available by default correspond mostly to the rig presets that can be exported from MakeHuman * MHX. An advanced rig from MakeHuman alpha 8. * MH Alpha 7. The MHX rig from MakeHuman alpha 7. * Rigify. * Ignore Hidden Layers: Ignore bones on hidden layers during automatic rig identification. * Reverse Hip. Select this option if the armature has an reverse hip. It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. * Identify Target Rig: Identify the target rig, i.e. find out how bone names in the active armature correspond to the internal names. This step is performed automatically during retargeting, but the identification can also be done separately for debugging purposes. The bone map appears in the area called FK bones below. * Set T-pose. Pose the active armature in T-pose. * Save T-pose. Option used by the next button. * Save Target File. Save the current bone map as a .trg file. If the Save T-pose option is set, also save a json file defining the T-pose. * FK bones. The bone map. The picture below shows automatic rig identification of the Rigify meta-rig (Add > Armature > Advanced Human). !IMAGE!Pictures/mwt-020-metarig.png!/IMAGE! === MHBlenderTools: MakeWalk troubleshooting. === ==== What if retargeting fails? ==== === Errors and Corrective Actions === This document will describe common errors and corrective actions. It may happen that MakeWalk fails to retarget an animation to a given armature. In that case an error message is displayed. !IMAGE!Pictures/mwa-100-error.png!/IMAGE! The error message consists of the following: Mocap error Category Detailed error message A link to this page MakeWalk errors are grouped into the following categories: * Load Bvh File * Rename And Rescale * Identify Target Rig * Automatic Target Rig * Manual Target Rig * Identify Source Rig * Retarget * General Error Load Bvh File Rename And Rescale Identify Target Rig === Automatic Target Rig === The most common problem is probably that MakeWalk fails to identify the target rig automatically. There are several possible reasons for this: * The character is not oriented correctly. In the rest pose, the character should be standing with up being the positive Z axis and facing -Y. * The armature is complex with extra bones not corresponding to a standard biped rig. * The armature only has IK arms or legs. MakeWalk retargets animations to the FK limbs, so if no such bones exist, the program will not work. !IMAGE!Pictures/mwa-110-reverse-hip.png!/IMAGE! It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. !IMAGE!Pictures/mwa-120-reversehip.png!/IMAGE! The advantage of such a setup is that the upper and lower body can be posed independently. However, MakeWalk failes to identify the bones, unless the Reverse Hip option has been enabled. If automatic bone identification still fails, bone mapping has to be made manually. How this is done is described in the next section. === Defining the Target Rig Manually === Internally, MakeWalk retargets animations to an armature with the following bone hierarchy. Here is a visual illustration of the bone hierarchy: !IMAGE!Pictures/mwa-010-armature.png!/IMAGE! In order to retarget to an armature with different bone names, we must define a map between the given bones and the internal names. By default, MakeWalk attempts to do this automatically. However, automatic bone mapping may easily be confused for non-trivial rigs. If this happens, one can define the bone map manually. A bone map for a target armature is defined by a .trg file located in the target_rigs folder under the makewalk directory. The folder already contains three files, for retargeting the MHX advanced rig, the MakeHuman, and Rigify. These rigs are too complicated to identify the bone map automatically, so MakeWalk recognizes these rigs and use the predefined bone map. Create a .trg file using an existing file as a template. E.g., a .trg file could look like this: Note that it is not necessary to define maps to all bones. Bone names must not contain spaces, since whitespace is used as a delimiter in the .trg file. If the bones in your armature do contain spaces, replace them by underscore ( _ ). MakeWalk treats space and underscore as equivalent, so this is not a problem, except for very strange naming convention. !IMAGE!Pictures/mwa-020-myrig.png!/IMAGE! Save the .trg file with the name my_rig.trg in the target_rigs folder and press the Reinit Target Panel button. My_Rig should now appear in the Target rig list. Select it. In the FK bones sections, the My_Rig bone names are now listed. Make sure that the Auto Target Rig option is deselected, to override automatic bone mapping. Finally go to the main panel and press Load And Retarget. The animation should now be loaded. === MHBlenderTools: MakeWalk utilities === ==== Utilities panel ==== This panel contains material that does not naturally fit into the other panels. !IMAGE!Pictures/mwu-010-panel.png!/IMAGE! === Default Settings === * Save Defaults: Save current settings as the default settings. * Load Defaults: Load the default settings from file. === Manage Actions === * Actions: A list of all actions in the scene, at the time when the Update Action List button was last pressed. * Filter: If selected, only actions belonging to the active character are included in the action list. When the mocap tool creates an action, the first four letters in the action name are taken from the rig name. * Update Action List: * Set Current Action: Set the action selected in the Actions list as the active action. * Delete Action: Permanently delete the action selected in the Actions list. The action must have zero users. It is quite cumbersome to permanently delete actions in Blender. The reason is that creating an action with hand animation takes much work, which should not be lost accidentally. The situation is different with mocap, where it is easy to fill up a blend file with many irrelevant actions. This button makes it easier to clean out such junk motions. * Delete Temporary Actions: Some tools create temporary actions, whose names start with a hash sign (#). Deletes all such actions. === Temporary properties === * Delete Temporary Properties. MakeWalk creates some properties for relevant posebones during retargeting. Pressing this button removes these properties. However, be aware that some of the tools in the Edit panel may fail if the temporrary properties are deleted. The temporary properties for the active posebone can be inspected in the N-panel. !IMAGE!Pictures/mwu-030-temp-props.png!/IMAGE! * McpBone: The name of this bone in the internal hierarchy. * McpParent: The parent of this bone in the internal hierarchy. * McpQuatW, McpQuatX, McpQuatY, McpQuatZ: The rotation of this bone in T-pose, represented as a quaternion. === T-pose === * Set T-pose: Set the current pose to T-pose. * Clear T-pose: Set the current pose to the default pose. * Load T-pose: Load a T-pose from a .json file to the active armature. * Save T-pose: Save the current pose as a .json file. === Rest Pose === * Current Pose => Rest Pose: Set the current pose to rest pose. === MHBlenderTools: MHX importer basic usage. === MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. Due to its tight integration with Blender's python API, it supports advanced features like constraints, drivers and properties that general-purpose formats like Collada or FBX do not support. ==== Export From MakeHuman ==== !IMAGE!Pictures/mx010-export.png!/IMAGE! After the character has been designed in MakeHuman, go to the Files > Export tab and select Blender exchange (mhx) as the Mesh format. Type the character's name in the box at the top and press export. An mhx file has been exported. ==== Import Into Blender ==== Once the mhx importer has been enabled, we can import the mhx file. Select File > Import > MakeHuman (.mhx). !IMAGE!Pictures/mx070-import.png!/IMAGE! In the file selector, navigate to the file that we just exported from MakeHuman, i.e. John Doe.mhx in the export directory. After a short while, the character appears in the viewport, ready for posing. !IMAGE!Pictures/mx080-import.png!/IMAGE! === MHBlenderTools: MHX default rigging === If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .MHX format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. The bones are grouped into bone layers. Bone layers can be turn on and off in the MHX Main panel that appears in the user interface pane (N-pane), which is found to the right of the viewport. N-pane visibility can be toggled on and off with N-key. The Root Layer !IMAGE!Pictures/mx210-root.png!/IMAGE! There are two bones on the Root layer: * master: the big bone located at the foot level. It is the ultimate parent of every other bone in the rig, and can be used to move the entire character, including ik effectors. * root: the wiggly bone located at the character's center of mass. It also moves the entire character, but IK effectors remain at a fix position. The Spine Layer !IMAGE!Pictures/mx220-spine.png!/IMAGE! The spine is an immedate child of the root bone. * spine: * spine-1: * chest: * chest-1 * neck * head On this layer the two clavicle bones are also found. They are children of chest-1 and also appear on the arm layers. The Head Layer !IMAGE!Pictures/mx230-head.png!/IMAGE! This layers contains the bones of the head (not the Neck and Head bones, however). * jaw: Jaw bone * tongue_base: Inner part of tongue. * tongue_mid: Middle part of tongue. * tongue_tip: Outer part of tongue. * eye.L: Left eye. * uplid.L: Left upper eyelid. * lolid.L: Left lower eyelid. * eye.R: Right eye. * uplid.R: Right upper eyelid. * lolid.R: Right lower eyelid. * gaze. Target that the left and right eyes are tracking. The FK Arm Layers !IMAGE!Pictures/mx240-fkarm.png!/IMAGE! The left forward kinematics (FK) arm layer consists of: * clavicle.L: Left clavicle. * deltoid.L Left deltoid muscle. * upper_arm.fk.L: Left FK upper arm (humerus). * forearm.fk.L: Left FK forearm. Y rotation is locked on this bone. To twist the forearm, rotate the hand bone instead. * hand.fk.L: Left FK hand. The bones on the right FK arm layer are analogous. Note that there are two shoulder bones: clavicle and deltoid. It is not trivial to pose the shoulder, and with two shoulder bones better deformation is possible. The drawback is that an additional bone must be posed. However, in the common case that the arm is well below shoulder level, the deltoid bone can often be ignored. The FK Leg Layers !IMAGE!Pictures/mx250-fkleg.png!/IMAGE! The left FK leg layer consists of: * thigh.fk.L: Left FK thigh. * shin.fk.L: Left FK shin. * foot.fk.L: Left FK foot. * toe.fk.L: Left FK toes. THe right FK layer is analogous. The Finger Layers !IMAGE!Pictures/mx260-fingers.png!/IMAGE! The long fingers on the Finger layers give a quick way to pose the fingers; the poses can be fine-tuned with the individual finger links on the Links layer. The bones on the left Finger layer are: * thumb.L: Left long thumb. * index.L: Left long index finger. * middle.L: Left long middle finger. * ring.L: Left long ring finger. * pinky.L: Left long pinky. The bones on the right Finger layer are analogous. Rotating a long finger around the local X will cause all finger links to curl (rotate around local X). Rotation around local Z only affects the first finger link. The Finger Link Layers !IMAGE!Pictures/mx270-links.png!/IMAGE! Each of the Finger Links layers contains fourteen bones; two for the thumb and three for each other finger. They are used to fine-tune the finger pose, once a rough pose is achieved with the long finger bones. The Palm Layers !IMAGE!Pictures/mx280-palm.png!/IMAGE! The left Palm layer contain the meta-carpal bones: * thumb.01.L: Parent of the left thumb bones. * palm_index.L: Parent of the left index finger bones. * palm_middle.L: Parent of the left middle finger bones. * palm_ring.L: Parent of the left ring finger bones. * palm_pinky.L: Parent of the left pinky bones. The bones on the right Palm layer are analogous. The IK Arm Layers !IMAGE!Pictures/mx300-ikarm.png!/IMAGE! The arms are controlled by FK by default, but inverse kinematics (IK) can also be used. To quickly switch between FK and IK, press the buttons labelled FK or IK in the MHX FK/IK Switch panel, which appears in the N-panel if an MHX armature is the active object. * clavicle.L: Left clavicle. Same bone as on FK layer. * deltoid.L: Left deltoid. Same bone as on FK layer. * hand.ik.L: Left hand IK effector. Positions and rotates the hand. Also controls forearm twist. * elbow.pt.ik.L: Left elbow pole target. Controls the location of the elbow, which lies in the plane spanned by the arm socket (head of upper arm), wrist (tail of forearm), and elbow pole target. * elbow.link.L: A rubberband that connects the elbow to the elbow pole target. This bone is merely a visual cue; has no effect and can not be selected. The bones on the right IK arm layer are analogous. The IK Leg Layers !IMAGE!Pictures/mx310-ikleg.png!/IMAGE! The legs are controlled by FK by default, but IK can also be used. To quickly switch between FK and IK, press the buttons labelled FK or IK in the MHX FK/IK Switch panel, which appears in the N-panel if an MHX armature is the active object. * foot.ik.L: Left hand IK effector. Positions and rotates the hand. * toe.rev..L: Left reverse toe. * foot.rev.L: Left reverse foot. * knee.pt.ik.L: Left knee pole target. Controls the location of the knee, which lies in the plane spanned by the leg socket (head of thigh), ankle (tail of shin), and knee pole target. * knee.link.L: A rubberband that connects the knee to the knee pole target. This bone is merely a visual cue; has no effect and can not be selected. * shin.ik.L: The foot bones and the pole target control the thigh and shin rotation, except for the twist (local Y rotation) of the shin, which is handle by this bone instead. The IK shin bone does not affect the bending of the shin, only the twisting. The bones on the right IK leg layer are analogous. !IMAGE!Pictures/mx320-revfoot2.png!/IMAGE! The IK leg has an reverse foot setup, which allows the foot to rotate around the toe, ball, and heel. * foot.ik.L: Rotate around heel. * toe.rev.L: Rotate around toe tip. * foot.rev.L: Rotate around ball. FK-IK Snapping In a rig with both FK and IK, it is useful to be able to switch between the two seamlessly. To this end, the MHX FK/IK Switch panel contains buttons to snap the IK to FK and vice versa, in such a way that the character's pose remains unchanged. !IMAGE!Pictures/mx330-fkik2.png!/IMAGE! To snap the IK bones to the FK pose, press the buttons * Snap L IK Arm * Snap R IK Arm * Snap L IK Leg * Snap R IK Leg respectively. Note that the FK buttons at the top of the panel change to IK. !IMAGE!Pictures/mx340-ikfk2.png!/IMAGE! To snap the FK bones to the IK pose, press the buttons * Snap L FK Arm * Snap R FK Arm * Snap L FK Leg * Snap R FK Leg respectively. Note that the IK buttons at the top of the panel change to FK. The Tweak layer !IMAGE!Pictures/mx360-tweak2.png!/IMAGE! This layer contains some rarely used bone that in some cases are useful to tweak a pose. * breast.L: Controls rotation of left breast. Useful mainly for female characters. * arm.socket.L: The left arm socket. Allows the left upper arm (FK and IK) to be moved away from the deltoid bone. * leg.socket.L: The left leg socket. Allows the left thigh (FK and IK) to be moved away from the hip. The right-side bones (with suffix .R) are defined analogously. !IMAGE!Pictures/mx370-markers2.png!/IMAGE! The Tweak layer also contains marker bones. They are used by MakeWalk to determine the location of the toe, ball and heel, so they can be moved up above floor level. Move these bones in Edit mode to fine-tune their locatation. The marker bones on the left side are: * toe.marker.L: Left toe marker. * ball.marker.L: Left ball marker. * heel.marker.L: Left heel marker. The marker bones on the right side are analogous. The MHX Control Panel The default behaviour of the MHX rig can be modified by changing some properties in this panel. !IMAGE!Pictures/mx410-gaze2.png!/IMAGE! * GazeFollowsHead: If 1.0, the gaze bone is parented to the head. If 0.0, the gaze bone remains fixed in space (it is parented to the master bone). * RotationLimits: If 0.0, all Limit Rotation constraint is ignored. If 1.0, they are honored. Default = 0.8. !IMAGE!Pictures/mx420-hinge2.png!/IMAGE! * ArmHinge, Left and Right: Determines whether the arm rotates when the shoulder does. * FingerControl, Left and Right: Determines whether the finger links are parented by the long fingers (the default), or if the long fingers are to be ignored. !IMAGE!Pictures/mx430-leghinge2.png!/IMAGE! * LegHinge, Left and Right: Determines whether the leg rotates when the hip does. !IMAGE!Pictures/mx440-legik2ankle2.png!/IMAGE! * LegIkToAnkle, Left and Right: If turned on, the reverse foot setup is disabled, and the ankle bones on the Extra layers become the effectors for the IK legs. === MHBlenderTools: MHX other rigging systems === By default (i.e., if Pose/Animate > Skeleton is set to 'None') a character is exported as an mhx file is rigged with the MHX rig, which is a rather complex rig with many options. Alternatively, the character can be rigged with a simpler and ligher armature by choosing an alternate Rig Preset under Pose/Animate > Skeleton. !IMAGE!Pictures/mx710-other-rig2.png!/IMAGE! To this end, select one of the rigs in the Pose/Animate > Skeleton tab. A skeleton is drawn. Export the character from MakeHuman as an mhx file. To reselect the default mhx rig, press None in the Pose/Animate > Skeleton tab. !IMAGE!Pictures/mx720-other-blender2.png!/IMAGE! Import the mhx file into Blender. Note that there are fewer bone layers available in the MHX Main panel. ==== Using the Rigify rig ==== As an alternative to the mhx rig, MakeHuman characters can also be rigged with the popular Rigify add-on by Nathan Vegdahl. Links to documentation about Rigify in general: !LINK!http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Rigging/Rigify -- Official Rigify documentation!/LINK! !LINK!http://blenderartists.org/forum/showthread.php?200371-Rigify-Auto-rigging-system-new-and-improved -- Blenderartist thread!/LINK! !IMAGE!Pictures/mx810-rigify-export2.png!/IMAGE! To use Rigify, the character must first be prepared in MakeHuman. Select the Export for Rigify checkbox in the Options group and export the file. This checkbox overrides any other rig selected under the Skeleton tab. !IMAGE!Pictures/mx820-rigify-enable2.png!/IMAGE! In Blender, enable the Rigify add-on. It is found in the Rigging category. Press Save User Settings to remember the choice. !IMAGE!Pictures/mx830-rigified2.png!/IMAGE! Import the mhx file as usual. John Doe is now rigged with Rigify and ready for use. !IMAGE!Pictures/mx840-norigify2.png!/IMAGE! If the Rigify add-on is not enabled, an intermediate rig is imported and an error message appears. If this happens, open a new Blender file, enable Rigify, and try again. Alternatively, you may select the armature and press the Rigify MHX Rig button that appears in the N-panel (after you have enabled the Rigify add-on, of course). Disclaimer: MakeHuman has no control of the Rigify add-on. Rigify support was tested with Blender 2.69. If the specification of Rigify changes in the future, mhx file exported for Rigify may cease to work. === MHBlenderTools: MHX Layers and masks === The mhx importer creates objects on the first four layers. !IMAGE!Pictures/mx900-layers2.png!/IMAGE! * * This layer contains the body, including hair, eyes, etc. * This layer contains the armature. * This layer contains any clothes. Empty if the character is nude. * This layer contains any proxy meshes. Empty if no proxy mesh was exported. Note that a proxy mesh does not replace the original human mesh, but is added as a separate object. If you only want to use the proxy mesh, the body can be deleted. However, the proxy mesh (perhaps slightly edited) has several uses apart from simply replacing the body, e.g. as a deflection surface for cloth simulation, or to speed up viewport performance when animating. It is therefore up to the user to decide which meshes to delete. !IMAGE!Pictures/mx920-unmasked2.png!/IMAGE! Vertices beneath clothes are hidden, to avoid ugly penetration issues. The picture above illustrates what may happen if skin under clothes is not hidden. !IMAGE!Pictures/mx910-mask2.png!/IMAGE! However, skin beneath clothes is not removed, only hidden by masks. This becomes evident if in edit mode, where the entire body is visible. To undress the character, deselect the clothes layer (layer 3), and disable all mask modifiers. Don't forget to disable the mask modifier for rendering as well. With the mask modifiers, it is possible to export a character from MakeHuman with several different outfits, and select the outfit and hidden body vertices in Blender. If you wish to delete the hidden vertices permanently, e.g. to improve performance or for export to some other application, apply the relevant mask modifiers. === MHBlenderTools: MakeClothes rigid fitting === The standard clothes fitting algorithm is suitable for flexible clothes, especially clothes that follow the body closely. However, is does not work well for rigid objects like shoes, Therefore, MakeClothes has a variant suitable for rigid shoes. Rigid fitting is used on a vertex group basis, so rigid and flexible fitting can be mixed in the same piece of clothing. Rigid fitting is used for every vertex group whose name starts with a '*'. Each such vertex group in the human must contain exactly three vertices, that determine the triangle used for fitting in this group. !IMAGE!Pictures/rf-100-orig.png!/IMAGE! The use of rigid vertex groups is best explained by an example. Consider a pair of shoes, which is a rigid object. We used the standard MakeClothes settings and an adult human with the original shoe to the left. Then the mhclo file was loaded onto a baby, with the result to the right. The shoe is recognizable but it has been deformed in an undesirable way. However, even though the quality of the fitting is poor, make sure to save the mhclo file, because we will need it at the end of this tutorial. !IMAGE!Pictures/rf-110-projection.png!/IMAGE! Each clothing vertex v is associated with a triangle t in the human mesh, i.e. three human vertices v1, v2, v3. Letrdenote the location of v andr1,r2,r3the locations of the corners of the triangle. Further, let d be the perpendicular distance from the clothes vertex to the plane spanned by the triangle. MakeClothes assigns three weights w1, w2, w3, such that r= w1r1+ w2r2+ w3r3+d, where the sum of weights w1+ w2+ w3= 1. When the clothing is loaded onto a different character, the new location becomes r'= w1r'1+ w2r'2+ w3r'3+d', wherer'1,r'2,r'3are the locations of the three human vertices in the new character, and d' = Sd= (sxdx, sydy, szdz) is obtained from the original offsetdby inhomogeneous global scaling with the diagonal scale matrix S = diag(sx, sy, sz). The important observation is that the quality of the fitting depends crucially on the chosen triangle, i.e. the triple of human vertices the determines the clothes vertex location. The standard choice is to choose the human triangle closest to to clothing vertex. In rigid fitting the triangle is the same for all vertices, and is defined by the tree vertices in the vertex group. !IMAGE!Pictures/rf-120-vgroups.png!/IMAGE! Here we see the vertex groups used to fit the left shoe. The standard vertex group Left consists of all vertices close to the left shoe, in the tights helper. On the other hand, the rigid vertex group *Left only contains three vertices that define the single triangle used for all clothes vertices in this group. !IMAGE!Pictures/rf-130-triangles.png!/IMAGE! The next illustration shows the corresponding triangles used for fitting. The Left group uses many triangles obtained by triangulating the corresponding faces. Different shoe vertices are associated with triangles that are transformed differently, and the rigid character of the shoe is lost. The *Left group only has one single triangle, with corners at the three vertices in the vertex group. The same triangle is used by all left shoe vertices. !IMAGE!Pictures/rf-140-rename-vgroups.png!/IMAGE! Once the human vertex groups have been defined, we proceed with clothes-making. Rename the shoe vertex groups to *Left and *Right, to make the shoes use rigid fitting. Recall that the human can have several overlapping vertex groups, but in a piece of clothing each vertex must belong to exactly one group. !IMAGE!Pictures/rf-150-offset-scaling.png!/IMAGE! Next we open the Offset Scaling section and select Foot as the body part. In flexible fitting, the offsets are usually very small, and selecting the correct body part is not so important. In contrast, this step is very important in rigid fitting, because many vertices are far away from their triangles and the offsets must be scaled correctly. Press Examing Boundary for a visual inspection of which vertices define the global scale matrix.. !IMAGE!Pictures/rf-160-baby-shoes.png!/IMAGE! This picture shows the shoe loaded on a baby, using flexible fitting (blue) and rigid fitting (red). Rigid fitting clearly maintains the shape of the shoe much better. However, one problem remains: bone weighting. Start up MakeHuman and load the shoes under the Geometries > Clothes tab. Export the character with a rig in one of the formats that allows that, e.g. mhx, and import the character into Blender. Now try to pose the feet. As we see in the picture below, the shoe does not follow the foot but is squashed or stretched in strange ways. !IMAGE!Pictures/rf-170-bad-deformation.png!/IMAGE! The reason is that rigid fitting affects the bone weights as well as the vertex locations. The bone weights are interpolated between the three corners of the triangle, rather than using the information from the entire foot. To correct this we need to use two different associations between clothes and human vertices: rigid fitting for vertex locations, but flexible fitting for bone weights. Fortunately, MakeHuman can handle this situation, although there is currently no elegant interface for it in MakeClothes. In a text editor, open the mhclo file obtained by standard fitting in the beginning of this tutotial (this is why you needed to save it), and copy everything after the line verts 0 to the end of the new mhclo file obtained by rigid fitting. Before the copied section, insert the line weighting_verts Export the shoes again from MakeHuman and import into Blender. The shoes should now both maintain their rigid shape and deform correctly. !IMAGE!Pictures/rf-190-good-deformation.png!/IMAGE! Due to an unfortunate behavior in MakeHuman, it is possible that the updated mhclo file is not loaded after it has replaced the old one. This is because MakeHuman automatically compiles mhclo and obj files when loaded, so they can be loaded faster next time. Although this behavior is convenient for ordinary users, it is very confusing and frustrating for clothes makers. If MakeHuman insists on loading old versions of your clothes, you may need to delete the compiled files (*.mhpxy and *.npz), or restart MakeHuman, or both. After the compiled files are gone, the updated clothes should load without problems. !IMAGE!Pictures/rf-180-compiled-files.png!/IMAGE! == Developers' note == Some notes about how to obtain the source code, modify it and share it. === Makehuman Plugin System === ==== Plugins ==== Makehuman has a simple plugin framework which makes it easy to add and remove features. At startup, MakeHuman now looks for .py files in the plugins folder which are not starting with an underscore (which makes it easier to disable unwanted plugins). It loads them one by one and calls the load entry point passing a reference to the application. The plugin can use this reference to add the necessary GUI widgets or code to the application. The rules for plugins are very simple: * A plugin is a .py file in the plugins folder with a load entry point. * A plugin only imports core files. The reason a plugin cannot import other plugins is that it would make it difficult to know which files belong to which plugin. We still need to define a convention for shared files beyond the core MakeHuman files. To get started look at example.py or any of the other plugins to see how you can create your own feature in MakeHuman. ==== GUI ==== The main layout is a two level tab control. The tabs at the top represent categories, like files. modelling, geometries, materials, etc. The ones at the bottom are the tasks in the current category and refine the more broad category in face, torso, gender, saving, loading, exporting etc. So when creating your plugin, the first thought should be “In which category does it belong?”. From experience we know that it can be a though question to answer. Sometimes the only answer is adding a new category. This is what we initially did for measurement for example Next you probably want your own task to implement your feature. While it’s possible to attach functionality to an instance of gui3d.Task, it’s often easier to derive your own class. When you create an instance of your class, you pass the parent of your task, which can either be an existing category or the new one which you added. In your derived task you will then add the necessary controls to let the user interact. A good place to see how to use the different controls is the example plugin. You will see that even if you don’t add any controls, the model is already visible. This is because the model is attached to the root of the GUI tree. In the onShow event of your task you might want to reset the camera position, like we do in the save task, or hide the model, like we do in the load task. Just don’t forget to reset the state when your task gets hidden in onHide. ==== Undo-redo ==== It is important that every modification is undoable, since just one undo able modification would leave the user without the possibility to undo anything. So it’s crucial that if you write a plugin which modifies the model, you also make undo work. The Application class has several methods to work with actions. An action is a class with two methods, do and undo. If the action itself does the modification you can use app.do to add it to the undo stack. If you did the modification yourself already during user interaction, you can add the action using app.did. The application won’t call the do method of the action in that case. If you want to make your own undoredo buttons, you can use app.undo and app.redo. To illustrate, here is the action we use to change the hair color: The postAction is a handy way to specify a method to keep your GUI in sync with the changes. ==== Asynchronous Calls and Animation ==== When doing lengthy operations it is important not to block the GUI from redrawing. Since everything runs in one thread, it is easy to block the event loop in your plugin. There are 4 ways to avoid this, depending on the need. If no user interaction is needed, a progressbar can be used. A progressbar uses the redrawNow() method of the application. This redraws the screen outside the event loop. Instead of creating your own progressbar, it is advised to use the progress method, which uses the global progressbar. Calling progress with a value greater than zero shows the progressbar, a value of zero hides it. If user interaction is desired during the operation, either asynchronous calls, a timer or a thread can be used. Asynchronous calls are used when a lengthy operation can be split in several units. It is used for example in the startup procedure as well as for the plugin loading loop. The mh.callAsync(method) queues the calling of method in the event loop, so it will be called when the event gets processed. In case different methods need to be called after each other, as in the startup procedure, callAsync is used to call the next method. In case of the plugin loading loop, it calls the same method until it is done. This is not to be used for animations, as it takes very little time between calling callAsync and the event loop calling the method. Calling time.sleep(dt) to avoid this should not be done as it blocks the main thread. For animations use timers instead. An example of this can be found in the BvhPlayer plugin. The method mh.addTimer(interval, method) adds a timer which calls the given method every interval milliseconds. It returns a value to be used by removeTimer to stop the timer. If a lengthy operation includes blocking on sockets or pipes, it is advised to use a python thread. However this has been shown to be problematic on Linux. To get around the problems on linux you should not access any makehuman structures from within your thread, but use mh.callAsync to call the methods from the main thread. See the clock plugin example for example code on how to use threads correctly. ==== A template for plugins ==== Looking in the makehuman source folder, in the "plugin" directory, you will notice a file called "7_example.py". This is an "Hello world" plugin. It includes all main controls and some nice example of mesh manipulation. It's designed to be used as template of new plugin. To see how it works, you need to enable it in the Preferences->Setting. Then it will be located at Utilities-->Example. !IMAGE!Pictures/UtilitiesExampleTab3.png!/IMAGE! ==== Example Controls ==== !IMAGE!Pictures/UtilitiesExampleControls.png!/IMAGE! === OpenGL Notes === Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. OpenGL is a 3D graphics library that enables a 3D world to be defined, with a camera, objects, lights, textures etc. It then enables that 3D world to be visualised as a 2D representation that can be displayed on a computer screen and provides functions to enable an application (in response to user input) to navigate around the scene. ==== Basics ==== OpenGL takes a 3D scene and draws it into a 2D viewing area on your screen known as the viewport. OpenGL can project the scene onto the viewport in a variety of different ways, but the most common are: * Perspective projection, as you would get if you could place a camera in the scene * Orthographic projection, as a draftsman may contstruct technical drawings such as plans and elevations. MakeHuman only uses Perspective projection. ==== Projection Transformation ==== You tell OpenGL how to project 3D objects onto the 2D viewport by defining a projection transformation, which indicates whether you wish to use perspective or orthographic projection (or an alternative projection pattern) and specifies other projection settings. This can be imagined as being comparable to specifying the characteristics of a camera (field of view, aspect ratio etc.) where an orthographic projection is equivalent to a camera at an infinite distance. The main difference being that with OpenGL you can change the settings between drawing different objects, which is a bit like taking a photo, changing the lens and moving the camera, then taking another photo without winding the film on. MakeHuman sets a perspective projection using the function gluPerspective(fovAngle,aspectRatio,near,far) where: * fovAngle: is the vertical field of view angle (45 degrees) * aspectRatio: is the viewport width divided by the viewport height which, by default, is 800/600 (4/3) * near: is the distance to the centre of the viewing plane (0.1) * far: is the distance to the centre of the rear clippling plane (100) ==== Modelview Transformation ==== For OpenGL to know what to display in the viewport it also needs to know where the camera is relative to the 3D model. For this you need to define a modelview which defines the position and orientation of the camera and the position and orientation of objects that go to make up the model inside a virtual 3D world. You do this by moving through and around the 3D world and by creating objects relative to your current position. OpenGL keeps track of your current position and orientation in the 3D world by recording the modelview transformation. Both the projection transformation and the modelview transformation are stored internally in 4x4 transformation matrices. You can modify these matrices by calling functions that apply direct transformations (translations and rotations) or by calling functions that calculate transformations (e.g. the gluPerspective function outlined above). To apply transformations you need to first make one of these matrices the current matrix. Subsequent transformations are applied cumulatively to the current matrix. The glMatrixMode function is used to set the current matrix mode: * glMatrixMode(GL_PROJECTION) makes the projection transformation the current matrix so that projection settings can be applied, such as the field of View angle and Aspect Ratio. * glMatrixMode(GL_MODELVIEW) makes the modelview transformation matrix the current matrix so that subsequent translations and rotations move the current location through the 3D world. ==== Resetting a transformation matrix ==== Matrix transformations that you apply are applied cumulatively. It is therefore often necessary to reset the matrix to its default ‘no transformation’ state so that you can apply a fresh set of transformations. OpenGL uses the transformation and modelview matrices to transform coordinates by performing a matrix multiplication. If you multiply by an identity matrix then the result is the same as the thing you started with, so to reset one of these matrices to an initial state where the transformation has no effect you can simply load the identity matrix using the function glLoadIdentity(). This loads the identity matrix into whichever transformation matrix is currently active, resetting it to the default ‘no transformation’ state. ==== Coordinates ==== OpenGL world space coordinates are unitless, so 2 units can represent milimeters, inches or light years. Interpretation of world space coordinates is up to the application. OpenGL uses a right handed coordinate system, so, if you are looking at the origin with the +X axis stretching away to the right and the +Y axis pointing straight up, the +Z axis will be heading out of the screen straight towards you and the -Z axis will be dissapearing away from you into the distance. MakeHuman uses the default OpenGL modelview camera settings which are equivalent to invoking gluLookAt(0,0,0, 0,0,-1, 0,1,0). This places the camera at the origin, looking straight into the model along the -Z axis with the +Y axis pointing straight up. This means that a 2 unit wide and 2 unit high object centred at <0,0,-1> will roughly fill the viewport, as will a 4x4 object at twice the distance from the viewpoint. ==== Drawing objects ==== MakeHuman contains multiple objects. The Humanoid object is the main object, but it is surrounded by a set of control objects. Each object is constructed using triangular faces. The position and orientation of each face is defined relative to the object of which it is a part. The positions and orientations of the vertices and normals of the faces are defined relative to the face they’re on. The sequence in which face vertices are defined is significant in OpenGL. If the face is viewed from the front, the sequence of points runs counter clockwise. If the face is viewed from the back the points run clockwise. Faces viewed from behind may be invisible or may have a different color/texture defined to the front face. This order is also called the "winding order" of vertices, and is used by MakeHuman to calculate the normal of each face. If the winding order is reversed, the normal will be flipped. The glPushMatrix and glPopMatrix functions can be used to store away a copy of a matrix that can subsequently restored. MakeHuman uses this before and after drawing each object to store a copy of the modelview matrix and restore it. === Directory structure and core modules === Overview There are 10 main source folders with the main MakeHuman folder in the SVN repository: * apps * core * data * docs * icons * lib * licences * plugin * shared Of these, two folders: (licenses and docs) are associated with the general housekeeping and installation aspects of MakeHuman. Details of the housekeeping folders will be summarized, where relevant, elsewhere in the documentation. The remaining folder are discussed below. Directory Structure and the Build System During the pyinstaller build process, only files in the makehuman/data/ directory are included as data files, which means that any other data files will be skipped, causing file not found errors. Thus, the developer should place all data files under the data/ folder. The idea is to be able to cleanly identify what is data to be loaded at run time.and what is code that can be compiled at build time. One exception here is target (data) files that can optionally be precompiled to binary files at build time even though their binaries will reside in the data/ directory. The rational for this is that target files are static data core assets and should therefore naturally reside in makehuman/data/, but by compiling target files at build time, the size of the build distribution can be reduced and program startup times can be minimized The files in makehuman/plugins/ form a second exception to data is "loaded at runtime" and code is "comiled at build time". Files in the makehuman/plugins/ folder are kept as a "side effect" of the fact that the makehuman/plugins/ path is included as data. It is included as data to make it possible to load plugins at runtime by inspecting the folder. Plugins are compiled as well, though. This does not mean that data may be stored in makehuman/plugins/ as this practice threatens logical organization of code and data, and it is not guaranteed that this will keep working in the future. Plugins should never be used as imported modules in other plugins or, even worse, in a core module. Currently, the core plugins of MakeHuman all start with a digit (e.g., import 9_export_mhx). This is done intentionally to prevent their improper import into other modules in the program because imports of a module starting with a digit will produce a syntax error. Core plugins that require data, for example those related to .mhx export, should make use of a subfolder in the makehuman/data/ path (makehuman/data/mhx/). Third-party plugins might have slightly greater lattitude about including data than core assets, but the clean separation of code and data is strongly encouraged. Therefore, third-party plugin developers should place data in makehuman/plugins/pluginName/data to make it easily identifiable. makehuman/data/ folder Most operating systems set aside separate storage space for code and data, and programs can generally not write data to their own directory structure. In addition, most OS support the notion of multiuser login, and support separate writable data areas for each user to customize. MakeHuman includes some "fixed data assets" that are intrinsic to the program. These data assets are save in the programs data folder within the program itself. However, MakeHuman also makes provision for third-party and user developed assets like additional clothes, additional hairstyles, etc. These latter assets are not saved in the program area but rather are save in user writable areas under the path userhome/makehuman/. For example, on Windows 7 systems this would be "Docuements/makehuman". In populating asset lists, the library holdings are generated based on the fact that syspath/data/itemtype and userhome/data/itemtype can coexist. Themakehuman/data/ folderdoes not contain any codeper se. As its name implies this folder contains the basic data resources that ship with MakeHuman. Often, during the development and building of MakeHuman, a given resource may exist in multiple formats. Many if not most resources initially exist as “text-based” files which are stored in the data directory with an appropriate extension (see section of file extensions). When MakeHuman is built for distribution on supported platforms, these text-based data resources are compressed into .npy format to produce a smaller and more rapidly loading distribution package. Typically, the original text-based data files do not ship with standard, downloadable installation builds but instead, the corresponding compressed versions are distributed. The data folder contains many subfolders which correspond to unique data assets. The details of these assets will not be discussed here, but the reader can get a general idea of asset types just by reviewing the folder names. 3dobjs, animations, bvhs, expressions, eyebrows, eyes, genitals, hair, icons, languages, litspheres, materials, mhx, poses, povray, proxymeshes, rigs, scenes, shaders, skins, targets, textures, themes, uvs, vertesgroups, visemes. Many of these data subfolders have subfolders themselves, but generally, this organization is easily discovered just by looking. Four of the data subfolders (eyes, hair, and clothes) are directed at important geometry assets of the MakeHuman model. MakeHuman supplies a special tool that lets developers or even end-users design additional assets using the 3D modeling program Blender. The name for this tool isMakeClotheseven though it supports the development of the other geometries as well. ==== /makehuman/apps/ ==== * catmull_clark_subdivision.py- an implementation of the!LINK!http://en.wikipedia.org/wiki/Catmull%E2%80%93Clark_subdivision_surface -- catmull clark subdivision algorithm.!/LINK! * devtests.py- testing and development use only, and can safely be ignored. * human.py- contains the Human class, which is the core data structure for MakeHuman model. * humanmodifier.py- contains the functions and classes that link the GUI sliders to their respective effects on the MakeHuman mesh. * metadataengine.py- implements algorithms to handle MakeHuman metadata tags within large files. It makes it possible to quickly and easily associate descriptive adjectives (tags) such as "eye" or "brown" with the complete file path to an object that has these characteristics. * mh2proxy.py- (unknown) * posemode.py- contains classes and functions relevant to entering and exiting posemode, and altering a figure's pose. Changing the pose of a figure will deform the mesh and require the vertex warps to be reset. * warpmodifier.py- contains classes and functions to handle the source and target of a warp. * which.py- checks to see whether or not a program exists (needed for the GUI controls). ==== /makehuman/core/ ==== * algos3d.py- contains algorithms used to perform high-level 3D transformations on the 3D mesh that is used to represent the human figure in the MakeHuman application. * aljabr.py- contains the most common 3D algebraic operations used in MakeHuman including vector, matrix, quaternion, and various other operations. * animation3d.py- contains functions and classes to animate a wide range of objects. Includes support for rotation, scaling, translation, camera movement, and variety of interpolation methods. * compat.py- (Unknown) * download.py- contains classes and functions to download media from the web and import it into MakeHuman. * events3d.py- contains classes to allow an object to handle events resulting from keyboard or mouse input, window resizing, and changes to the human model with MakeHuman. * export.py- (Not fully implemented) contains classes to export the MakeHuman model. * files3d.py- contains functions to convert other 3D file formats to and from the internal format used by MakeHuman. * geometry3d.py- contains classes for commonly used 2D and 3d objects such as rectangles, cubes, and flat meshes. * gui3d.py- contains classes defined to implement widgets that provide utility functions to the graphical user interface. * mhmain.py- contains the operations and event handlers that provide the core functionality of MakeHuman. * module3d.py- contains classes and functions to handle the appearance and behavior of 3D objects such as shading, texturing, visibility, transparency, and creating groups of faces. * selection3d.py- contains classes and functions that allow users to select elements within a 3D scene by clicking on them with the mouse using a technique called "!LINK!http://www.opengl.org/archives/resources/faq/technical/selection.htm -- Selection Using Unique Color ID's!/LINK!" * textures3d.py- contains functions to perform standard proccesses on bitmaps and translate UV coordinates to a pixel index in a bitmap. * transformations.py- A library for calculating 4x4 matrices for translating, rotating, reflecting, scaling, shearing, projecting, orthogonalizing, and superimposing arrays of 3D homogeneous coordinates as well as for converting between rotation matrices, Euler angles, and quaternions. Also includes an Arcball control object and functions to decompose transformation matrices. * warp.py- contains classes and functions to warp vertex locations from a source character to a target character. This makes it possible to correctly combine several morphs that affect overlapping regions of the body. ==== /makehuman/lib/ ==== * camera.py -handles camera events such as changing focus, camera mode, and field of view. * core.py -sets default global variables * debugdump.py -handles creating a debug text file in the user's home directory and writing relevant debug information to that file. * filechooser.py- a Qt based filechooser widget that allows the user to preview and select files as well as sort them by name, creation date, modification date, and size. * getpath.py- Utility module for finding the user's home path. * glmodule.py- contains classes and functions to render 3D objects with openGL in both draw mode and pick mode. * gui.py -alias from gui.py to qtgui.py * image.py- handles flipping and resizing images as well as converting between RGB, ARGB, and greyscale. * imageqt.py- handles loading and saving RGB and ARGB images. * inifile.py- contains functions for formatting and parsing .ini files. * language.py- handles language file loading and translation. * log.py- extends the functionality of Python's logging module. The logging module can be used to create log files of events for debugging, or to display information or warnings within MakeHuman. It is used instead of print statements. * matrix.py- uses the NumPy package to define standard matrix operations. * mh.py- Python compatibility layer that replaces the old C functions of MakeHuman. * object3d.py- defines the object3d class * profiler.py- defines functions to handle profiling (how long various parts of the program executed). === File formats and extensions === This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] Thetargets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found inalgos3d.pymodule (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. Thecompile_models.pymodule (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, thecompile_targets.pymodule (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau inMakeHuman.specfile, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file calledcleanpz.bat(for Windows) and a corresponding shell script file calledcleanpz.sh(for Linux) whose function is to delete NPZ files between SVN builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of SVN versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file namedclear.mhclois is used to restore the default UV map that comes with the system. In the lib folder, thefilechooser.pymodule has aMhcloFileLoader.Refresh()method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,and 3_libraries_polygon_hair_chooser.pyall access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses acage.mhclofile. In the tools folder, the tool ‘MakeClothes’ accessws MHCLO files in both the makeclothes.pyandmaterial.pymodules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py,import_obj.py,mt.py, andsettings.py. Finally, two experimental tools in the utils folder, themakeface.pyandhelpers.pymodules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. === Description of the file format === The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like:colorProperty R G B,where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit like if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. === Libraries and build procedures === With each MakeHuman release, packages are created for MS Windows, Mac OS X, and Debian derivatives for linux. At present there is not an operating system independent package (although the raw repository will work on all platforms). Each platform has special considerations that are addressed by the designated mainainter for that platform. === Dependencies === In order to run makehuman and/or build packages the following need to be installed on the system: * Python (Python 2.7 (python 3.x will not work).!LINK!http://www.python.org/download/ -- http://www.python.org/download/!/LINK!) * Python-numpy (!LINK!http://sourceforge.net/projects/numpy/files/NumPy/ -- http://sourceforge.net/projects/numpy/files/NumPy/!/LINK!) * Python-opengl (!LINK!http://pyopengl.sourceforge.net/ -- http://pyopengl.sourceforge.net/!/LINK!) * Python-qt4 (!LINK!http://www.riverbankcomputing.com/software/pyqt -- http://www.riverbankcomputing.com/software/pyqt!/LINK!) * Python-qt4-gl (Package required by some linux distributions only) For linux there are scripts (buildscripts/deb/install_deb_dependencies.bash and buildscripts/rpm/install_rpm_dependencies.bash) which will install all the necessary dependencies but please note that these scripts may not agree with all debian and rpm based distros so it may be worth reading the bash script contents prior to running them. === Assets === For obvious reasons, the binary assets (characters, textures, clothes, etc..) are not stored on Mercurial repository, but in two different places: * * Immutable single archive files of the assets of finished versions of MH are stored (disregarding patch version token) on bitbucket (!LINK!https://bitbucket.org/MakeHuman/makehuman/downloads -- https://bitbucket.org/MakeHuman/makehuman/downloads!/LINK!) * Assets still under development are store on Tuxfamily ftp:!LINK!http://download.tuxfamily.org/makehuman/assets/ -- http://download.tuxfamily.org/makehuman/assets/!/LINK! When a new version is released, the current ftp asset tree gets zipped and uploaded to bitbucket. In the tuxfamily asset store, the folder for that version's contents are replaced with an archive_url.txt file that points the download script to the right url. A new folder gets created on the tuxfamily host containing the assets to be included in the next release. For a released version, assets will usually not change, unless to fix bugs (in which case the previous archive is best kept, and a new one is created alongside it with a slightly different name), and the archive_url.txt file is updated. To download automatically the assets and place them in the correct folder on a local repository, it's sufficient to run the python script with the command: === Other scripts === In the makehuman root, there are a few scripts which need to be run: * cleannpz.sh (cleannpz.bat) * cleanpyc.sh (cleanpyc.bat) * compile_targets.py * compile_models.py * compile_proxies.py Note that all these are called automatically in the correct order by the "build_prepare.py" script in "buildscripts" when running one of the pre-existing package building routines below. However, when running makehuman from a source checkout, you will need to run these scripts in the above order. === General proceedings for making a package === On all platforms the following steps should be taken when making the package: * Update from HG repository (!LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK!) * Run the scripts in the makehuman root directory. These will for example compile target files to npz files * Copy all that's relevant to a work directory, excluding at least *.target, the utils directory and the tools directory (strictly speaking there are more that is not necessary, but it will have a minor influence) * Do platform-dependent stuff to the work directory * Zip the directory into a suitable installable format for the platform. ==== Linux ==== === Debian === In order for makehuman to work on Debian the following dependencies are needed. * python * python-qt4 * python-numpy * python-opengl * python-qt4-gl These can be installed by running the command below: On Debian/derivatives (Ubuntu kubuntu etc.) the whole package building is automated through the buildDeb.py script found in the "deb" folder. For Deb script see:!LINK!https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=default -- https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=d...!/LINK! To build a deb file, create an empty directory (for example /tmp/deb) and run: When the script has finished, the deb file will be available in /tmp/deb/output.There are some settings in the head of the buildDeb.py script for tweaking the output. === Fedora 19 64-biit RPM Packaging === These instruction have been written for and tested on Fedora 19 64-bit. You will never be able to run the MakeHuman HG version on distros such as RHEL/CentOS 6.4 or earlier, since they do not support python 2.7, not even if you enable RPMForge. The instructions may or may not work on other RPM-based distros. * * Install a Mercurial client (Hg) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- Makehuman BitBucket Repository!/LINK!. * Install required dependencies. As root, run the bash script for installing the required dependencies. buildscripts/rpm/install_rpm_dependencies.bash This script also installs optional but recommended dependencies. If you only want the really required dependencies, run * Run MakeHuman. Change working directory to the root of the makehuman tree: Then run: You will most likely want to do this as your normal desktop user, not as root. ==== Windows ==== * * Install an Mercurial client!LINK!http://tortoisehg.bitbucket.org/download/ -- (Tortoise HG client!/LINK!is a good choice on Windows) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- MakeHuman repository!/LINK!(see!LINK!http://www.makehuman.org/doc/node/development_infrastructure.html -- http://www.makehuman.org/doc/node/development_infrastructure.html!/LINK!) * Install required dependencies If you are using a 64bit Windows version (only applies to 64-bit computers), you can choose to use either 32-bit python or 64-bit python. Howver it is important that your library dependencies (NumPy, PyOpenGL, and pyQT4) are 32-bit if you use 32-bit Python and 64-bit if you use 64-bit Python. * Run MakeHuman. Start a command console (cmd.exe), change directory to the makehuman folder. Then run: ==== Mac OSX ==== To build MakeHuman for Mac OS X, you should: * * Download the MakeHuman OSX Builder from: !LINK!https://bitbucket.org/MakeHuman/makehuman-osx-builder -- https://bitbucket.org/MakeHuman/makehuman-osx-builder!/LINK! * Follow the included instructions (Instructions.rtf) === Development infrastructure === The development of MakeHuman is based on two fundamental tools: * Mercurial (HG), a stable and robust platform for distributed revision control, with the main repo hosted on!LINK!https://bitbucket.org/MakeHuman/makehuman -- Bitbucket!/LINK! * A collaborative software!LINK!http://bugtracker.makehuman.org -- development platform!/LINK!, based on!LINK!http://www.redmine.org/ -- Redmine!/LINK!. ==== Get the code from BitBucket. ==== Obtain the code from BitBucket repository is very simple, but you need to have Mercurial installed on your system. It's natively present on Linux systems, while for Microsoft Windows, a good software is TortoiseHG (!LINK!http://tortoisehg.bitbucket.org/ -- http://tortoisehg.bitbucket.org/!/LINK!). To clone the repository to your PC, just use this command: hg clone!LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK! With tortoiseHG, you can do it visually, with: right-click --> TortoiseHG --> clone ==== Using Redmine in MakeHuman development ==== Redmine is a very powerful tool. [To expand with technical information about the roadmap organizations, the subprojects, and how to use it to accept experimental features] === Development organization === !IMAGE!Pictures/mh-hg-infographic01.png!/IMAGE! The Unstable branch is where the development happens. This is our working branch, and so we can refer to it as default branch too. The Stable branch is used for official release only. It's just for mainteinance of the current official version. It's rarely used, except in the case of very noticeable bugs that will cause a service release. Any bugfix in the Stable must be merged in Unstable. When the Unstable is ready for the release, it's merged in the Stable and a tag (a sort of bookmark) is created on this exact revision. !IMAGE!Pictures/mh-hg-infographic02.png!/IMAGE! Working on experimental clone for new features in early development is a great comfort for the developer. He doesn't have to keep his code on the local drive since he can commit it immediately. It doesn't matter if the code does not work yet or breaks the app, it is the private playground of the developer. !IMAGE!Pictures/mh-hg-infographic03.png!/IMAGE! To start up a new feature yet unproven or that is unsure how to implement it exactly, or for a big refactor that might make a lot of problems until solved, we will create experimental repos, cloning the main one. One repo for (large) feature. !IMAGE!Pictures/mh-hg-infographic04.png!/IMAGE! Once the developer has something to show, he can communicate with other team members so they can: * clone the experimental repo to a new folder on their local disk * test it * give feedback * perhaps even commit fixes Once a feature is proven to work well enough and accepted by the rest of the team, it can be merged in official unstable branch, where it can be integrated in nighly build version and further finalized (it can now be tested by a broader audience and we will receive bugs reports from them) !IMAGE!Pictures/mh-hg-infographic05.png!/IMAGE! It is also possible that an external programmer, without commit rights on the official repo, make changes on his own personal clone (that he can make public on his own account if he desires). This is a good way to test new team members, where we can accept changes after verifying them. When we trust a new developer, we can give him direct access to official repo. === Getting started === The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. In order to procced easily. it is recommended you use the tools available at!LINK!https://bitbucket.org -- https://bitbucket.org!/LINK!. The general procedure is: * Go to!LINK!https://bitbucket.org -- https://bitbucket.org!/LINK!and sign up (if you don't already have an account) * Go to !LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK! * Click "fork" (it's hidden under "..." in the button menu) !IMAGE!Pictures/fork.jpg!/IMAGE! * Enter a name and description of your choice (the fork will end up on your account, so it doesn't matter what you call it). Use "fork at tip" and don't check "this is a private repository" * You should be redirected to the new repository on bitbucket * clone your new repository to your local harddrive (if you need a primer on how to clone or use bitbucket,!LINK!https://confluence.atlassian.com/display/BITBUCKET/Bitbucket+201+Bitbucket+with+Git+and+Mercurial -- see their tutorial!/LINK!) * Make your code changes locally. Do not make a feature branch, work directly on the default branch. * Commit and push the changes to your repository on bitbucket * Go to your repository on bitbucket and click "pull request" (in the button menu at the top right of the page) * Write a good description for what your changes concern and click "create pull request" Once you have done this, the makehuman team will get a notification that there is an incoming code changes. This will be reviewed and either merged or rejected. If you want to continue working with updates in the future, make sure your fork is up to date with changes in the makehuman repository. Go to your repository, click the "..." button in the button menu and choose "compare", click the compare button on the page you get to. Merge any incoming changes. If your tree is hopelessly out of sync with the makehuman tree, just delete it and make a new fork. Better that than accidentally getting junk in your pull requests. Before starting with any of the above, you might want to read up on how to run makehuman from a source checkout rather than from a binary download. The short story is that you need to install a few dependencies. More information can be found here:!LINK!http://www.makehuman.org/doc/node/libraries_and_build_procedures.html -- http://www.makehuman.org/doc/node/libraries_and_build_procedures.html!/LINK! === Application design and Code overview === ==== Structural Organization of MakeHuman ==== MakeHuman is organized hierarchically. There is a root application (type gui3d.Application) that handles rendering of objects (guicommon.Object). These objects can be added/removed to/from the root application. Objects added to root application are always visible in the canvas.[I'm wondering if this is really true? - There are object on hidden tabs and the skeleton or mesh can be visible or not. Am I confusing the distinction between 'canvass' and 'view'? - RWB] Every added object has an openGL counterpart. mhmain.MHApplication inherits from root application to constructmain application. A view is a visual context. A tab is a view, for example, the main application is a view.[The main application IS a view or the main application HAS a view? "the "main application frame/window is a view?"- RWB] The Root application[you do meanrootand notmain? - RWB]contains Categories. A Category (gui3d.Category) is a specialised view object which contains multple taskiew objects (gui3d.TaskView). Taskview objects are specialised view objects with a panes and tab. In context of MakeHuman interface, Category objects constitute the upper row of tabs while taskview objects constitute the lower row of tabs. Objects (guicommon.Object) can be added/removed to/from a taskview. Objects added to a taskview are only visible if the taskview is visible. For example, a skeleton added to the skeleton chooser is only visible when the skeleton chooser taskview is visible. Objects added to root application[root not main? - RWB]are always visible. Thus objects like human and all proxies such as clothes are added to theapplication,because they should always be visible. Visiblilty can be disabled by setting the visibility flag on objects but an object that is not added to a currently visible taskview, or the application, is not visible, even if its visibility flag is set positive. [Wording needs improving -- 'should always be visible' and a 'visibility flag' are mixed message - RWB] An object can only be added to one context. So an object is either added to one taskview, or the application, not two different taskviews. Apart from root application, there is another application (type qtui.Application) which implements MH gui structures using Qtlibraries. mhmain.MHApplication inherits from this application too for handling of gui content.e General structure in MH can be represented as: !IMAGE!Pictures/mh-inheritance.png!/IMAGE! ==== Basics of event handling in Makehuman: ==== Makehuman is a GUI based, interactive, Qt application in which objects interact by sending messages to each other. The Qt class QEvent encapsulates notion of low level events like mouse events, key press events, action events, etc. A Qt application is event loop-based, which is basically a program structure which allows events to be prioritized, queued and dispatched to application objects. In a Qt based application, there are different sources of events. Some events like key events and mouse events come from window system, while some others originate from within application. When an event occurs, Qt creates an event object to represent it by constructing an instance of the appropriate QEvent subclass, and delivers it to a particular instance of QObject (or one of its subclasses) by calling its event() function. This function does not handle the event itself, but rather, it calls an event handlerbased on the type of event delivered, and sends an acknowlegement based on whether the event was accepted or ignored. QCoreApplication::exec()method enters the main event loop and waits until exit() is called. It is necessary to call this function to start event handling. In MH, it is done in lib.qtui.Applicationwhich inherits fromQApplicationwhich in turn inherits fromQCoreApplication: def start(self): self.OnInit() self.callAsync(self.started) self.messages.start() self.exec_() In MH, event handling falls in two broad categories. * Event handling forcontainers(application, categories, taskviews) * Event handling forwidgets(contained in containers) ==== Event handling for containers: ==== MH is organized hierarchically in the context of containers. At top is the main application (core.mhmain.MHMainApplication). It contains categories (core.gui.Category), which in turn contains taskviews (core.gui.TaskView). In a Qt-based application, there are five different ways of events processing, as listed below: * * Reimplementing an event handler function like paintEvent(), mousePressEvent() and so on. This is the most common, easiest, but least powerful approach. * ReimplementingQCoreApplication::notify( QObject * receiver, QEvent * event ). This is very powerful, providing complete control; but only one subclass can be active at a time. Qt's event loop and sendEvent() calls use this approach to dispatch events. * Installing an event filter onQCoreApplication::instance(). Such an event filter is able to process all events for all widgets. It's just as powerful as reimplementing notify(); furthermore, it's possible to have more than one application-global event filter. Global event filters even see mouse events for disabled widgets. Note that application event filters are only called for objects that live in the main thread.[I believe that MH is single threaded - implications? RWB] * ReimplementingQObject::event()(as QWidget does). If you do this you get Tab key presses[<--Explain what is special about TAB and shift-TAB presses ?- RWB], and you get to see the events before any widget-specific event filters. * Installing an event filter on the object itself. Such an event filter gets all the events, including Tab and Shift+Tab key press events[<--Explain what is special about TAB and shift-TAB presses ?- RWB], as long as they do not change the focus widget. In MakeHuman, approaches 2 and 4 are used for extensively for event handling. As part of strategy 2,inlib.qtui.Application (which extendsQApplication), notify has been reimplemented:[I don''t understand the implication of this? Expond? -RWB] def notify(self, object, event): self.logger_event.debug('notify(%s, %s(%s))', object, event, event.type()) return super(Application, self).notify(object, event) object is the receiver object. Class implementing notify has to be singleton. [Clarify? - RWB] In MakeHuman,MHApplicationsubclasseslib.qtui.Application.MHApplicationobject is the main application object. It's notify function receives notification from the event loop in the underlying Qt layer about each[container only or widgets too?]event, which is then relayed to receiver object's event method. Thereceiver object's event method is either inherited from QObject or reimplemented. The Receiver object then either sends TRUE or FALSE, as the case may be, to[WHERE??] - RWB lib.qtui.Applicationalso implements an event function, which is called if the receiver object isMHApplication objectitself. Then,lib.qtui.Application.event()checks if its a user-defined event or not,and it is so true is returned, else we call super class's event(). In case of true being returned,Qt dispatches event to receiver object's callEvent function which determines which function to be called on object to handle the event. Called function then handles the event or propagate it to its parent(or to current task if its application object), as may seem fit. ==== Event handling for widgets ==== Most of MH widgets are wrappers around Qt widgets. These widgets (defined in module lib.qtgui) inherit from the respective Qt widgets and the Widget class (lib.qtgui.Widget). MH makes use ofsignal and slot mechanismby making the connection between the signal originating from the Qt layer and the corresponding handler function. For example, class TabBase connects the signal 'currentChanged' to its function 'tabChanged' as follows: class TabsBase(Widget): def __init__(self): super(TabsBase, self).__init__() self.tabBar().setExpanding(False) self.connect(self, QtCore.SIGNAL('currentChanged(int)'), self.tabChanged) ...................... Any class inheriting from TabsBase(e.g., lib.qtgui.Tabs or lib.qtgui.TabBar) also gets this facility. So now whenever signal 'currentChanged' is emitted from Qt layer function 'tabChanged' is called. The result is that when a user clicks the mouse on a tab, the 'tabChanged' code will be called, Similarly, MH Slider widget connects various slider operations to its event handling functions as: ........................... self.connect(self.slider, QtCore.SIGNAL('sliderMoved(int)'), self._changing) self.connect(self.slider, QtCore.SIGNAL('valueChanged(int)'), self._changed) self.connect(self.slider, QtCore.SIGNAL('sliderReleased()'), self._released) self.connect(self.slider, QtCore.SIGNAL('sliderPressed()'), self._pressed) ........................... [-- EDITING/PROOFING ENDS HERE - RWB --] ==== Overriding vs event decorators: ==== The View, Category and Application classes inherit from events3d.EventHandler, hence they have callEvent() function. The events that apply to this category are usually application-wide. If user make a change that impacts the whole application, and whole application must know about this change, then best way to do so is to call callEvent() for all the taskviews of the application,as follows: for category in self.categories.itervalues(): for task in category.tasks: task.callEvent('onMyEvent', params) A good example is the event of makehuman's scene changing(core.qtui.MHApplication._sceneChanged). So when callEvent is called on a taskview object and it has onMyEvent implemented,it is being called. In core.gui3d.View too one can see that most of the events (onShow, onMouseDown,...) on the taskview are propagated by default to their parents - the categories. The categories also are views, so the events are propagated again to their parent, the application. If, again, the application or any category has an onMyEvent method, it is executed. There are some events that affect the application, but only a single task at a time,for example onMouseDown event. It only happens to the active taskview (the others are hidden, so they receive no mouse events). Once the mouse is pressed, an Application.currentTask.callEvent("onMouseDown", event)is issued. This causes the onMouseDown event to be received by the active Taskview, its parent Category, and finally the Application. This call executes any onMouseDown method in these objects. Apart from the Category events described above, there are events used for local purposes. Such events are handled withevent decorators. Suppose we have a new Taskview, FooTaskView. This Taskview has a 'mybar' member variable, which is of type Bar(events3d.eventHandler). The requirement is that when self.mybar executes code, we may want to communicate with its parent to inform it about an event that just happened. So, inside the code for Bar, is located a 'self.callEvent('onBaz', 42)' command. Thus, in the Bar class, we emit a timely event signal and use the event decorator to let the parent Taskview know about the event. In the FooTaskView class, but below the place where self.mybar is created, we add: @self.mybar.mhEvent def onBaz(event): # code on event. # guess what, event == 42. When now the self.mybar Bar reaches that callEvent, the above method, located in FooTaskView, will be executed. core.mhmain.MHApplication's human is perfect example of this approach.Human has onMouseDown event handler and we need to relay it to application. In loadMainGui function of MHApplication, we add decorator to human attribute as: def loadMainGui(self): .............. @self.selectedHuman.mhEvent def onMouseDown(event): if self.tool: self.selectedGroup = self.getSelectedFaceGroup() self.tool.callEvent("onMouseDown", event) else: self.currentTask.callEvent("onMouseDown", event) ............. Application.human.onMouseDown event is caught and it starts its trip from the Human; it is captured by the decorated method located in Application.loadMainGui (this is the place where the method is bound with the event), it is sent to the currentTask, propagated through the parent category, and finally reaches its destination, the Application. A more intense process happens on Human.onChanged. This is emitted when a save/load happpens, so the whole application has to know. So it starts from the human, captured by the decorated method in app, sent to ALL the taskviews in MH, and finally through the categories again to the app. ==== The MakeHuman Graphical User Interface (GUI): ==== The MakeHuman GUI is based on the pyQt library which, in turn, is built on the Qt library. Qt is a development framework for the creation of applications and user interfaces for desktop. Important GUI classes in MakeHuman are: lib.qtui.Canvas:This is the class in MakeHuman which takes care of rendering openGL graphics.It inherits from Qt's QGLWidget class which is a widget for rendering OpenGL graphics. QGLWidget provides functionality for displaying OpenGL graphics integrated into a Qt application. It is very simple to use. You inherit from it and use the subclass like any other QWidget, except that you have the choice between using QPainter and standard OpenGL rendering commands. The Canvas class reimplements three functions from parent class to perform openGL tasks: * paintGL() - Renders the OpenGL scene. It gets called whenever the widget needs to be updated. * resizeGL() - Sets up the OpenGL viewport, projection, etc. Gets called whenever the widget has been resized (and also when it is shown for the first time because all newly created widgets get a resize event automatically). * initializeGL() - Sets up the OpenGL rendering context, defines display lists, etc. Gets called once before the first timeresizeGL() orpaintGL() is called. lib.qtui.Application: This is the foundation class which manages GUI's control flow and main settings. It inherits fromQtGui.QApplicationandevents3d.EventHandler. QApplicationcontains the main event loop, where all events from the window system and other sources are processed and dispatched. It also handles the application's initialization and finalization.Application class holds gui main window(instance of lib.qtui.Frame). Application class receives event notifications from underlying Qt user intrface framework and dispatches them to appropriateuser intrface elements in MakeHuman. GUI architecture inMakeHumanMH can be depicted as follows: !IMAGE!Pictures/mh-uiarchitecture.png!/IMAGE! === Application Design Notes from IRC Chat with Thanassis === Thanasis comments on gaining the big picture of MH coding * [16:12:57] <Thanasis> I would avoid describing the different parts of code as different entities * [16:13:43] <Thanasis> ie. follow the object-oriented paradigm, and avoid thinking who is inherited by who etc. * [16:13:48] <Thanasis> more specifically * [16:15:03] <Thanasis> I mean, treat an object as a single object * [16:15:08] <Thanasis> I'll show an example * [16:15:45] <Thanasis> you have the application. Inheritance says it consists of three classes, QApplication, MHApplication, and mhmain.Application (names may differ a bit). * [16:15:58] <Thanasis> but it is only one object * [16:16:42] <Thanasis> We don't care if the QApplication activates a function in MH application, because it happens inside the same object * [16:16:50] <Thanasis> the application * [16:17:18] <Thanasis> we only pay attention to the interactions the application object has with other objects * [16:17:43] <Doctor_Hell_> but if you need to find a function, you need to follow the inheritage chain...no? * [16:18:24] <Thanasis> of course, in the code, yes. but in a diagram it will make it complex * [16:21:02] <Thanasis> well, let's go top-down * [16:21:29] <Thanasis> we have: QT, App, Tab, Task * [16:21:56] <Thanasis> The event starts from QT, and activates a handler in App * [16:22:22] <Thanasis> The App sends a new event to the current Task * [16:22:46] <Thanasis> The task handles it, and sends a copy to the parent Tab * [16:23:13] <Thanasis> And finally the Tab handles it and sends a copy to the App * [16:23:35] <Thanasis> which handles it, and stops * [Referring to how distrating it is to describe the big picture of MH, Thanasis comments ...] * "Distract? no, this does not consume any brain energy" * We love your help- the more the bettter -- Thanks [RWB] Comments Regarding MacroTarget slider processing/handling based on naming conventions: * [16:36:24] <Doctor_Hell_> [23:26] <Doctor_Hell_> another complex part to know is the engine coded by Jonas to automatically handel the targets using their name * [16:37:58] <Thanasis> uh. yes, that's a tough one too. I think it does, but I don't remember why and how, because it was a long time ago and Jonas changed the human modifier class since then * [16:38:18] <Thanasis> he simplified it, actually, but I haven't seen the new version yet * [16:38:34] <Doctor_Hell_> where is the code? * [16:38:49] <Thanasis> apps/humanmodifier.py, I think * [16:39:01] <Doctor_Hell_> Jonas should be very busy recently, since I asked him but he didn't reply me yet. * [16:42:37] <Thanasis> um by the way, reading humanmodifier alone won't help a lot. I would suggest starting from the macro plugin, to trace what happens when a slider is created, and when the user moves a slider. It might be easier this way Difficulties in understanding relationships between folder names / module names and the object structure * [16:39:36] <Doctor_Hell_> ANother thing to understand is why we have some code inapps, other incore, other in libs..the logic is not clear for me.. * [16:39:52] <Thanasis> ah, ignore logic in that part. :) * [16:40:20] <Thanasis> as far as I know it is all because of mh history so far * [16:40:29] <Thanasis> the way it developed. * [16:40:56] <Doctor_Hell_> I know some of it * [16:41:24] <Doctor_Hell_> in the early times,it was planned to have a core folder, with all important main files * [16:42:03] <Doctor_Hell_> then anapps folder, to contain many application based on the core files: makeHuman, makeANime, MakeToon, etc.. * [16:42:29] <Doctor_Hell_> butsharedandlibswere added later...I don't know why * [16:43:10] <Thanasis>libs, they are classes imported from c++ directly * [16:43:48] <Doctor_Hell_> ah ..so only the "shared" folder is the mystery * [16:44:04] <Thanasis> shared, they are later classes used by many different parts of the code at the same time * [16:44:15] <Thanasis> classes created later* * [16:44:28] <Thanasis> ie. material. It's used literally everywhere * [16:44:32] <Thanasis> progress too * [16:44:58] <Doctor_Hell_> ok..at least now it make sense, thank you * Comments on New API project * [16:45:39] <Doctor_Hell_> now that you have more time, will you look at the API? * [16:46:55] <Thanasis> 'time' != 'creativity'. I expect it will be easier to me after the start of the semester * [16:46:27] <Doctor_Hell_> if you are logged to MH site, you can see this:!LINK!http://www.makehuman.org/blog/the_makehuman_api_project_mhapi.html -- http://www.makehuman.org/blog/the_makehuman_api_project_mhapi.html!/LINK! * [16:47:02] <Doctor_Hell_> Also Joel has already created this:!LINK!https://bitbucket.org/joepal1976/makehuman-api-project/overview -- https://bitbucket.org/joepal1976/makehuman-api-project/overview!/LINK! * [16:48:52] <Doctor_Hell_> at the moment, you can just post a list of wished api in the issue 534 * [16:49:16] <Doctor_Hell_> we want to start the API in few weeks..they are fundamental, in order to have more contributors... * [16:51:05] <Thanasis> oh, boy. I want to clean up this code!LINK!https://bitbucket.org/joepal1976/makehuman-api-project/commits/aa5c12953fb2c8a1723b21bb0b7d90667653d615 -- https://bitbucket.org/joepal1976/makehuman-api-project/commits/aa5c12953...!/LINK!* ​Go for it? [RWB] :) The Doc_Hell Diagram (green and red arrows that even Glynn couln't understand) [Summary - concentrate on green arrows not red arrows to get the big picture] * <Doctor_Hell_> this is an example of bad diagram:!LINK!https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0 -- https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0!/LINK! * [16:52:48] <Thanasis> well, in your shape, the actual thing is about the green arrows * [16:53:19] <Thanasis> the red arrows could have been implemented in hundreds of different ways * [16:53:44] <Thanasis> but the important is their result, the green arrows * [16:53:53] <Doctor_Hell_> talking about how to draw the objects? * [16:54:26] <Thanasis> well, my idea was, do two shapes * [16:54:36] <Thanasis> the first without code * [16:55:10] <Thanasis> only showing the 5 steps like I explained above, ie, the green arrows * [16:55:28] <Thanasis> the second can explain each step in detail using the red arrows * [16:55:50] <Thanasis> but in any case the definition is the following * [16:56:04] <Thanasis> an event is, you send the name of a method to someone * [16:56:14] <Doctor_Hell_> ok...but also we have the description written by Manish. I'll show you it tomorrow * [16:56:21] <Thanasis> and that someone executes that method of theirs * [16:56:47] <Thanasis> sure, there are many ways to describe it * [16:57:00] <Doctor_Hell_> I hope we can find the best one * [16:57:07] <Thanasis> I think that they all match though in some certain key points * [16:57:52] <Thanasis> if these are filtered out, the explanation may be more simple And touching on API ideas ... * [16:59:09] <Doctor_Hell_> since the core is too complex for average python programmers * [16:59:36] <Thanasis> yes... perhaps the code could be organized in tiers. * [17:00:00] <Thanasis> core, classes, plugins, scripts * [17:00:27] <Doctor_Hell_> ah you are talking of the current code, not the simplified api * [17:00:54] <Doctor_Hell_> yes, it's a good idea..but what group under "core" ? * [17:01:25] <Thanasis> theapplication and its interfaces(ie.communication with the system and devices. QT, GL etc.) * [17:01:59] <Thanasis> classes are abstract, they use the application by calling its methods * [17:02:35] <Thanasis> the application uses the interfaces (QT, GL.these are actually harder than the application andcould be a sepparate tier) * [17:02:54] <Thanasis> thepluginsuse the classes to create objects * [17:03:26] <Doctor_Hell_> I see some possible confusion because: * [17:04:24] <Doctor_Hell_> - not all core modules are into core folder (for example qtui and qtgui are in libs) * [17:04:49] <Doctor_Hell_> - Classes are everywhere * [17:05:07] <Thanasis> yes, libs folder consists of both core and classes... indeed * [17:05:23] <Thanasis> andinterfacestoo * [17:06:51] <Thanasis> but in general, this separation exists somehow. I'm not sure how, but the past programmers instinctively created it, perhaps for better manageability * [17:08:14] <Thanasis> ie. Human is a class, Material too, Armature (probably making name wrong again), and to function I observe that they use callbacks of Application * [17:08:38] <Thanasis> They never use interfaces directly * [17:09:46] <Thanasis> Even for drawing the human, it is the Application that will give the Human's object3d to OpenGL, not the Human directly * [17:10:31] <Thanasis> and plugins use classes ie. they use the callbacks that Human, Material etc. have * [17:11:08] <Doctor_Hell_> Do you mean abstraction classes? * [17:13:27] <Doctor_Hell_> Thanasis: about new API:!LINK!http://bugtracker.makehuman.org/issues/534 -- http://bugtracker.makehuman.org/issues/534!/LINK! * [17:13:42] <Doctor_Hell_> and!LINK!http://bugtracker.makehuman.org/projects/makehuman/wiki/Abstraction_API_for_plugins -- http://bugtracker.makehuman.org/projects/makehuman/wiki/Abstraction_API_...!/LINK! * [17:13:57] <Doctor_Hell_> Feel free to add wished api calls === Q & A with Glynn Clements === Question: For an event when user clicks on a tab, Tabs class method tabChanged is called. QTabWidget documentation.There is no such method. Response: The tabChanged method is defined for qtgui.TabsBase (and overridden for qtgui.Tabs). Both qtgui.Tabs and qtgui.TabBar inherit from qtgui.TabsBase. Tabs inherits from both TabsBase and QTabWidget while TabBar inherits from both TabsBase and QTabBar. Both QTabWidget and QTabBar define the currentChanged signal, which is emitted whenever the current tab changes. The TabsBase initialiser connects this signal to the tabChanged method (lib/qtgui.py:109): class TabsBase(Widget): def __init__(self): ... self.connect(self, QtCore.SIGNAL('currentChanged int)'), self.tabChanged) ========================================================== Question: is it true that qtui module: low level module, that handles signals directly from QtCore, QtGui and QtOpenGL? Response: qtui defines the classes for the application (QApplication subclass), main window QMainWindow subclass), drawing canvas (QGLWidget subclass), and some associated support classes. In other words, it implements the high-level UI, or at least the aspects which are tied to Qt. Question: is it true that qtgui module: low level module, that define the basic widgets of the GUI as buttons, radiobuttons, etc.. Response: Yes; qtgui is essentially a compatibility layer between the Qt widget classes and the legacy MH GUI toolkit. The classes provide methods which more closely mimic the behaviour of original gui3d widgets. Qt events are translated to MH events3d events. Question: Is it true that gui3d module: high level module, that define the principal public classes of MakeHuman: Application, Category, TaskView and View. Response: This is what's left of the legacy MH GUI toolkit. Before the move to Qt, everything was a "View". Now it's just the high-level containers (Application, Category, Task) which exist as somewhere to put event handlers. Question: What is the purpose of the module guicommon.py? Looking at the module name, it appears to be a sort of library for the GUI functions, but it's a completely different thing. What is it really? Response: Object used to be part of gui3d. Its primary function is to be the base class for Human. It's the other main subclass of events3d.EventHandler (the first being gui3d.View). It's not really accurate to call it a "wrapper" around Object3D (although it can have instances of both module3d.Object3D and object3d.Object3D as members). One of the main differences between guicommon.Object and module3d.Object3D is that the latter is a single mesh, while the former has up to four meshes (all of type module3d.Object3D): the base (or "seed") mesh, a proxy mesh, a subdivided mesh, and a subdivided proxy mesh. It [guicommon.py or guicommon.Object ??RWB] also contains an object transformation (location, rotattion, scale) [method?], and optionally a display mesh (object3d.Object3D). As a subclass of EventHandler, it [guicommon.Object ??RWB] provides mouse handlers which propagate the event to the object's view (these are overridden for the Human within MHApplication.loadMainGui). Question: G.app is the singular mhmain.MHApplication instance; the callEvent method (inherited from event3d.EventHandler) will end up calling G.app.onMouseDownCallback. How the function callEvent end up calling G.app.onMouseDownCallback? Response: "direction" will be either onMouseDownCallback or onMouseUpCallback. Note the "Callback" suffix. So typical event flow for clicking on the human model is: G.app.mainwin.canvas.mouseUpDownEvent ("onMouseDownCallback") [Canvas.mouseUpDownEvent] G.app.callEvent("onMouseDownCallback") [EventHandler.callEvent] G.app.onMouseDownCallback() [gui3d.Application.onMouseDownCallback] G.app.selectedHuman.callEvent('onMouseDown', event) [EventHandler.callEvent] G.app.selectedHuman.onMouseDown() [local function in MHApplication.loadMainGui] G.app.currentTask.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.currentTask.onMouseDown() [View.onMouseDown] G.app.currentCategory.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.currentCategory.onMouseDown() [View.onMouseDown] G.app.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.onMouseDown() [MHApplication.onMouseDown] Notes: G.app.currentTask.parent == G.app.currentCategory G.app.currentCategory.parent == G.app Question: is the eventType string (also called 'direction') originated by QT? Response: No. "direction" is just so that code which is common to both mouse press and mouse release events can go into a single method (mouseUpDownEvent) rather than duplicating it in mousePressEvent() and mouseReleaseEvent(). Those functions are identical except for the name of the event passed to callEvent. Bear in mind that self.callEvent("onMouseDown", event) is almost the same as self.onMouseDown(event), except that callEvent forces a redraw after the event has been dealt with, and has some support for logging and profiling. Once you strip that away, the guts of callEvent() is just: method = getattr(self, eventType) method(event) ====================================================================== Question: Can the modularization of the code can be improved? Response: Modularisation is already quite good. Too much of it can make the code harder to understand. Currently, we try to avoid importing OpenGL or Qt modules (directly or indirectly) into modules which don't inherently depend upon them (e.g. guicommon.Object imports object3d locally in the attachMesh and detachMesh methods, so it only gets imported if you actually need to render the object). TODO ACTION. One minor point which I noticed: lib/camera.py imports glmodule solely for the queryDepth() call in convertToWorld2D (the Z coordinate is obtained by retrieving a value from the depth buffer using the X,Y coordinates). This should probably be a local import in that method, so that camera.py could be used in e.g. import/export utilities. ========================================================================== Question: [Referring to DocHell's red and green diagram (!LINK!https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0] -- https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0]!/LINK!] Response: I have no idea; I can't follow that [diagram]. It would probably help if you simply ignore CallEvent(), and treat object.callEvent('method',event) as just object.method(event). The two factors which make following the flow slightly complicated are: Methods aren't always defined within the class used to create an object, but may be inherited from one of its base classes. Event handlers may be dynamically added to an object with the mhEvent method (which is usually invoked using Python's decorator syntax). This is done for the Human object in MHApplication.loadMainGui(): @self.selectedHuman.mhEvent def onMouseDown(event): .... If you aren't familiar with the decorator syntax, the above is equivalent to: def onMouseDown(event): ... self.selectedHuman.mhEvent(onMouseDown) which in turn boils down to: def onMouseDown(event): ... self.selectedHuman.onMouseDown = onMouseDown ================================================================================= Question: Could you provide an explanation of what a weak reference is? How might this impact MakeHuman? Response: [Jonas Hauquier ] A weak reference, one that is not accounted for by the garbage collection. Garbage collection removes objects from memory that have no pointers to them anymore. Weakrefs are not counted among those, so if the object has only weakrefs pointing to it, and not real pointers, it will be removed anyway. This is to make sure that object A and B that always point to each other, are not kept in memory just because they keep referencing each other (I believe the garbage collection does not do expensive graph traversals to check what is still referenced by the active context). [Glynn Clements] Sort of. Python uses both reference-counting (which can't handle circular references) and reachability-based garbage collection (which can). If an object's reference count reaches zero, it will be finalised immediately. But an object with a non-zero reference count can still be finalised if it can be determined that it isn't reachable during a garbage-collection sweep. However: the garbage collector won't attempt to finalise reference cycles if any of the objects in the cycle have a __del__ method, as it can't determine a safe order in which to execute them. Instead, it adds them to a list, accessible as gc.garbage. Application code can inspect this list, manually finalise the objects (which should break the cycles), then remove them from the list (otherwise their presence in gc.garbage will itself constitute a reference). It's possible to have the garbage collector report such cases using gc.set_debug(gc.DEBUG_UNCOLLECTABLE). Only a few MH classes contain __del__ methods. These will only present a problem if the object itself is part of a cycle (i.e. contains references to "complex" objects which themselves contain references which could lead back to the original object). "Leaf-node" classes such as Texture and Shader shouldn't present a problem unless their creators attach additonal references to them. This may be an issue for e.g. qtgui.Slider and qtgui.RadioButton, as these have __del__ methods and will naturally create circular references. Use of weakref may be advised here. Similarly for queue.Thread. SceneItem in plugins/7_scene_editor.py may also be a problem. ============================================================================= Question: Could you clarify wherther the following acurately describe the use of decorators? A basic decorator is a function that: 1) Gets a function "A" as argument 2) Modifies the behavior of "A" 3) Returns a "decorated" version of "A" Response: Correct. Question: Topic: Decorators and side-effects. When is a decorator not about generating a function? So, if the above accurately descibes a decorator, consider the code: @self.selectedHuman.mhEvent def onMouseDown(event): This should translate: onMouseDown = self.selectedHuman.mhEvent(onMouseDown) One would expect that using mhEvent as decorator, it returns a function, but instead, it returns None: def mhEvent(self, eventMethod): self.attachEvent(eventMethod.__name__, eventMethod) How can it be used as decorator? Response: Because the returned "function" isn't actually used anywhere. The definition is local to loadMainGui(), which doesn't reference the functions, so the fact that e.g. onMouseDown is None within loadMainGui() doesn't matter. The mhEvent() method is used for its side-effects, not its return value. It attaches an event to the selectedHuman. It is equivalent to: self.selectedHuman.attachEvent(onMouseDown.__name__, onMouseDown) ============================================================================== == Packager's notes == Notes for packagers of Makehuman stables and nightlies. === Packaging RPM's for Suse/Fedora using Open Build Service (OBS) === The Open Build Service is a service formerly known as the Opensuse build service. OBS allows packagers to build packages for several targets. Here a target is a particular OS version E.g. Suse 13.1, Suse 12.3, Fedora 20 , Ubuntu 14.04 and so on. OBS being a build system by itself can be hosted anywhere even on local infrastructure. For MakeHuman packages we use the OBS instance hosted by Novell at build.opensuse.org This document will briefly outline the typical packaging workflow for Suse and Fedora. Both distributions use the RPM format and subsequently adhere to RPM's packaging rules. !IMAGE!Pictures/obs-flow-chart-scaled.png!/IMAGE! === 1) Prepare source tarball: === OBS does not allow pulling from the internet once the rpm is being processed into a package so. When creating the source tarball you should assemble it either on your own computer or a server online (even a VPS will do). There are several Important files and scripts which are of interest to us. One is build_prepare.py this assembles the main folder and all the common data which is needed by all OSes be it Mac or LInux distros or windows. This script is essential to run. Then there is build_rpm.py. We borrow some of the initial code in this and use it on our bash script but we do not build the whole RPM because OBS does that. Another third inportant file is build.conf (this stores the configuration used by build_prepare.py to make the source tarball). Using the above scripts/files I prepared a Bash script which is shown below. The above script assumes the following: * You have cloned MakeHuman's Mercurial (Hg) repo into your home directory and it is located at ~/makehuman (cloning into ~/ automatically makes the makehuman folder) * You have python , numpy and pyQt4 installed (package names may vary from distribution to distribution) * You are running on a LInux distribution. * You want to prepare a source tarball from Hg tags. * $VERS is the latest user specified stable tagged version * makehuman-$VERS is your destination folder where all files are copied * the final tarball uses bzip compression. How the tarball is compressed is significant as RPM accepts only certain compression algorithms. The resultant file is makehuman-$VERS.tar.bz2 (E.g. makehuman-1.0.2.tar.bz2) * You use an FTP server whose file path is located at /var/ftp you can skip this step if the script is run locally by commenting the lines out. ​Explanation of the above script: In the first section we use Hg and extract available tags and ask the user for input on which stable tag he/she wants to build against. In the second section we automatically create the build.conf file which is used to specify if we want a release or development folder. Here we set isRelease=True In the third section we use build.conf along with build_prepare.py this creates a basic non-OS specific folder in home (~/). In the fourth section we copy extra files such as the .desktop file and the makehuman icon file, the shell wrapper for MakeHuman and remove the .bat file which is not needed in linux. Currently there is a bug where command line arguments are not passed by the shell wrapper to the python executable. We fix this by manually editing the file automatically in our bash script before copying it into the target folder to be tarballed. This is moved into the folder created earlier by build_prepare.py . With this we now have have a folder with all the basic requirements needed for packaging. FInally the folder is then tarballed and it is ready for upload to OBS. If you are not using an FTP server then comment out the “mv” command which moves the tarball to /var/ftp in the shell script above. IN some distributions the FTP directory is /srv/ftp === 2) Upload the tarball to OBS === The next step is to upload the tarball to OBS. Firstly you need to create a username and password. Then login to build.opensuse.org and create a project. On account creation you get your own home directory. Two interfaces exist to OBS. One is the command-line interface which is available by installing the package "osc" it is available in most distributions. The other one is the Web User interface. Both are equally useful the command line interface is better for doing certain tasks however. OBS also has a feature called “ services”. Several services are available such as services to pull from various sources e.g. FTP servers online, services to tarball the version controlled sources directly (tar_scm). You can make use of these _services (they are defined using XML notation in "_service" files). Read!LINK!”http://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService” -- Source Services!/LINK!; or you can manually upload your tarball through the Web UI or use the "osc" command line utility. To learn how to use the "osc" utility use "man osc" or view the manpage online. I would not recommend using _service files to pull the tarball as they can stop working. It is better to manually push the tarball to OBS. Either by pressing the upload button on the Web UI or placing the tarball in your project home directory created by using the “osc checkout” command. Then typing “osc ar” (add /remove) and finally “ osc commit -m ”put commit description here” “ to push and commit the changes you just made. You can also automate the above process by adding lines to the shell script but It is better to administer osc separately and manually to allow for more control. === 3) Prepare the spec file: === A .spec file is a special file which is used to build RPM's. It “contains information required by RPM to build the package, as well as instructions telling RPM to build it. The spec file also dictates exactly what files are a part of the package, and where they should be installed. The RPM specification is very well defined and it is fundamental than any packager develop a strong base in the fundamentals.” (taken from “Maximum RPM”) A very important book detailing the various capabilities of RPM is!LINK!”http://www.rpm.org/max-rpm/” -- Maximum RPM!/LINK!. This is a must read for any packager and will help in understanding the spec file shown below. If you have not read it please bookmark the page and give the book a read. I cannot stress how important it is. In OBS we have 2 main OS's which use RPM's as build targets Fedora and Suse. RPM provides macros to make packaging more standardised and easy. Most Macros are common however some are distribution specific. Below is the spec file used by the Makehuman project. For version 1.0.2. The above .spec file follows the general structure and format of spec files as per the RPM specification. The spec file has been formatted for for OBS by running “osc service localrun format_spec_file” then reading the contents to ensure that nothing went wrong and committing the changes back to OBS. In the above spec file we have split MakeHuman into 2 subpackages and made them depend upon each other to ensure consistency. As you can see there are 2 sources one is the tarball we created with our bash script earlier and there is another file called "makehuman.1" this is a manpage. In the spec file instructions are issued to gzip it and put into the manual directory on install. The manpage (Source101 in the .spec file) is shown below. How man pages are created is out of scope of this document. Man pages use gtroff. There are however ample resources online which can help with this. The .spec file has been commented to provide you with a better understanding of what is done at various stages. Once the .spec file has been updated on OBS it automatically triggers a rebuild duribg that time you can monitor the status of the build process and correct errors in your spec file or sources as they arise. === 4)Pushing changes to the official repositories === Once you are satisfied that your package is stable you can make a submit request to submit the package from the Web User Interface or run the command below. In the above command we submit the “makehuman” package to the OpenSuse “graphics” project. After this the package is reviewed by the maintainer of the graphics project and approved or rejected with comments given. You will receive an email after the project has been reviewed. Notes: * The .spec file and the manual page will change over time. The above is there for illustration purposes only. * You can find copies of the most recent stable .spec file and makehuman.1 manpage!LINK!:https://build.opensuse.org/package/show/graphics/makehuman: -- here!/LINK!. This is the stable version after a "submit request" to the official Suse repositories. ba77d50abee1c6bab7f500e475d6c2cbd08e2b1f 674 2016-05-20T07:55:03Z Joepal 14 Created page with " == Introduction == MakeHuman (MH) is Open Source software (AGPL3.0) for creating lightweight, realistic 3D models of the human form. It is designed to be easy to use and fl..." wikitext text/x-wiki == Introduction == MakeHuman (MH) is Open Source software (AGPL3.0) for creating lightweight, realistic 3D models of the human form. It is designed to be easy to use and flexible. The models are based upon real data for ethnicity, sex and body type and can produce an almost limitless range of human and human-like forms. The forms can be posed and rendered in the software itself or exported into other softwares for further manipulation. It is developed by a community of programmers, artists, academics and enthusiasts interested in 3D computer models of human beings. MakeHuman™ is used to create a 3D mesh with optimized topology representing human beings with a user-controlled mix of characteristics including race, sex, size, muscularity and other features. The models thus created are integrated into one of two typical pipelines or workflows. In the first one, MakeHuman™ is integrated in a professional pipeline, where the A-posed mesh is exported into a full-featured 3D CGI system such as Blender, Maya, XSI, C4D, Zbrush etc.. in order to be included in complex scenes and renderings, or used for games. In the second pipeline the mesh is posed and clothed directly in MakeHuman™, then rendered with an external engine, for 2D art or quick demo reel of a character. This section contains high-level articles that describe the purpose and features of the MakeHuman software. * Features-- describes the technical features of the program * Evolution towards a Universal Model Topology: the HoMunculus-- gives an interesting background history of the development of the MakeHuman model The MakeHuman User Documentation includes articles for installing the software and using it 'out of the box' as well as extending and/or configuring MH for your own purposes. Beginners will want to begin with theInstallationsections for their computer systems and theGUI and Modellingsection for using the program. === Legal === The MakeHuman License The MakeHuman license is a split AGPL/CC0 setup.!LINK!/content/license.html -- The full text of the license can be found here!/LINK!. There is also a!LINK!/content/license_explanation.html -- license explanation page!/LINK!. External Tools Licenses From time to time the MakeHuman™ Team may release new external tools in various forms. Unless otherwise explicitly stated they are covered by the GNU AGPL 3. Current tools are: * MakeTarget scripts for Blenderis distributed under the GNU AGPL 3. The MakeHuman morph target files that it generates are per default not covered by any license, since they are designed by you. However, if you make a morph target based on another pre-existing morph target (or a combination of pre-existing morph targets) you must fulfill the license terms of the pre-existing morph target. Note that all targets in the MakeHuman base distribution are licensed AGPL and that any target derived from these must also be licensed AGPLunless you get written permission by the author of the target file you derive from. * MakeClothes script for Blenderis distributed under the GNU AGPL 3. If the user is the original author of the clothes, he is free to choose any license for them. * MakeWalk script for Blenderis distributed under the GNU GPL 2. The license of output files generated using it is free to determine by the user, except when mocap data was used that enforces a specific license. * MHX Importer.It is distributed under the GNU GPL 2. * MakeTarget standaloneis distributed under the GNU AGPL 3. The MakeHuman morph target files that it generates are per default not covered by any license, since they are designed by you. However, if you make a morph target based on another pre-existing morph target (or a combination of pre-existing morph targets) you must fulfill the license terms of the pre-existing morph target. Note that all targets in the MakeHuman base distribution are licensed AGPL and that any target derived from these must also be licensed AGPLunless you get written permission by the author of the target file you derive from. See the!LINK!http://www.gnu.org/licenses/agpl-3.0.html -- GNU Affero General Public License!/LINK!and!LINK!http://www.gnu.org/licenses/gpl-2.0.html -- General Public License!/LINK!for more details === MakeHuman™ and its Purpose === MakeHuman™ is a tool designed to simplify the creation of virtual humans using a Graphical User Interface, also commonly referred to as a GUI. This is a specialized branch of the more general subject of 3D modelling. The MakeHuman Team is focused on this specific branch of the broader subject in order to achieve the best possible level of quality and ease of use in that area. The ultimate goal is to be able to quickly produce a wide array of realistic virtual humans with only a few clicks of the mouse and be able to render or export them for use in other projects. !IMAGE!Pictures/gui_0.png!/IMAGE! Humans are created through the manipulation of controls that allow for the blending of different human attributes to create unique 3D human characters. The controls are intended to provide the user with a simple way to create characters that give expression to the widest possible range of human forms.The controllable attributes are broken into two groups: macro and detail. The macro targets deal with overall human characteristics like gender, age, height, weight and ethnicity. The detail targets allow for the character to be further refined by focusing on the low level details ofsuch things as the eye's shape or finger's length. TheMakeHuman™project strives to provide a complete tool that allows for the management of all things needed to create realistic virtual humans. This includes some tools that have not yet been created or are in the early stages of development for things like poses, animation cycles, managing facial expressions, hair and clothes.With the exception of modelling, most of these tools follow a "point and click" approach by using the MakeHuman™'s Library. Via the MH Library, users preview and load poses, animation cycles, facial expressions, hair, shoes and clothes onto their character. MakeHuman™ also offers tools for exporting virtual humans to other software (such as the Blender 3D modeling suite) where further refinements can be made. === Short and Long Pipeline === Makehuman was created to provide everyone with specialized software that strives to be the state of the art in a very specific field: the virtual human. The goal is to see it used in two different pipelines or workflows. ==== Short Pipeline ==== The short pipeline is intended for quick character prototyping and for 2D art. The user defines the character, adds clothes, hair, a pose and expressions, by selecting them from our libraries, and running the render to obtain an image of the character (future goal: indistinguishable from a real photo of him).This output can be used as a character preview, fineart, blueprints, storyboards, comics, illustrations, etc.. No special skill is required from the user. ==== Long Pipeline ==== The long pipeline is intended to create a 3D character in rest pose for export to external software (Blender, Maya, Max, C4D, etc..) in order to be tweaked, animated and rendered. Another common usage of the rest-posed character is for games. The long pipeline requires the user to have professional skills and a good working knowledge of the external tools chosen to produce the desired final product. === Professional mesh topology === ==== The Homunculus ==== The principal aim of MakeHuman project is to develop an open source application capable to create realistic tridimensional humans. Since the early release in 2001, by pursuing this aim the MakeHuman Team have developed a model that can combine different anatomical parameters to transition smoothly from the infant to the elderly, from man to woman and from fat to slim. The vast wealth of potential combinations provides the artist an extraordinarily broad range of possibilities for artistic expression but presents many problems to the development team. !IMAGE!Pictures/age_1.png!/IMAGE! In particular it adds to the classical problems of 3D modelling (number of polygons, square or triangular faces, etc.) the problems of constructing a super mesh that can be transformed into any form of human while being sufficiently optimised to be able to be manipulated on desktop machines, yet still producing a professional quality of output. These discussions resulted in agreement that the initial mesh should occupy a middle ground, being neither pronounced masculine, nor pronounced feminine, neither young nor old and having a medium muscular definition. An androgynous form, the HoMunculus. !IMAGE!Pictures/hm01_0.png!/IMAGE! The Homunculus 00 (2002). No male, no female, nor young or old. A perfect neutral body. ==== Evolution of the topology ==== The current MakeHuman mesh has evolved through successive iterations of the project, incorporating lessons learned, community feedback and the results of considerable amounts of studies and experimentations. The current version, known as the ‘Homunculus 08’ comprises a state of the art universal humanoid model, including: * Light and optimized for subdivision surfaces modelling (14766 faces). * Quads only. The human mesh is completely triangles free. * Optimized for animation and sculpting (Zbrush, Mudbox) * MInimal number of poles * Max number of edges admitted for a pole: 5 !IMAGE!Pictures/heads_0.png!/IMAGE! The Homunculus evolution through the heads === Homunculus releases === * The first prototype of an universal mesh (head only) was done in 1999 in the makeHead script, and then adapted for the early MH (2000), * The Homunculus00, was realized by Enrico Valenza in 2002. * The Homunculus01 (or K-Mesh) was modelled by Kaushik Pal in 2005 * The Homunculus02 was modelled by Manuel Bastioni (Z-Mesh); * The Homunculus03 was modelled by Gianluca Miragoli (aka Yashugan) in 2007 and builds upon the experience gained on the preceding versions (Y-Mesh) * The Homunculus04 build upon the previous one by Gianluca Miragoli and Manuel Bastioni * The Homunculus05 build upon the previous one by Gianluca Miragoli. * The Homunculus06 released in 2010 (artists: Waldemar Perez Jr., André Richard, Manuel Bastioni). * The Homunculus07 completely remodelled by Manuel Bastioni in 2011 * The Homunculus08 remodelled from scratch by Manuel Bastioni in 2013 !IMAGE!Pictures/wip03_0.png!/IMAGE! An image from the "Making of" the Homunculus 08 ==== Alternative topologies ==== The base mesh is capable to be morphed practically in any human character, but in some cases it is preferred to have a very specialized topology. For this reason, since the version 1.0 alpha 7, MakeHuman includes a function to change the mesh of the character, just selecting it from a simple chooser. The makeHuman team is studying the requirements needed for different purposes (animation, games, crowd, closeups, etc..) in order to create a database of professional topologies. !IMAGE!Pictures/topologies.png!/IMAGE! == General overview == Brief description of the various components which makeup the Makehuman Graphical User Interface (GUI). === Install MakeHuman™ === ==== Installable versions of MakeHuman™ are available for Windows, Mac OS X and Linux. ==== The installable versions of the current!LINK!http://www.makehuman.org/content/download_makehuman_102.html -- stable !/LINK!!LINK!http://www.makehuman.org/content/download_makehuman_102.html -- release!/LINK!of MakeHuman are available for downlaod, as are!LINK!http://www.makehuman.org/content/download_nightlybuild.html -- nightly builds!/LINK! representing the latest deveopmental updates (not guaranteed stable) for the same platforms. ==== System Requirements ==== You will need about 250 MB of disk space. In order to use some realtime materials and obtain the best from the internal rendering engine, it's required an average quality graphic card, produced after the year 2006. In general, your graphics card should support OpenGL Shading Language (GLSL) version 1.2 or above. There have been reports that the model colors are corrupted on some older Intel Graphics cards (often appearing blue and black). If you experience this, a possible work-around is to start MakeHuman™ with the "-noshaders" command line switch. On Windows, this switch can be added to your shortcut. ==== Choice of Installation Directory ==== The preferred install location location for MakeHuman is a directory simply named "MakeHuman", but in practice you can use another meaningful name. if it is constructed of ASCII characters. On Windows, C:\Makehuman would make a good choice, and on Linux-alike OS's ~/MakeHuman would make a good choice. Program data is written to the user's home directory by default, and not to the program install directory. Thus, it is not essential that users have write privledges to the program install directory. One caution on Windows systems is that the installation directory should not contain non-ASCII characters as this has been reported to cause problems for some users. This also implies that if your username includes non-ASCII letters that the desktop and Docuemts folders will not be appropriate places for installation because they would result in a path containing non-ASCII cahracters [e.g., C:\users\Åke\MakeHuman or C:\users\Desktop\Åke\MakeHuman are likely to cause problems). ==== Windows ==== Download the zip file (or the installer, if available) from the from the download page (!LINK!http://makehuman.org/content/download.html -- http://makehuman.org/content/download.html!/LINK!). * Installer (not available yet): just run it. The application will be accessible from the Start menu. * Zip arhive: just to unzip it where you prefer, and double click on makehuman.exe to start the application. ==== Mac OS X ==== Download and run the installer (or the zip file) from the from the download page (!LINK!http://makehuman.org/content/download.html -- http://makehuman.org/content/download.html!/LINK!). Once downloaded, mount the disk image and drag the MakeHuman app into your Applications folder. MakeHuman™ supports Snow Leopard and newer. ==== Linux ==== Installers are avaiaible for debian (E.g Ubuntu, Debian etc.) and rpm based distributions (E.g Red-hat, Suse etc.). Please use the appropriate package for your distribution. If you do not want to use the prebuilt packages or are having trouble with the packages refer to "Installing from source" below. ==== Installing from source ==== If you want to install from source or are having trouble with the prepackaged binaries; Makehuman provides compressed source packages. These will work on all supported platforms provided all dependencies are satisfied. To execute MakeHuman simply run makehuman.py located in your unzipped makehuman source directory. For dependencies and libraries, please read the section "!LINK!http://www.makehuman.org/doc/node/libraries_and_build_procedures.html -- Libraries and build procedures!/LINK!". === The Interface and basic functions. === ==== An Interface Overview: ==== !IMAGE!Pictures/interface-labelled_new.png!/IMAGE! The application user interface comprises of the various elements. The core elements are : 1) the toolbar with its various partitions. 2) The tabs and sub-tabs which allow you to navigate the application, and utilise its various features in a coherent easy to understand manner. 3) The 3D view window which allows you to view the human as it is morphed, posed etc. 4) The left and right option panels whose options change depending upon the tab/sub-tab you are in. 5) Finally there is a progress Bar which shows the progress of an operation and the Information Bar providing useful information. Note:Different views may contain different options. These options are described in more detail in the appropriate heads in the rest of the documentation. === The Toolbar === The "Main Toolbar" is actually made up of six separate partitions. !IMAGE!Pictures/the_toolbar.jpeg!/IMAGE! They are: 1) Files partition 2) The Edit partition 3) The View partition 4) The Symmetry partition 5) The Camera partition === Files partition === !IMAGE!Pictures/the_toolbar-file.jpeg!/IMAGE! This partition provides shortcut buttons that deal with saving or loading files (Save, Load, Export). The save button performs the same action as pressing the Files tab and then the Save tab when there is no filename specified. If the file was given a name earlier and saved once this button performs a quick save over the file specified earlier. The Load button takes you to the file loading window where you can choose the file to load. The Export button takes you to the export tab and allows you to export your current MakeHuman project to one of the variety of export formats the MakeHuman program supports. Supported formats include mesh formats such as Filmbox (fbx),Wavefront obj, Sterolithography (stl), rig/rigging related formats such as Biovision Hierarchy and various maps such as Light Maps, and UV maps. Load, Save and Export options are explained in more detail!LINK!http://www.makehuman.org/doc/node/load_save_and_export.html -- here!/LINK!. === The Edit partition === !IMAGE!Pictures/the_toolbar-undoredo.jpeg!/IMAGE! The Edit partitionof the toolbar, provides shortcut buttons that deal with editing actions. The Undo button is to undo the last action that has been performed. Undo can be pressed to cancel actions until you have undone all of the actions taken during your current MakeHuman session. The Redo button is related to the Undo button and will restore the last action that has been undone. Redo can be pressed until all undone actions performed during the current MakeHuman session have been restored. The reset button will cancel all actions within the current MakeHuman session and restore the default settings for all MakeHuman controls. This effectively returns your MakeHuman session to the state shown when the program first opens. === The View partition === !IMAGE!Pictures/the_toolbar-smoothandwire.jpeg!/IMAGE! The View partitiontoolbar, provides buttons that manage the display mode of the character (Smooth, Wireframe, Background on/off). Wireframe mode allows you to view the mesh in Wireframe mode like in many other 3D applications. The Background option allows you to load a background reference image. The pose button is used for posing. When a rig and pose is active this button is enabled and allows you to toggle between the selected pose and the default rest pose. The "smooth" is particularly interesting since it subdivides the mesh. The image below shows the mesh smooth and normal, using the wireframe mode. This usesCatmull–Clarksubdivision to create a much more dense smoother mesh. !IMAGE!Pictures/nsmooth.png!/IMAGE! === The Symmetry partition === !IMAGE!Pictures/the_toolbar-symmetry.jpeg!/IMAGE! The Symmetry partitiontoolbar, provides buttons that manage transferring settings applied to one side of the character to the other side of the character so that the character features become symmetrical. !IMAGE!Pictures/symm.png!/IMAGE! There are options for right to left symmetry, left to right symmetry and a general symmetry mode. Left to right symmetry applies all changes made on the left side to the right side of the human/character. Right to left symmetry applies all changes made on the right side to the left side of the human/character. General symmetry mode behaves differently. When it is active all changes made are symmetrical when it is inactive any changes made to any one side affect that one side only. So this mode therefore allows the user to selectively apply symmetry. In the above image the Left side of the character is made symmetrical with the right side of the character. === The camera partition === !IMAGE!Pictures/the_toolbar-cameraviews.jpeg!/IMAGE! The Camera partitionof the toolbar, manages the Camera placement within the scene so that the character can be viewed from different angles and zoom levels. (Front View, Back View, Left View, Right View, Top View, Bottom View, Global Camera, Face Camera and Reset Camera options are available). === The help partition === !IMAGE!Pictures/the_toolbar-screengrbhelp.jpeg!/IMAGE! The Help partition, allows you to save a quick screenshot of the view or to access to the help tab. By default the toolbars are arranged in the order shown above horizontally next to each other along the top edge of the MakeHuman window. The four partition toolbars can each be moved to any area of your screen in Windows by clicking and holding the left mouse button on the left edge of the toolbar and dragging it to the location you desire. ==== The tabs ==== Most of the user controls of the MakeHuman™ application are accessed through the tabs panel. The tabs are organized intoMainTabsandSubTabs.TheMain Tabsoutline the broad category to which functionality belongs and theSub Tabsallow for more fine grained control over various aspects of the main category.ThereforeSub Tabskeep changing based on whichMain Tabhas been selected. E.g. When you select the "Files" main tab all file associated functions are made accessible via subtabs such as saving, loading and exporting. In the below image Sub Tabs for the "Modelling" main tab are shown. !IMAGE!Pictures/maintab.png!/IMAGE! The Primary Tab groups are shown in the image above and from left to right are: * Files:The Files Tab options provide access to the controls that manage saving, loading and exporting the MakeHuman™ project to or from files. * Modelling:The Modelling Tab options provide access to the controls that shape and alter the appearance of the MakeHuman™ project model. * Geometries:. The Geometries Tab options provide access to controls that add new geometries or change the human geometry within the MakeHuman™ project. E.g. Clothes, Eyes, Hair, Teeth, Genitals. * Materials:The materials available for the human and the additional geometries. * Pose/Animate:Options for posing animating and rigging a character. * Rendering:Rendering options using the MakeHuman internal renderer. Currently external rendering is not supported from within the program. * Settings:Provide options to configure settings of MakeHuman * Utilities:Provide some additional more advanced utilities. E.g. Material Editor * Help: The Help Tab's Help option provides access to controls that access the Help and support resources available for the MakeHuman™ project. ==== The sliders ==== MakeHuman is based on parametric modelling, controlled by sliders. !IMAGE!Pictures/wMgROK6FRzzyQAAAABJRU5ErkJggg==!/IMAGE! The meaning of each slider is generally self explanatory. Each slider controls the amount of a feature is expressed in the character from its minimum value to is maximum value. For example, the slider "Age" will change the character from the minimum age, which is about 2 years old, to the maximum age of about 80. When multiple sliders are moved, the values are mixed to form a character that reflects the user's chosen settings using a special interpolation engine. Each slider can be reset individually with right click on it. A slider normally moves in increments of 3 or 4 setting values when dragged with the mouse; however, you can place the mouse cursor over the orange portion of the slider and use the mouse scroll wheel to make adjustments in smaller increments of 1. === The Interace and File Formats === To be added soon. === Load Save and Export === ==== File Access Overview ==== The leftmost section of the Toolbar includes 3 quick action icons: 1) for loading models from native .mhm files; 2) for saving the model as a native .mhm file; and 3) for exporting the model in various formats used by other 3D programs (e.g., dae, .fbx, .stl, .obj). !IMAGE!Pictures/lse_quick.png!/IMAGE! For more complete file access support (Load, Save, Export), the Files Tab options provides access to the controls that manage saving, loading, and exporting the MakeHuman™ project to or from files. !IMAGE!Pictures/lse_tabs.png!/IMAGE! ==== Loading Files ==== Files are loaded using either the Quick Load icon or by directly choosing the File tab and the Load subtab. !IMAGE!Pictures/load1.png!/IMAGE! By default, models that have beem saved in MHM format are retrieved from the user directory%HOMEPATH%/makehuman/v1/models/. In the event that you have stored your MHM files in a different directory/folder, you can navigate to that directory/folder using the ellipsis at the top of the center panel. The right hand panel will be populated with thumbnail images of all the MHM files found in the path specified in the path at the top of the center panel. Simply click on the icon for the model you wish to load in the right panel. The model will load and refresh to its completed state in the center panel. You can load different models sequentially, if you wish. They will simply replace the previous model in the center panel. MakeHuman™ is designed so that all loaded models are loaded without changing the camera location. Thus, you can zoom in on a particular area of the body and compare multiple saved models from a single camera perspective. ==== Saving Files (.mhm format) ==== Files are saved using either the Quick Save icon or by directly choosing the File tab and the Save sub tab. The native file format for saving MakeHuman™ files is the .mhm format. It is important to understand that this format does not save a pixel by pixel representation of your model nor does it save program objects like the actual clothes or hair. Rather, it saves the necessary information for the program to reconstruct your model from its internally defined assets. This means that if you move a .mhm file to another computer that lacks a piece of custom clothing, custom hair, or other custom object, the MakeHuman™ program on the new computer will be unable to provide a complete representation of your model unless you also move the custom asset(s) to the second computer. By default, model files (in.mhm format) are saved to the user directory %HOMEPATH%/Documents/makehuman/v1/models/. If you wish to save your files in a different location, you can use the ellipsis at the top of the center panel to navigate to the directory/folder of interest. In addtion to the .mhm file, the save operation will generate a thumbnail image of the model as it appears in the viewport at save time. Thus, you will want to move the camera to a meaningful and unique view of the model before saving so that the thumbnail image will be easy to identify visually. CAUTIONARY NOTE:On windows OS (and perhaps on other OS's) there is a small gliche with saving to non-standard directories in MH 1.0.1 and MH 1.0.2. If you hit the ellipsis with a blank file name, use the system dialog to navigate to your directory of choice, enter a file name without extension in the system dialog, hit save, and watch the dialog close, the file will have been saved using the directory name rather than the filename you provided in the save box of the system dialog. This directory name will now appear to the right of the ellipsis in the center panel. It seems that you can avoid this problem by providing a full file name to the right of the ellipsis before you begin the save procedure, then using the system dialog to navigate to the desired directory, and supplying the same file name a second time in the filename blank of the save dialog. This irratic behavior has been reported, and when fixed, this cautionary note should be removed. (Refer to bug 506 - RWB) ==== Exporting Files ==== !IMAGE!Pictures/export_labelled.png!/IMAGE! The above illustration explains the typical user interface components of the Export tab. On the right you get to choose what to export be in the mesh, the rig or the maps. In the center you have the 3D preview to preview your model. On the right you have options which keep changing based on what format you have selected in the left panel. On the top below the tabs panel is the “Ellipsis” button which opens a file dialog, a text box to enter the file name of the file and an “Export” button to do the actual export and save the file in the desired format. Below we outline the three main options in more detail i.e. Mesh formats, rig formats and Maps. === Mesh Formats (.dae, .fbx, obj, Ogre3D, .MD5, .stl) === Files are Exported using either the Quick Export icon or by directly choosing the File tab and the Export subtab. The Export window allows you to export your current MakeHuman project to one of a variety of export formats. Supported formats including Collada (DAE) Filmbox (fbx),Wavefront (obj), Id Software (MD5), and Sterolithography (stl). By default, exported files (regardless of export format) are saved to the user directory%HOMEPATH%/makehuman/v1/exports/(to know yourHOMEPATHon your platform refer to this!LINK!http://www.makehuman.org/doc/faq/where_are_my_makehuman_files_found_ie_where_is_my_home_directory.html -- faq!/LINK!). As is true for the load and save tabs, the ellipsis can be used to export to a non-standard directory/folder. After selecting a format and export options, type the name of your project in the input box at the center of the Export window and then click theExportbutton at the right hand side of the input box. MakeHuman, itself, can not read any of the exported formats, so exporting is a one way transfer of information. If you expect to do further refinement of your model, make sure you also save it in .mhm format. The various export formats differ in the richness of the assets exported: * Collada Dae (.dae):COLLADA™ is owned by the not-for-profit, open standards!LINK!http://www.khronos.org/ -- Khronos group!/LINK!. It defines an!LINK!https://www.khronos.org/collada/ -- XML-based schema!/LINK!standard for exporting 3D assets. MakeHuman™ is meant to adhere to version 1.4 of the standard. The resulting ASCII format files can become quite large which occassionally limits the use of this format with other programs. By default, MakeHuman™ exports DAE files with y-up, face-z and the decimeter scale chosen. When importing MakeHuman dae files into Blender, be sure to check "import units" at the bottom of the Blender left tool panel if you have not changed the units to meters. * Wavefront Obj (.obj):OBJ is a very simple format to export the mesh, with vertices, faces and UV coordinates. Originally invented by Alias/Wavefront, all major 3D packages have OBJ importers, so this format allows you to export to the greatest range of applications. However, the character is not rigged but rather a static prop. Wavefront OBJ is a good choice when you need a simple mesh for an external renderer. It comes with an mtl file defining the material. * Fbx:The default dialect currently used by the MakeHuman™ FBX exporter is FBX 2013 ASCII. Other FBX dialects exist, and if you need one of those dialects, you can use the AutoDesk™ FBX converter (!LINK!http://www.autodesk.com/products/fbx/overview -- http://www.autodesk.com/products/fbx/overview!/LINK!). For example, the Blender importer requires binary FBX files that can be generated in this fashion. TheOptionsbox contains several export options for each of the formats.The export options available for each format can be selected or deselected by ticking (displayed in orange) and un-ticking off the box in front of them. You can either use the default options for a format or select and deselect options according to your goals and needs. Once an option is changed, it will remain in the changed state until you restart MakeHuman or change it again. They are unaffected by the reset button on the Toolbar. A common option that is present for all formats isFeet on ground: the origin of the MakeHuman™ mesh is located in the hip area, but if this option is enabled, exported origin is moved to between the feet instead. Another common option present in almost all formats is the Scale unit: decimeter, meter, inch, centimeter. The internal MakeHuman™ unit is decimeters (the base mesh is 16.8 dm tall), but this is a rather unique choice not shared by other applications. Setting the unit is not essential if the file is exported to a 3D suit like Maya, 3DSMax or Blender, because the character can be rescaled after import. However, Collada files can also be read by other types of applications, where choosing the right scale may be important. In particular, select meters for export to SecondLife. === Rig formats (.bvh) === MakeHuman currently only supports one rig format. * Biovision (.bvh):If BVH is selected, it is anticipated that built in animations will be saved to the export directory. As of the MakeHuman™ 1.0.2, there is no offical support for model animation from within MakeHuman™. Thus, selecting this export type is of limited value. If you are interested in using BVH files created by other programs with the MakeHuman model, you may wish to read the documentation on the!LINK!http://www.makehuman.org/sectionview/975 -- MHBlenderTools MakeWalk!/LINK! Addon. A good place to start is the!LINK!http://www.makehuman.org/doc/node/blendertools_makewalk_basic_workflow.html -- MakeWalk Basic Workflow!/LINK!chapter. === Maps ( ligtmaps and UV maps) === * Lightmap:IfLightmapis checked, a grayscale image of the unwrapped A8 model is saved in the export directory as a 2048 x 2048 .png image. * UV Map:IfUV mapis checked, a black and white UV unwrapped image of the model mesh on a black background is saved in the export directory as a 2048 x 2048 .png image. === Zoom, pan and rotate using the orbital camera === ==== Orbital camera ==== Starting with MH 1.0 there is a new orbital camera system that replaces the old still camera. This new camera addresses the issues where the old still camera made it hard to focus on body parts, for example hands. In the new system the human never moves. Rather, the camera travels on an imaginary sphere surrrounding the human. The user "mouse picks" a focal point on the human by right clicking, and zooms in and out by dragging. This allows the user to easily rotate around this point to inspect it from all sides. ==== Right-click zoom picking ==== The default zoom button has been changed to the right mouse button and the use of the mouse wheel is depricated. !IMAGE!Pictures/mh_interface_cam.png!/IMAGE! Right clicking now serves two purposes, it picks the center of focus based on the location of the cursor when it is positioned over the human, and it lets you zoom in or out by dragging the mouse. Right clicking on the background and not on the human simply makes it zoom in or out straight ahead. ==== Auto-zoom ==== Another advantage of the orbital camera is that it will adapt the viewing distance based on the height of the human. !IMAGE!Pictures/mh_grid_interface2.png!/IMAGE! The camera will attempt to keep the current focus point in the center of the screen and maintain the same amount of visibility, independent of whether you are modeling a 1 year old child or a 2.5 m tall giant. ==== Panning ==== The panning function of the camera has been moved to the middle mouse button (which we suspect is not available to all users) to indicate its reduced importance. Panning will be limited based on camera zoom and will even be completely locked when the camera is zoomed back so that the entire human is visible. The reasoning for this is that panning in the context of MakeHuman is only useful to focus on a feature of the human mesh, not for moving the human around in the scene. In fact we discourage excessive use of the panning feature, and encourage you to use the right click zoom picking instead. Panning is only recommended for small corrections to the framing, as it is quite tricky to position the camera center yourself (you will notice this if you try rotating the camera after having panned over a larger distance, it might not rotate around the center you expected). ==== Grid ==== The grid helps with getting a better idea of the proportions of the human, and it provides a point of reference in the world when the camera is moved around. !IMAGE!Pictures/mh_grid_interface.png!/IMAGE! There are two detail levels which are activated when the camera is zoomed close enough. The grid adapts to the 'units' setting, which allows for metric and imperial units. The metric grid has subgrids each 2 cm and a main grid at 10 cm (1 dm) intervals, while the imperial grid has subgrids per inch, and a main grid with 1 foot as size. == Define Human Characteristics == This section illustrates the modeling of the human using theparametric approach. === Gender, Random, Measure and Custom === The gender plugin comprises sliders used to alter gender specific attributes of your human models. Currently there are 2 categories under this: * * Breast - this category, as the name suggests, comprises of sliders used to alter attributes related to the human female breasts such as firmness, size, pointiness etc. * * Genitals - This category comprises of sliders used to alter attributes pertaining to male/female genitalia. Currently only male genitals are supported. (Note: male genitals have to be enabled under Geometries->Genitals for this to have any effect). Note:For the upcoming MakeHuman 1.1 these sliders have been disabled and the Geometries->Genitals subpanel no longer exists this is because we no longer have male genitals as a seperate mesh. Seperate male and female!LINK!http://www.makehuman.org/doc/node/makehuman_alternative_topologies.html -- alternate topologies/proxies!/LINK!exists with/without genitalia which are to be used instead. ==== Random modifier ==== !IMAGE!Pictures/random2_2_0.png!/IMAGE! The random modifier is used to auto generate human beings with randomised parameters. The interface comprises of 3 checkboxes, 2 sliders and 2 buttons. * Macro checkbox -This checkbox is used to toggle whether "Macro" attributes such as age, tone/muscle, gender are randomised or not. * Height checkbox -This checkbox is used to toggle whetherthe height attribute is randomised or not. * Face checkbox -If this is enabled the facial features of the model are randomised. * Symmetry slider -THis is used to introduce Assymmetry in the model. * Amount -THis slider is used to control the amount of randomisation of the character done by the random plugin. * Replace current -usede to replace current model with a new random model. * Adjust current -this is used to alter the parameters of the current model. ==== Measure Panel ==== !IMAGE!Pictures/measure_1.png!/IMAGE! The "Measure" tab facilitates the end user in more precise modelling of the human form. With the measure panel you are able to use the sliders as well as specify the units as sliders for more accurate adjustment of proportions. Various proportions can be edited here such as the proportions of the neck, waist , arms, legs and so on. One example of where this would be useful is in modelling characters like Michael Phelps who has an arm span longer than his height making him a better swimmer. ==== Custom modifier ==== !IMAGE!Pictures/customtab_0.png!/IMAGE! The custom panel is primarily used for "custom morphs". Cusom morphs can be created by you using blender tools and then used inside makehuman. This tab will remain empty unless you make your own targets using blender scripts and import them for use inside blender. This would be used for instance if you wanted to make an "Elven ears" morph inside makeuman for a humanoid character. This tab is more relevant for advanced makehuman users. === Using MakeHuman Hairstyles and Clothes === ==== Hairstyles ==== The default MakeHuman™ humanoid model has no hair. However, you may want your model to have hair and a particular hairstyle. In MakeHuman™, you can choose from the available character hairstyles by first selecting the tabsGeometries > Hair. !IMAGE!Pictures/hair_1_0_0.png!/IMAGE! This opens the Hair library window. The Hair library window, as usual, is arranged in three sections. There is a left hand panel (currently empty, but that will include a tag filter), a center preview window showing your current character model, and a right hand panel containing a list of available hairstyles shown as a thumbnail with a label. For the moment, the default hairstyles within MakeHuman™ are only few types. The library will be expanded release by release. To be able to see your character with an available hairstyle, you must click on the thumbnail image with your mouse. === Changing or Removing Hairstyles and Hair === You can change an assigned hairstyle with another one by clicking on another thumbnail. For example, you can change the hairstyle "afro" of your model by clicking on the hairstyle "fhair" from the panel of thumbnails. Note that doing this will not combine the two hairstyles. If you are unhappy with how the chosen hairstyle looks on your model and want to return to the previous state of your model, you can press the Undo button at the top left of the screen. In case you want to return to the original state of the model prior to applying any hairstyles, just find the thumbnail named "None" from the gallery of hairstyles and click on it. Your model will now revert to the state that it had before applying any hairstyles to it. ==== Clothes ==== The default MakeHuman™ model is barefoot and has no clothing on. However, if you would like to dress your model in MakeHuman™ it is possible by simply clicking and loading clothing and shoes from the library of clothing geometry objects that are fitted to the model automatically. To dress your model press the tabsGeometries > Clothes. !IMAGE!Pictures/clothes_1_0.png!/IMAGE! The clothes interface is very similar to the hair one, with some differences: * Clicking on more items in the right panel will combine them. To remove an item you have to re-click it. * There is a tag filter in the left panel, useful to navigate through a big library. * An option called "Hide Faces Under Clothes" is provided to prevent portions of the body from intersecting the clothing and creating holes during animating. === Parametric Modelling === !IMAGE!Pictures/main_labelled.png!/IMAGE! The Main controls are accessed by going to the 'Modelling' tab and selecting the “Main” sub-tab. These controls define the major characteristics of a human being. controls are used to define the character's macro features. The first six corresponding to Gender, Age, Muscle, Weight, Height, Proportions respectively and the last three ( African, Asian, and Caucasian) correspond to ethnicity. !IMAGE!Pictures/age_0.png!/IMAGE! * Gender:The gender tab is used to define what gender the human being poseeses. Male or female or a mixture of both characteristics with either being dorminant. * Age:The age slider is used to alter the age of the human being as a whole. The above image shows human beings at various ages ranging from young to old. * Muscle:The muscle sider is used adjust the amount of muscle possesed by the human character. * Weight:The Weight silder is used to adjust the weight of the character. The default setting is the character with average weight. Used along with "Muscle" it can be used to specify the proportion of muscle and fat contributing to the weight. * Height:The Height slider is used to adjust the height of the characters. * Proportions:The proportions slider is used to adjust the the proportions, from "uncommon" to "idealistic". Ethnicity sliders:THe ethinicity sliders (African, Asian, Caucasian) are used to alter the ethnic traits of the human being. These slidersare dependent on each other such that the sum of all three sliders is always 100 percent or a value on 1. This means that an increase in the value of "African" slider will lead to a decrease in the value of the "Caucasian" and "Asian" sliders. This is rational because if for instance a human being is of pure African origin then he/she is expected to possess only African traits whereas if he/she is of mixed decent the character is expected to have a fusion of ethnic characteristics. A human being cannot be hundred percent African and hundred percent Asian. ==== Face modifiers: ==== !IMAGE!Pictures/face_modifier_labelled.png!/IMAGE! The makehuman face modifiers in makehuman are organised into several categories(eyes, nose , chine etc.) comprising of the morphs pertaining to varios facial features. The morphs available on the right hand side pertain to the category currently active. E.g. When the Head category is selected all morphs pertaining to the head such as head shape (oval ,round , triangular etc), angle and age are available. If the category was to be switched to Mouth size however all sliders related to that category would be visible and manipulatable. ==== Adjusting the Torso Shape: ==== !IMAGE!Pictures/torso_cropped_labelled.png!/IMAGE! In order to alter the torso-related features of the human we have to select the "Torso" sub-tab located under the main "Modeling" tab. In the torso section we are able toalter various attibutes such as stomach (size, pregnancy shape), body height, width and so on. ==== Arms and Legs Shape: ==== !IMAGE!Pictures/legs_modelling_2_0.png!/IMAGE! The "Arms and Legs" sub-tab is again located under the main "Modeling" tab. Here we can alter the various attributes related to the arms and legs such as hands, arms and feet. === Makehuman alternative topologies === Makehuman provides a group of alternative topologies which replace the base mesh and are designed for special purposes. These are useful for various applications such as simulation (E.g. a car crash computer simulator), games and so on. !IMAGE!Pictures/topologies_0.png!/IMAGE! In order to use the alternative topologies provided by MakeHuman; go to Geometries -> Topologies. For alternative topologies we follow a specific naming convention having the structureNameVertex-countE.g. proxy741 is a alternative topology named proxy with 741 vertices, female1605 is an alternative topology designed for females with 1605 vertices in the mesh. For illustration purposes we show the wireframe/mesh view of female1605 with 1605 vertices in the figure below. !IMAGE!Pictures/Proxies1.png!/IMAGE! === Skin and other materials === ==== Changing Skin Texture ==== By default the human has a texturless skin. Assigning a new skin material is very easy. Go in Materials Tab. You will now see a radio button option for "Skin" under the Human category choices section on the left side of the window. The right side will display available skin materials that can be applied to replace the default skin. By clicking on one of them your character will be displayed with the chosen material. !IMAGE!Pictures/materials_0.png!/IMAGE! ==== Changing Hair Textures ==== Same process as the skin, but selecting the "hair" radio button instead. The materials available depend by the type of hair loaded. !IMAGE!Pictures/hair2_0_0.png!/IMAGE! ==== Changing Clothes Textures ==== Changing clothes texture is exactly as the hair one, selecting the cloth type instead of hair. !IMAGE!Pictures/clothes2_0_0.png!/IMAGE! == Rendering Your Work == To write === Quick rendering and advanced rendering === ==== Introduction ==== MakeHuman™ has an internal rendering engine based on OpenGL technology: GLSL 1.2 for openGL 2.1 or superior. For this reason some features will be available only for machine(s) build after semptember 2006. For the same reasons, the results can vary a bit, depending the video cards. !IMAGE!Pictures/render_0.png!/IMAGE! ==== Quick render and advanced render ==== MakeHuman™ uses two different rendering approaches, quick and advanced rendering. Both them produce images with transparent background, in order to be eaily mounted in Gimp or Photoshop. The quick renderingis intended to for a click-and-see render. It uses fixed presets for lights and materials, studied to show the model in an optimal way. There are only ywo available options in that mode: * Resolution, written in the form widthxheight * Antialiasing(turn it on for quality rendering): Aliasing happens when model edges look 'jaggy'. Raise this slider to filter these. It also help hair and thin stuff in general look better. However raising the AA level can have an equivalent performance hit. The advanced renderinguse a different rendering technique. It gets the lights defined in "scene" and make complex calculations. In future it will supports shadows and more options to increase the realism. In addition to the two existing options, there is the subsurface scattering one. Enabling it will produce a more realistic and impressive skin, to simulate the skin's behaviour when light passes through it. When you have finished selecting the desired options, press the 'Render' button and see your model become a piece of 3D art! === Scene and Viewer === ==== Makehuman "Scenes": ==== MakeHuman™ provides a library of lighting presets, that will be used in the "advanced rendering" mode. This library is the "Scene" library which currently has only one lighting preset named "default". ==== The "Viewer": ==== The rendering result will be displayed in the "viewer". It's possible to zoom and move the image using the usual mouse buttons, and then save the image as png, using the "Save as" button. !IMAGE!Pictures/viewer_0.png!/IMAGE! == Settings == Setting the preferences in MakeHuman. === Background === The Background tab allows you to add background/foreground images to use as a modelling reference or to create a scene within MakeHuman™ for the Short Pipeline. When you open the Background tab you will see a "None" icon and a list of thumbnails of the files within the backgrounds folder in the!LINK!http://www.makehuman.org/doc/faq/where_is_my_home.html -- MakeHuman home folder!/LINK!, if they are present. The "None" icon is used to remove the background from the MakeHuman™ scene. !IMAGE!Pictures/background_0_0.png!/IMAGE! ==== Different backgrounds for different sides ==== Prior to selecting an image you should first determine the side of the MakeHuman™ scene where you want the image to appear. You can specify where you would like the background placed relative to your MakeHuman™ character with the Side control choices on the right hand side of the Background tab screen. The first six (6) options set the background in your scene using the standard Camera view positions. If you choose the last radio button option labeled "Other" you can add the background into the scene with the character and camera position however it was last set, as long as it was not in one of the predfined camera views. If you are placing an image to act as a reference image for modelling your character, you should select the side that matches your reference facing. You can insert up to 7 different images into the MakeHuman™ scene by applying a different image to each Side option. As the camera view changes into each side view or other view angle, the image shown will change as match your image side configuration for each of the camera side views shown in the modelling window. The background image, in fact, will only appear while the camera remains in the side view specified. Pressing one of the camera view options is the easiest way to get a background image to reappear if it disappears due to a camera view change. ==== Background opacity and position. ==== The Background Setting options allow you to set the background image's opacity using the Opacity slider control, which determines how transparent or opaque the image will appear in the scene, and to set the image as a background or foreground. These controls are particularly useful when you are using reference images to model your character. The standard Opacity setting of 100 is equivalent to a 60% transparency level. Setting the control to 0 will make the image invisible (100% transparency) and setting the opacity control to 250 will make the image fully opaque (0% tranparency). The "Show in Foreground" checkbox option allows you to place the image in front of the character in the scene so that the character will be obscured according to the opacity level setting of the background image. This option should be checked if the image will be used as a reference image for modelling. The background can be moved and resized to properly fit the character, checking the options in the left side and then clicking and dragging with leftbutton or rightbutton. === General === ==== General Settings ==== The general settings include important features that can make a huge difference in MakeHuman's performance. !IMAGE!Pictures/general.png!/IMAGE! === Slider behaviour === * Update realtime. This option recalculates the human shape in real time during the slider movements. This requires more CPU resources. * Update normals real time. By enabling this option, the normals are updated during the slider movements in order to see a correct shading in real time. Computing the surface normals requires an intensive CPU calculation, so this can slow down old PCs. * Fit objects in realtime. By enabling it, all objects (eyes, hair, clothes, teeth, etc..) are fitted in real time during the body transformations. This requires more CPU resources. * Autozoom camera. Enabling it will automatically zoom in the camera to the zone of interest. For example, editing the head, it will zoom in to it, editing the hand, it will automatically zoom in to the hand, etc.. This can be useful in some cases, but it doesn't allow custom point of view, so this option is disabled by default. * Slider images. Enable the images to illustrate the sliders' effect. Disable it for a more compact list of controls. === Units === This setting is to choose the measurement system that will be used : * Metric, to use meters, centimeters, etc * Imperial, to use inch, feet,etc.. === Startup === * Preload macro targets. This option is very important for perfomance and startup loading time. Using the preload increases a lot the performance, but in the case when the targets are not compiled (for example the raw targets cloned from HG) it will considerably increase the loading time during startup. * Restore windows size. This option is just to remember the custom windows size used for MakeHuman. === Theme and languages. === These options areself explanatory. MakeHuman needs to be restarted for a change in the language settings to be effective. === Mouse === ==== Managing mouse configuration: ==== THe "Mouse" tab allows you to configure the behaviour of the mouse in makehuman. !IMAGE!Pictures/mouse_001.png!/IMAGE! The first wiidget in the left panel contains one slider labelled "3D viewport Speed". This slider controls the how sensitive the viewport is to mouse movement. As you increase this parameter the viewport become increasingly sensitive to mouse movements, thereby moving faster. Tweak this parameter with care. A value of one is the default speed at which makehuman models rotate and move in response to the mouse. Increase this parameter if you feel that the movements are too slow for your liking. The second widget inside the left panel is the "Camera" widget this widget allows you to configure the mouse settings used to control the camera. This also allows you to invert the mouse wheel. Note:With the orbital camera, panning is available only in certain situations. Therefore, the "Move" shortcut has been made available for configuration. If you cannot pan your model it may not a bug. === Shortcuts === THe "Shortcuts" tab helps us to manage shortcuts in makehuman. For your convinience shortcuts have been organised into 3 categories. The first category with the largest number of shrrtcuts available for configuration is the "Camera" category whose panel is located on the left hand side. THe other two categories are "Actions" and "Navigation". The "Action" panel helps us to alter shortcuts for actions such as undo and redo. The "Navigation" panel helps us to set shortcuts to quickly navigate between various frequently used tabs in Makehuman. !IMAGE!Pictures/shortcuts-mh_002.jpg!/IMAGE! ==== How to use the Shortcuts Tab ==== Managing of shortcuts is very easy inside makehuman. Just select the appropriate box with the current shortcut key andf type in thenew shortcut key/key combination. Makehuman will warn you if there are duplicates. === Plugins === Makehuman is designed using a modular approach. All features within makehuman belong to one module or the other. THese modules are called Plugins. With the help of the "Plugins" tab in makehuman we can enable or disable certain plugins thereby altering the feature set available. This feature is useful when: 1) A particular feature is uneeded and you want to improve performance of makehuman by disabling it. 2) A particular plugin is giving problems on your machine and you would like to disable it to avoid accidently triggering the fault again. !IMAGE!Pictures/plugins-mh_002.png!/IMAGE! By default all plugins are enabled plugins can be disabled by clicking on the option buttons and removing the "x" next to the related plugin. == Reporting a Bug == How to help MakeHuman development reporting a bug. === Using the Makehuman log files for error reporting === Occassionally, MakeHuman will not behave as expected, or you will note an exception in the status line, You willingness to make a bug report.for such events goes a long way to help imrove MakeHuman. For simple bugs,, it can often be enough to report the version of your operating system, the version of MakeHuman that you are using, and the steps to reproduce the problem. However, the developers often need to know more detail to reproduce your problem in a different environment. As long as MakeHuman has not "crashed" completely, the easiest way to learn the details is to use thebuilt-in log viewer. This can be accessed by selecting theutilities taband then thelog subtab. On the left, you will see alevel selectorthat is initially set to "default". The center panel will show a very verbose set of all the actions that have happened inside MakeHuman since it was last restarted. This entire set of information is seldom needed. For bug reporting, you will be most interested in the messages that show when you set the level selector to "error". If severe problems have occurred, the center window will show the errors logged in red. If there are none, it may still be worth reporting the somewhat less severe "warning" level messages which resulted in code exceptions. These messages will show in orange if you set the level selector to "warning". Only seldom will levels of "notice" or "message" be of interest to developers. Supply these only upon request. When you find "errors" or "warnings" you can highlight the message(s) with the mouse and press the "copy" button in the left panel. The message will be copied to your clipboard. Simply paste these messages at the end of your bug report. In the event that MakeHuman crashes completely, or in the case of complex problems it may be better or easier to upload more complete log information from the log files. MakeHuman always creates 2 important files called "makehuman-debug.txt" and "makehuman.log" in the user's home directory (under "My Documents/makehuman/v1" in Windows or "~/makehuman/v1" in your linux distribution). makehuman-debug.txt:This provides some essential information about the system on which you have installed makehuman such as version information, machine architecture type, numpy versions and so on which is useful when reporting a bug as the bug may be applicable to your particular machine configuration. makehuman.log:The makehuman.log file is another separate file. This file logs all events that take place from the beginning when makehuman is loading till the end when makehuman is closed. ALl regular events and error messages are logged in this file. It is important that you attach either this whole file or the last few signinficant lines indicating where the bug occured. This logs contains backtraces and other useful information like what plugins loaded, what plugins did not at which point did a python script fail and so on. When reporting a bug in the makehuman bugtracker posting the contents of both these files is useful and will help us to debug and resolve the issue(s) more quickly. This is of course not needed when you are posting a feature request which is not a bug. === Using the Makehuman bug tracker === Makehuman has introduced a new internal bug tracker based on redmine (!LINK!http://www.redmine.org -- www.redmine.org!/LINK!) this tracker allows us to easily handle bug reports and feature requests reported/requested by you. In order to use this new bug tracker a forum account is compulsory (even if you do not wish to use forums). Your forum ID becomes your makehuman bug tracker ID. Following are some quick links related to makehuman bug tracker: * Roadmaps:!LINK!http://bugtracker.makehuman.org/projects/makehuman/roadmap -- http://bugtracker.makehuman.org/projects/makehuman/roadmap!/LINK! * Add a new issue and see the isues list:!LINK!http://bugtracker.makehuman.org/projects/makehuman/issues -- http://bugtracker.makehuman.org/projects/makehuman/issues!/LINK! * Graph for a quick overview:!LINK!http://bugtracker.makehuman.org/projects/makehuman/issues/growth -- http://bugtracker.makehuman.org/projects/makehuman/issues/growth!/LINK! * Activity:!LINK!http://bugtracker.makehuman.org/projects/makehuman/activity -- http://bugtracker.makehuman.org/projects/makehuman/activity!/LINK! == Tools and contributing methods == Blendertools and contributing methods === MakeTarget standalone === ==== Making Wavefront .obj Files MakeHuman™ Compliant ==== The following procedures should be followed to create Wavefront .obj files that comply with the requirements of MakeHuman™ using modelling software programs such as 3dMax, Maya, XSI, etc. * * Download the 1.x base mesh base.obj file from MakeHuman!LINK!https://bitbucket.org/MakeHuman/makehuman/src/c40af22cebf2d5372b931b485f60588f42f24480/makehuman/data/3dobjs/base.obj?at=default -- HG repository!/LINK! * Import it into your preferred modelling software * Modify it in order to create your final character * Export it as .obj (of course with a different name than base.obj) During editing of the base mesh be careful about 3 things!You have to pay attention that: * The import/export does not alter the number of vertices, the faces, does not split the obj, etc. The topology has to be the same as the original one. * When modifying the base, you do not delete or add vertices, do not add or remove faces, etc. The topology has to be the same as the original one. * The 3D program used also preserves the exact order of the vertices. ==== There are no other limitations on the .obj files used. ==== ==== Making Targets with MakeTarget™ StandAlone ==== ==== Using the MakeTarget GUI program ==== To obtain the MakeTarget GUI program, download and install either the Windows version or the Linux version at the bottom of the download page of the MakeHuman website at: !LINK!http://makehuman.org/content/download.html -- http://makehuman.org/content/download.html!/LINK! Looking at the GUI of MakeTarget, you can notice other elements: the (+) and (-) lists, the possibility to process whole directories and to have .obj as output. These are batch tools, designed for MakeHuman developers. Let’s go on to describe an usual scenario. Assuming you have 30 “chin” targets modelled on the young caucasian female. These targets will create artifacts when applied on a young asian female. So our artists have to process 30 targets in order to create an asian version from all of them. The steps are: * For each chin target, do: asian-female-young.target + chin.target and save the result as .obj. * Import each .obj in a modelling software, fix the artifacts by hand and export the corrected .obj. * For each corrected .obj, subtract the asian-female-young.target and save the rest as asian version of the chin target. For step (1) we will process an entire directory, choosing “Directory” as “input source” and targets as input type. Then we will “add” the asian-female-young.target, loading it in the (+) section. Then will choose “Obj” as “Output type”. !IMAGE!Pictures/image01.png!/IMAGE! Pressing the “Make” button, the entire folder will be processed, and in the same directory of targets we will see the newly created .objs. At this point, we can copy the folder, renaming it as “chin_fixed” and deleting the original targets. For step (2), we have to import, edit and export each .obj individually, as showed previously for the single target. After completing step (2), all .objs in “chin_fixed” will be fixed and ready to be converted into targets. So, it’s time for step (3). Again, we will process the entire directory, but this time the input type will be “Obj” and the output “Target”. Also, this time we will subtract the asian target, in order to obtain only the chin morph. !IMAGE!Pictures/image00.png!/IMAGE! Pressing the “make” button, this time we will obtain a series of .target, with the same name as the original objs, placed in the “chin_fixed” folder. That’s all! ==== Command Line Usage ==== This tool allows wavefront .obj files to be used that were edited using any 3D program. The only limitations are that the edit stems from the original base.obj file and that no vertices, edges or faces are added or removed. The 3D program used also needs to preserve the exact order of the vertices. There are no other limitations on the obj files used. Usage: There are a commandline version and a version with graphic user interface. Both do exactly the same thing. Here follows the explanation of how to use the commandline version. Options: -i --in input obj or target -o --out output obj or target -s --sub target to subtract from obj -a --add target to add to obj -d --dir input folder to load all objs or targets from --intype type of file to be input, obj (default) or target only applicable if --dir is used --outtype type of file that will be output, obj or target (default) -h --help this info -v --verbose verbose mode, shows extra information Usage scenarios: Load foo.obj as input, compare it with base.obj and output the difference as foo.target. Load foo.obj, subtract foo1.target from it, and output the difference between the resulting obj and base.obj as foo.target. Load foo.obj, add foo1.target to it, and output the difference between the resulting obj and base.obj as foo.target. Load all objs from myfolder, save the difference between the base.obj and each of the input objs to a target file with the same name as the input obj. Load all objs from myfolder, subtract foo1.target from each of them, and save the difference between base.obj and each of the resulting objs to a target file with the same name as the input obj. Load all objs from myfolder, add foo1.target to each of them, and save the difference between base.obj and each of the resulting objs to a target file with the same name as the input obj. Load foo.target, apply it to base.obj and output the resulting obj as foo.obj. Load all target files from myfolder, apply each of them to base.obj and save the result of each to obj with the same name as the target file. Load all target files in myfolder, apply each of them to base.obj while also subtracting foo1.target from the result. Save each combination to an obj with the same name as the input target. Load all target files in myfolder, apply each of them to base.obj while also adding foo1.target to the result. Save each combination to an obj with the same name as the input target. This is the usage information as can be obtained by running the "maketarget.py --help" command. Some additional scenarios that are not documented are possible with the tool. The user is protected from issuing commands that make no sense (eg. do nothing) as the tool will warn you about this. Also note that files are never overwritten. Upon encountering an already existing file this file is backed up as original_filename.bak. Additional backups of the same file are named in order original_filename.bak.0 original_filename.bak.1 etc. The GUI version of the tool does exactly the same thing. The exact same options (except help and verbose) are available in the GUI. The only difference between commandline and GUI version is that the GUI demands you specify an --in or --dir parameter. With the commandline tool you can do without as long as you specify some --add or --sub targets. ==== Compiling Binaries ==== For the ease of distribution a pyinstaller configuration is supplied to create a self-contained binary executable for both windows and linux. (MAC OS might work but is untested). For running this executable, the user does not need to install python or any other libraries (such as wxwidgets) on his computer. For building the package, however, you need to have those dependencies installed, and need to build the package on the target OS. There are two build files available: * compilePyinstaller.bat,for building a windows executable * compilePyinstaller.sh for building a linux executable (might work for OSX too) In order to use them you need to create a folder called "pyinstaller" in the makehuman/tools/standalone/maketarget folder. The build configs were tested with pyinstaller 1.5.1, but might work on future or older versions too. Additionally these dependencies are needed for the respective operating systems: Windows: * Python 2.7 !LINK!http://python.org/ -- http://python.org/!/LINK! I recommend using python 2.7 as I had issues with 2.6 and pyinstaller. The tool works fine with python 2.6, however * pywin32 !LINK!http://sourceforge.net/projects/pywin32/ -- http://sourceforge.net/projects/pywin32/!/LINK! Python extensions for windows. Needed for pyinstaller to work. * wxpython2.8 !LINK!http://www.wxpython.org/ -- http://www.wxpython.org/!/LINK! WX Widgets libraries and python wrappers for windows. Installable as one singe package.I recommend using the wxPython2.8 win32 unicode package for python 2.7. * UPX (optional) !LINK!http://upx.sourceforge.net/ -- http://upx.sourceforge.net/!/LINK! This is a tool for compressing the executable and reduce its size. Compression will happen automatically if UPX is installed. To install UPX copy upx.exe to C:\WINDOWS\system32 Note: you will need at least UPX 1.92 beta due to incompatibilites with the Visual Studio compiler, with which newer versions of python are compiled on windows. Linux: * Python 2.6 !LINK!http://python.org/ -- http://python.org/!/LINK! Version 2.7 works fine too. * python-wxgtk2.8 * libwxgtk2.8 !LINK!http://www.wxpython.org/ -- http://www.wxpython.org/!/LINK! !LINK!http://www.wxwidgets.org/ -- http://www.wxwidgets.org/!/LINK! WX Widgets libraries and python wrappers for wx * UPX (optional) !LINK!http://upx.sourceforge.net/ -- http://upx.sourceforge.net/!/LINK! This is a tool for compressing the executable and reduce its size. Compression will happen automatically if UPX is installed The pyinstaller script will create all the files that need to be distributed in a folder called dist/ (this will be an .xrc file, the executable, and a resources/ folder containing images used in the GUI). You can archive the contents of the dist/ folder and distribute these freely as a standalone application. === wxWidgets specific information === The GUI of this tool has been made using the python version of wxWidgets. The GUI form itself is not created using application code, but is instead loaded from the maketarget.xrc file that declares the GUI. This file was built using wxFormBuilder (!LINK!http://wxformbuilder.org/ -- http://wxformbuilder.org/!/LINK!). The file maketarget_gui.fbp is the source file that can be opened in formbuilder. The xrc file is output generated using the formbuilder application. However, the xrc could be edited manually too (but this would cause fbp and xrc file to go out of sync). === More information === For more specific details you can contact the author Jonas Hauquier at the makehuman.org website. === MHBlenderTools: MakeTarget === ==== What is a Target? The MakeHuman Morphing Process. ==== The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. !IMAGE!Pictures/morph1.png!/IMAGE! A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format,.target. ==== Loading the Base Mesh ==== While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. !IMAGE!Pictures/maketarget131-area.png!/IMAGE! The MakeTarge™ Version 1.31 Panel (Initial Settings) !IMAGE!Pictures/maketarget131.png!/IMAGE! Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file !IMAGE!Pictures/helper_details.png!/IMAGE! Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. !IMAGE!Pictures/maketarget-base.png!/IMAGE! ==== Basic usage ==== === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === !IMAGE!Pictures/MakeTarget_load.png!/IMAGE! After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™base. === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. ==== Advanced usage ==== === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. !IMAGE!Pictures/maketarget131-panels.png!/IMAGE! At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image below beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. !IMAGE!Pictures/maketarget3.png!/IMAGE! === Load Target Section (After The First Target Is Loaded) === !IMAGE!Pictures/MakeTargetLoadSecondaryTarget.png!/IMAGE! The three buttons that now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. === Discard And Apply Target Section === !IMAGE!Pictures/MakeTargetDiscardAndApplyTarget.png!/IMAGE! The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. === Symmetry Section === !IMAGE!Pictures/MakeTargetTargetSymmetryButtons.png!/IMAGE! The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === !IMAGE!Pictures/MakeTargetSaveTargetSection.png!/IMAGE! Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === !IMAGE!Pictures/MakeTargetFitTargetButton.png!/IMAGE! !IMAGE!Pictures/MakeTargetSkirtEditingAffectOnly3.png!/IMAGE! When the fit helpers have been included as part of the target, the additional options of the MakeTarget™panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. === MHBlenderTools: MakeClothes === === Overview === MakeClothes, as its name implies, is a Blender addon that is used to construct clothing assets for use in the MakeHuman program. Clothes can be modeled using any technique that is natural. For example, clothing can be modeled from scratch, or by altering either the human mesh or the “clothing helpers” (see below) provided by the MakeClothes tool. When designing and modeling a clothing item, there are two restrictions that should be kept in mind. First, the algorithm for mapping a clothing mesh to the human mesh requires that theclothing mesh consists entirely of quad faces. Second, it is important to know that MakeClothes supports only one material per item of clothing. Upon completing the MakeClothes workflow, a new folder will be created by the tool within %USER%/makehuman/v1/data/clothes. That folder will assume the unique name that the user provides for the clothing item. This folder will be populated with the assets necessary to make the item available in MakeHuman. The one additional, useful but not essential, item that the user must supply is a thumbnail icon for the clothing. The thumbnail icon can be created with any image editing program as a 128 x128 pixel image in .png format. The file should then be saved in the same folder as the other assets and the extension changed to .thumb. === Using MakeClothes addon === MakeClothes is controlled by the MakeClothes panel in the N-shelf to the right of the viewport. It consists of the main buttons that are always visible, and several hidden sections that can be displayed by enabling a checkbox. !IMAGE!Pictures/mc2-010-main.png!/IMAGE! The main section contains the following: * Type: Specifies the character to be used as a reference. It can be one of the following: * Base Mesh: The MakeHuman mesh without any targets applied. * Average Male: A caucasian young male. * Average Female: A caucasian young female. * Average Child: A caucasian young child. * Average Baby: A caucasian young baby. * Base Mesh with Helpers: The MakeHuman mesh without any targets applied. * Average Male with Helpers: A caucasian young male. * Average Female with Helpers: A caucasian young female. * Average Childwith Helpers: A caucasian young child. * Average Baby with Helpers: A caucasian young baby. * Load Human mesh: the button to load the selected type into the scene. Note:"helpers" in MakeHuman are a type of special, invisible geometry over the base mesh which can be loaded to help model clothes, for example, a helper sweater, helper tights etc. They have their own materials. It is important to note that no alterations should be made to the base mesh type after it is loaded otherwise the script will fail. The picture below shows the result of pressing "Load Human Mesh", with type set to Base Mesh. !IMAGE!Pictures/mc2-011-main_0.png!/IMAGE! A human mesh is loaded into the viewport, and more tools are enabled: * Mesh Type: MakeClothes divides meshes into two types: human and clothing. This button displays the mesh type (Human/Clothing) of the active mesh and is greyed out if the active object is not a mesh. (MakeHuman normally detects the items accurately, but in the event of an error, you can click the button to change the mesh type so that it is treated as a clothing item instead of human if it is a clothing item and wrongly detected as a human item) * Create Vertex Groups From Selection: MakeClothes uses vertex groups to control the fitting. * Make Clothes. This is the main entry point for the MakeClothes script. With one human and one piece of clothing selected, create an association between clothes vertices and human triangles, i.e. triplets of human vertices. Both meshes must have vertex groups with identical names, and each clothing vertex must belong to exactly one vertex group. The result of the association is saved in the file ObjectName/ObjectName.mhclo, in the default directory. This button is greyed out if the active object is not a mesh. * Test Clothes. This buttons loads a piece of clothing (an .mhclo file) and fits it to the active mesh, which must be a human. Typically a second human is loaded on a different layer, and the quality of the clothes fitted to that character can immediately be checked in Blender. To test the clothes under the strictest conditions, the human model used for testing should be quite different from the human used for clothes-making. If the original character is an adult, Baby With Helpers is a good choice. If, instead, the Human With Helpers button is pressed, the full MakeHuman mesh including the helper geometry is loaded. Different materials are assigned to each type of helper geometry. The materials are ordered in the order of the vertex number. This makes it easy to peel off one helper type at a time. !IMAGE!Pictures/makeclothes03.png!/IMAGE! === Glue clothes to the body === The clothes are meshes that be done directly in Blender, or in another package and then imported into Blender as an obj file. Note that the mesh type is Clothing, which is the default unless the mesh has been declared to be a human. A simple method to obtain a starting point modelling is to duplicate part of the human mesh and separate it from the human. However, in this case the duplicated mesh will still be a human. To change the mesh type, press the toggle button Human. The status is now changed into Clothing. After loading the human, next step is to "glue" the clothes to the human, in order that they will automatically fit the body changes. To control this association, MakeClothes uses vertex groups. Each clothing vertex must belong to exactly one vertex group, and a vertex group with thesame namemust exist in the human mesh as well. Only human vertices in the correct vertex group will be considered when making clothes. Vertex groups speed up the clothes-making process by pruning the search tree, and can be used to control the appearance of clothes as well. However, assigning vertex groups can be quite tedious, and in many cases it is sufficient let MakeClothes create vertex groups automatically. This is done automatically when a human mesh is loaded. If a clothing mesh does not have any vertex groups, it is also done automatically, when the MakeClothes button is pressed. === Automatic vertex groups === If vertex groups need to be reassigned, e.g. because a piece of clothing has been edited, the automatic vertex groups can be used. When the human is selected, there is a button, visible in the image above, called "Create Vertex Groups From Selection". Selecting a cloth, the button change in "Create Vertex Groups". Both the buttons do the same thing, but there is a little difference: in the human is possible to generate the vertex groups only for a sub set of the vertices (selected in edit mode), while for clothing the vertex groups must include all vertices. This is because we need to associate onlya partof the human vertices withallvertices of the clothing. For example, we need to associate all the vertices of a skirt with the human torso only. Pressing the button, the following vertex groups are created: * Mid: Vertices on or very close to the center line (|x| < 0:001). * Left: Vertices to the left of the center line (x > 0:001). For a human the Mid vertices are also included in the Left group. * Right. Vertices to the right of the center line (x z 0:001). For a human the Mid vertices are also included in the Right group. * Delete: An empty group only created for humans. Human vertices hidden by the piece of clothing can be added to this groups. These vertices are then optionally deleted when the clothing is applied in MakeHuman, thus avoiding that blotches of skin poking through the clothes. Note that when a vertex is deleted, so are all faces containing this vertex. Don't assign a vertex to the Delete group unless all faces containing it are hidden by the pieces of clothing. In the image below, vertices assigned to the Mid and Left groups for a nude human. !IMAGE!Pictures/auto-vert.png!/IMAGE! === Generate the clothes file. === When both clothing and human has the vertex groups with same name, just press the MakeClothes button to generate the files. They will be located in your HOME/makehuman/a8/data/clothes, in order to be inbcluded automatically in MakeHuman. ==== Advanced tools ==== Under the main buttons of Makeclothes, there are seven hidden panels that can be activated clicking the checkbox. Let's see their meaning. === Show selection, Show Materials, Show UV projection === !IMAGE!Pictures/options-01.png!/IMAGE! Show selection.This feature is just a shortcut to quickly select some part of the human. So, instead of classic Blender selection (go in edit mode, move the mous on a vert and press Lkey to select the linked vertices), you can just press these buttons. Show Materials. This will show a button to export the materials only. It's useful in case there are not changes on geometry, but only on the material, in order to avoid to recompute all. Show UV projection.This section is useful mainly for making proxy meshes. * Recover seams.Creates a Seam object, which has edges where the selected mesh's UV layout has seams. The Seam object is intended to be reference for marking seams for the clothing. * Auto seams. * Project UVs.Automatically create an UV layout for the clothing, compatible with the human's UV coordinates. This is intended for the mask UV layer, which must be compatible with the body mesh for all clothes. The actual texture can use a different UV layer which can be laid out in any desirable manner. * Reexport Mhclo file.The mhclo file must be resaved when the mask UVs have been defined. This can be done by pressing Make clothes again, but Reexport Mhclo file is faster. === Show ZDepth, Show Offset scaling === !IMAGE!Pictures/options-02_0.png!/IMAGE! Show ZDepth.This option is used to assign a depth to the cloth, in order to hide skin and clothes which are covered by clothes on top of it. The Z depth specifies the stacking order, which decides which clothes should hide others. Normally the Z depth ranges between 0 (skin) and 100 (external accessories such as backpacks). * Depth name. Roughly indicates the preferred Z depth for various clothes types. The choices are: Body, Underwear and lingerie, Socks and stockings, Shirt and trousers, Sweater, Indoor jacket, Shoes and boots, Coat, Backpack. * Set Z depth.Set the Z depth depending on the selected depth name. * Z depth.The value of the Z depth. This is changed by the Set Z depth button, but can be dialledmanually for fine-tuning. Show Offset scaling.The location of a clothing vertex depends on two data: a point on a body triangle, described in barycentric coordinates, and the offset from that point. The offset is scaled in the X, Y and Z directions depending on the size of a certain body part. * Body part.Set this to the body part which is most affected. The choices are: Custom, Body, Genital, Head, Torso, Arm, Hand, Leg, Foot. * Examine.Select the boundary vertices with Set boundary is invoked. * Set boundary.Set the boundary to vertices determined by the selected body part. * Custom Boundary.To manually set the bounday box. * X1, X2, Y1, Y2, Z1, Z2.The vertex numbers of the six vertices which define the scaling boundary. The X scale is determined from the distance between vertices X1 and X2, the Y scale by Y1 and Y2, and the Z scale by Z1 and Z2. === Show Setting, Show License === !IMAGE!Pictures/options-03.png!/IMAGE! Show Setting.The setting include the author name and the export path. It's possible to save and restore the settings. Show License.This set of options are to add theauthor name, the type of license and the tags for clothes. Licensing information to be put at the top of the exported mhclo file. It consists of three strings that can contain arbitary text. * Author. Defaults to: Unknown. * License. Defaults to: AGPL3 * HomePage. Defaults to:!LINK!http://www.makehuman.org/ -- http://www.makehuman.org/!/LINK! === GUI languages and translations. === Our GUI is available in many languages, but translations are not yet complete. Anyway now contributing in order to add a new language is very easy, since the MakeHuman project is now available for translation on!LINK!http://www.transifex.com/organization/makehuman/ -- Transifex!/LINK!. !IMAGE!Pictures/languages.png!/IMAGE! Transifex is a web application for localization in an easy and agile way. !IMAGE!Pictures/transifex.png!/IMAGE! If you want to help the MakeHuman project by translating the GUI into your language, you first need to create an account on Transifex. Then, when logged in, you can go to!LINK!https://www.transifex.com/projects/p/makehuman/ -- the MakeHuman Transifex page!/LINK!and click on the appropriate language you want to translate. Then click the "Join team" button. Now you can click the current release name (for example "Alpha 8") entry and click "Translate now". If you want to make a translation in another language that is not yet listed, click "request language" on the!LINK!https://www.transifex.com/projects/p/makehuman/ -- MakeHuman transifex page!/LINK!. We will make sure to accept it as fast as possible, so you can start translating. Translating is quick and easy. You can select the "Untranslated strings" filter to show only the things left to translate. Click the first word on the left, and in the center of the screen enter your translation in the input box. When done typing, simply press the TAB button on your keyboard, and it automatically goes to the next entry. Repeat this process untill everything is translated. You can leave things open you are uncertain about, and leave them for later. Perhaps others know a good solution. You can interrupt your work at any time and continue working later, or leave it for others to finish. If you already have a translated file on your hard disk (for example you made modifications to an already existing language .ini file of MakeHuman, or you have filled in a .missing language file), you can upload it as translation and Transifex will automatically include it in the translation. You will be also able to download the json file of your language, in order to put it in makehuman/data/languages. On restarting MakeHuman, the new language will be available as an option under "Settings". === MHBlenderTools: Download and installation === The Blendertools package is available on the download page:!LINK!http://www.makehuman.org/content/download.html -- http://www.makehuman.org/content/download.html!/LINK! The current version is 1.0.0, designed to work with MakeHuman 1.0.0 and with Blender 2.69. It's a zip package of four folders: * MakeTarget * MakeClothes * MakeWalk * mhx_importer To install the addons, these subfolders must first be copied to a location where Blender can find it. Depending on the operating system being used, the addons destination directory where Blender will look for user-defined add-ons, is * Windows 7: C:\Users\%username%\AppData\Roaming\Blender Foundation\Blender\2.6x\scripts\addons * Windows XP: C:\Documents and Settings\%username%\Application Data\Blender Foundation\Blender\2.6x\scripts\addons * Vista: C:\Program Files\Blender Foundation\Blender\%blenderversion%\scripts\addons (this is valid at least for blender 2.69) * Linux: /home/$user/.blender/$version/scripts/addons Note that the AppData folder in Windows 7 and the .blender folder in Linux are hidden folders. The location may also be different depending on your choices for setting up your operating system and Blender. For more information see the Blender documentation. To enable the MH addons, in Blender open the User Preferences window from the File > User Preferences menu, and go to the Addons tab. The Blendertools addons are located in the MakeHuman category. Enable them by checking the box in the upper-right corner, next to the running man symbol. If you want Blendertools to start every time Blender is restarted, press the "Save User Settings" button. !IMAGE!Pictures/mhx-pref.png!/IMAGE! === MHBlenderTools: MakeWalk basic workflow === MakeWalk is a Blender add-on for retargeting mocap data (.bvh files) to a given armature. ==== Retargeting: how it works ==== The goal of retargeting is to transfer a motion from a source armature (e.g. from a BVH file) to a given target armature (e.g. the MHX rig). However, it is not straightforward to assign the source action to the target rig, even if the bones have identical names. The motion of each bone is specified in local coordinates, relative to the parent and the bone's own rest pose. If the rest poses of the source and target armatures differ, the source F-curves can not be used directly by the target armature. !IMAGE!Pictures/makewalk-1.png!/IMAGE! The picture above shows a transformation in the local coordinate system. Since the parent's local Y points along its axis and its local Z points up, the child bone is rotated around the local X axis. This is not very useful if the target armature has a diffent rest pose. To retarget the pose, we therefore reexpress the transformation in the global coordinate system, as shown below. The local X rotation corresponds to a global Y rotation, and by a different angle. Once the global transformation matrix is known, we can reexpress it in the target bone's local coordinate system. The retargeting process thus consists of making two coordinate transformations: Source local => Global => Target local. This will ensure that the source bone and the target bone will have the same global orientation. !IMAGE!Pictures/makewalk_2.png!/IMAGE! Unfortunately, things are a little more complicated. We do not always want the source and target bones to have identical orientation. In particular, the root or pelvis bone may point in entirely different directions in different armatures. E.g. in the CMU armature rest pose the pelvis points forward-down, and in the MHX rig it points straight up. !IMAGE!Pictures/makewalk-3.png!/IMAGE! If we insisted that the root bone in the MHX rig would point in the same direction as in the CMU rig, the retargeting would not be very successful, as shown in the figure above. If we instead keep the rotation offset from the rest poses, the target pose becomes much better, as shown below. To calibrate the source and target armature against each other, MalkWalk introduces extra keyframes at frame 0, where both armatures are posed in T-pose. !IMAGE!Pictures/mcp-ret-060-calibrate.png!/IMAGE! In the rest of the animation, bones in the target armature copy the global rotations of the source armature, apart from differences present in the T-poses. In this way we can transfer animations from CMU to the MHX rig, despite the fact that the rest poses are very different. ==== Basic Workflow ==== === Retargeting === The MakeWalk panels appear in the tool shelf whenever an armature is the active object. Select the armature and press the Load And Retarget button. In the file selector, select the .bvh file. We choose the file 90_04.bvh from the CMU database. It is a cartwheel animation. !IMAGE!Pictures/makewalk-4.png!/IMAGE! After a short wait, the armature is doing gymnastics. !IMAGE!Pictures/makewalk-5.png!/IMAGE! At frame 0 of the animation the armature has been placed in T-pose. This is not part of the originial .bvh file, but inserted by MakeWalk to calibrate the source armature (defined by the bvh file) and the target armature (the selected armature in the viewport) against each other. === Supported armatures === MakeWalk works with most straightforward biped rigs with FK arms and legs, such as the Rigify meta-rig. There is also built-in support for some more complex rigs: the MHX advanced rig from MakeHuman, the MHX rig from MakeHuman and Rigify. !IMAGE!Pictures/makewalk-6.png!/IMAGE! It is often possible to use MakeWalk with other complex rig, but in that case the automatic bone identification may fail. If so, a bone map must be defined manually, see!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining a Target Rig Manually!/LINK!. === Troubleshooting === Retargeting is a rather involved subject, and it can sometimes result in poor motion. The process may even fail completely, usually because MakeWalk failed to automatically identify the bones of a complex rig. If this should happen, see!LINK!http://www.makehuman.org/doc/node/makewalk_errors_and_corrective_actions.html -- Errors and Corrective Actions!/LINK!. ==== Where to find BVH files ==== There are several different formats that mocap files can be stored in. MakeHuman's mocap tool can only deal with files in Biovision BVH format. BVH files can be bought from many commercial sources, but a large range of mocap files are also available for free download. Here are some sites I found useful. * CMU Graphics Lab Motion Capture Database: Hosted at Carnegie-Mellon University, this is a huge library of mocap files which can be downloaded for free. The web address is!LINK!http://mocap.cs.cmu.edu/ -- http://mocap.cs.cmu.edu!/LINK!. CMU hosts mocap files in three formats: tvd, c3d and amc. However, the mocap tool can only read BVH files, so none of these files can be used directly. Fortunately, B. Hahne at!LINK!http://www.cgspeed.com/ -- www.cgspeed.com!/LINK!has converted the CMU files to BVH. The converted files are located at!LINK!http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture -- http://sites.google.com/a/cgspeed.com/cgspeed/motion-capture!/LINK!. * Advanced Computing Center for the Arts and Design (ACCAD): Hosted at the Ohio State University, this is another great source of free mocap files. BVH files can be downloaded from!LINK!http://accad.osu.edu/research/mocap/mocap_data.htm -- http://accad.osu.edu/research/mocap/mocap_data.htm!/LINK! * Eyes Japan (mocapdata.com):This is a Japanese company that sells mocap data commercially, but they also offer a huge number of motions for free. According to their homepage, mocapdata.com provides 744 premium motion data and 4197 free motion data. The only catch is that downloading requires registration. Not surprisingly, the homepage of mocapdata.com has the address!LINK!http://www.mocapdata.com/ -- http://www.mocapdata.com/!/LINK!. * The Trailer's Park: Free mocap data can also be found at the Trailer's Park,!LINK!http://www.thetrailerspark.com/ -- http://www.thetrailerspark.com!/LINK!. This site does not offer original data, but offer repacks of mocap data from other free sites for download. Free download is limited to some five packs per day, so some patience is required here. * Hochschule der Medien, Universität Bonn (HDM):!LINK!http://www.mpi-inf.mpg.de/resources/HDM05/ -- http://www.mpi-inf.mpg.de/resources/HDM05!/LINK! * The Perfume global site project #001:!LINK!http://perfume-dev.github.com/ -- http://perfume-dev.github.com/!/LINK! === MHBlenderTools: MakeWalk user interface === ==== The user interface ==== The user > interface of MakeWalk is located in under the Armature tab, and becomes visible when an armature is selected. It consists of six panels; the first one is open by default and the others are closed. !IMAGE!Pictures/makewalk-7_0.png!/IMAGE! * Load And Retarget: Select a BVH file and retarget it to the active armature. * Start Frame: The first frame in the BVH file to considered. * Last Frame: The last frame to be considered, unless the animation stops earlier. The difference last_frame - first_frame is the maximal number of frames after retargeting. The number of frames in the BVH file may be larger, if some frames are skipped due to subsampling * Detailed steps: When this options is selected, further buttons are show below * Load BVH File (.bvh). Load a BVH file, and create an animated armature from it. * Rename And Rescale BVH Rig. With the BVH armature active, and a target armature selected, rename and rescale the bones of the active armature to fit the target. * Load And Rename BVH File (.bvh). A combination of the previous two buttons. With a target armature active, load a BVH file, and create an animated armature with renamed and rescaled bones. * Retarget Selected To Active. Retarget the animation from a renamed and rescaled BVH armature to the active armature. * Simplify FCurves. Simplify the F-curves of the active armature. * Rescale FCurves. Rescale F-curevs of the active armature.What if retargeting fails? MakeWalk is designed to retarget animations to a given armature with a minimum of user intervention. However, retargeting is a complex process, and entirely automatic retargeting may fail or result in suboptimal motion. Information about how to identify and correct problems is found in!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Errors and Corrective Actions!/LINK!. A common problem is that automatic identification of bones in the target armature fails. A bone map can then be assigned manually, cf.!LINK!/doc/node/blendertools_makewalk_troubleshooting.html -- Defining the Target Rig Manually.!/LINK! ==== Options panel ==== !IMAGE!Pictures/makewalk-8.png!/IMAGE! * Use Default Subsample. Blender normally plays the animation in 24 fps or 25 fps, but the animation in the BVH file may be recorded at a different speed. In particular, the BVH files from CMU were filmed at 120 fps. Enable this option to have the animation play at natural speed, irrespective of the frame rate in the BVH file. Other subsample options are described below. * Auto scale. Set the scale automatically based on the size of the left thigh. This choice has two motivations: * Almost all character do have a left leg. * The leg size is crucial for making walk cycles look good. * Scale. The default MakeHuman scale is decimeters - 1 unit = 1 decimeter. Translations in a BVH file are expressed in different units; often the base unit is inches, meters or centimeters, but more obscure units can also occur, e.g. in BVH files from CMU. If the scale is set incorrectly, rotations will still be correctly retargeted, but the character will appear to take giant leaps or miniscule steps. * Use Limits: If this option is enabled, MakeWalk honors any Limit Rotation constraints, and will not allow excessive rotations. If the animation in the bvh files exceeds some rotation limits, this makes the retargeted animation less faithful. On the other hand, the rig may not be built for excessive rotations, so unchecking this option can lead to other problems. * Unlock Rotation: If this option is disabled, MakeWalk honors any rotation locks. If the animation in the bvh files bend around locked axes, this makes the retargeted animation less faithful. If Unlock Rotation is enabled, any X or Z rotation locks are disabled. Y rotation locks (bone twisting) are never disabled. The reason for this is that in the MHX and Rigify rigs, forearm rotation is handled by deform bones controlled by hand twisting. * Auto source rig. The source rig (i.e. the armature defined by the BVH file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Source Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the source rig, based on the structure of the bone hierarchy. * Auto target rig. The target rig (i.e. the armature in the blend file) is specified in the!LINK!/doc/node/blendertools_makewalk_source_and_target_armature.html -- Target Armature panel!/LINK!. Enable this option if the mocap tool should attempt to automatically identify the target rig, based on the structure of the bone hierarchy. * Ignore Hidden Layers. Ignore bones on hidden layers when identifying the target rig. === Subsample and Rescale === If the Use Default Subsample option is set, the mocap tool will rescale the animation to fit the current frame rate. However, there are at least two reasons why you may want to load an animation at a different frame rate: * * To obtain a slow-motion or rapid-motion effect. * To quickly load an animation to see if the gross features will work out. If the Use Default Subsample option is disabled, the SubSample section becomes visible. * Subsample. Enable subsampling. * Subsample Factor. If the value of this property is n, only every n:th frame of the BVH animation is loaded. * Rescale. Enable rescaling. * Rescale Factor. If the value of this property is n, the time distance between keyframes is changed to n. * Rescale FCurves. Apply the settings above to existing F-curves rather than to the loaded animation. Rescaling differs from simply scaling F-curves in the F-curve editor. === Simplification === * Simplify FCurves. Remove unnecessary keyframes. * Max Loc Error. The maximal allowed error for location keyframes, in Blender units. A larger error results in fewer keyframes but less accuracy. * Max Rot Error. The maximal allowed error for rotation keyframes, in degrees. A larger error results in fewer keyframes but less accuracy. * Only Visible. Simplification only affect F-curves visible in the Graph editor. * Only Between Markers. Simplification only affects F-curves between the two outermost selected markers. The timeline must have at least two selected markers. ==== Edit panel ==== Loading and retargeting is normally only the first step in the creation of an animation from mocap data. There are many reasons why a loaded animation does not behave exactly the way you want it to: artifacts in the mocap data, differences in armature structure not compensated for correctly by the retargeting process, differences in body stature between the mocap actor and the target character, or simply that the filmed sequence does not do exactly what you intend.. It is of course possible to edit the action directly in the graph editor, but this is unpractical due to the amount of mocap data. The mocap tool offers several possibilities to edit an action at a higher level. These tools are colleted in the Edit Action panel which is located just below the Options panel. !IMAGE!Pictures/edit-action.png!/IMAGE! === Inverse Kinematics === * Transfer FK => IK: The load and retarget steps transfers an animation from a bvh file to the target character. However, only the FK bones are animated. Press this button to transfer the FK animation to the IK bones. Only works for the advanced MHX armature. If two markers are selected, only the animation between the markers is transferred. * Transfer IK => FK: Transfer the animation back from the IK bones to the FK bones. Useful if the IK animation has been edited, * Clear IK Animation: Remove all keyframes from all IK bones (arms and legs). * Clear FK Animation: Remove all keyframes from all FK bones (arms and legs). === Global Edit === * Shift Animation. Shift the keys for the selected bones at all keyframes.If two markers are selected, only the keyframes between the markers are deleted. * X,Y,Z: F-curves affected by the next button. * Fixate Bone Locations:Replace all location keys by their average. Only selected bones and keyframes between selected markers are affected. * Rescale Factor: Factor used by next button. * Rescale FCurves: Rescale all F-curves by the factor above. This is similar to scaling F-curves in the curve editor, but jumps are treated correctly. E.g., rotations of +180 degrees and -180 degrees are the same, but if we scale an F-curve with a factor two, the intermedate keyframe will have the average rotation 0 degrees, The Rescale FCurves button handles this case correctly. === Local Edit === This section could be called "Poor man's animation layers". A loaded mocap animation usually has imperfections that must be edited, but without changing the overall feel of the motion. The Start Edit button creates a new animation layer where differences from the original motion are stored as keys, called delta keys since delta often denotes a difference. * Start Edit: Start editing F-curves. * Undo Edit: Quit F-curve editing, without modifying the original F-curves. * Loc: Set a location delta keyframe. * Rot: Set a rotation delta keyframe. * LocRot: Set a location and rotation delta keyframe. * Delete: Remove all delta keyframes at the current time. * |<: Move to first delta keyframe * <: Move to previous delta keyframe. * >: Move to next delta keyframe. * >|: Move to last delta keyframe. * Confirm Edit: Modify the original F-curves and quit F-curve editing. The delta keys are represented by markers in the timeline. !IMAGE!Pictures/mwe-315-local-keys.png!/IMAGE! A delta key can be added with the Loc, Rot and LocRot buttons, and removed with Delete. There is no way to view the delta keys directly. In the viewport and the curve editor, the final pose is shown, which is the sum of the original pose and the delta key. A common use for delta keys is to correct for intersection with other objects or the character herself. The typical workflow is as follows: * * Start Edit. * Set a delta key at a good frame just before the intersection. * Set a delta key at a good frame just after the intersection. * Edit the pose a the frame(s) where intersection occurs. * If the intersection has been removed, Confirm Edit. If not, set new delta keys until it has, or Undo Edit to remove the delta layer. === Feet === * Left: Affect the left foot. * Right: Affect the right foot. * Hips: Affect the characters hip (COM) bone. * Offset Toes: Ensure that the toe is below the ball of the foot at all keyframes. Primarily useful for rigs with a reverse foot setup as explained below. * Keep Feet Above Floor: If a mesh object (typically a plane) is selected, shift the keyframes to keep the affected feet above the plane. The plane does not necessarily lie in the XY plane; if the plane is tilted, the feet are kept on the plane's upper side. If no plane is selected, the feet are kept above the XY plane (z = 0). The IK feet are affected if the rig has and uses IK legs, otherwise the FK feet are kept above the floor. If two markers are selected, only the keyframes inbetween are shifted. In a rig with a reverse foot setup, such as the MHX rig, the foot can rotate around the toe, ball, and heel. The reverse foot and toe bones are completely fixed by the corresponding FK bones, but the IK effector can be placed arbitrarily, as long as it ends at the toe tip. The transfer tool uses this freedom to make the IK effector perfectly horizontal, provided that the toe is below the ball and heel. !IMAGE!Pictures/refoot.png!/IMAGE! To use this feature we must ensure that the toe is below the ball of the foot, which is done by the Offset Toes button. === Loop And Repeat === !LINK! -- Loop Animation!/LINK! Create a loop of the action between two selected time markers, by blending the keyframes in the beginning and end of the loop. This is useful e.g. to create walk and run cycles for games. For good results, the poses at the beginning and end of the selected region should be similar. * Blend Range: The number of keyframes used for blending. * Loop in place: Remove the X and Y components of the root bone's location. * Loop F-curves: Loop the animation. !LINK! -- Repeat Animation!/LINK! Repeat the action between two selected time markers. The actions should preferably be looped before it is repeated, to make the beginning and end match seamlessly. * Repeat Number: The number of repetitions. * Repeat F-curves: Repeat the animation. === Stitching === Create a new action by stitching two actions together seamlessly. * Update Action List: Update the first and second action drop-down lists. * First Action: The name of the first action. * First End Frame: Last frame of the first action * Set Current Action: Set the first action as the current action. * Second Action: The name of the second action. * Second Start Frame: First frame of the second action. * Set Current Action: Set the second action as the current action. * Action Target: Choose between creating a new action and prepending the second action. * Blend Range: The number of keyframes used for blending. Same parameter as in Loop Animations section. * Output Action Name: * Stitch Actions: Stitch the actions together. === MHBlenderTools: MakeWalk armatures === ==== Source Armature panel ==== MakeWalk transfers an animation from a source armature, defined in a bvh file, to a given target armature. It uses an intermediate standard rig described in!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. The bone map from the source armature to the target armature hence consists of two parts: * A map from the source rig to the standard rig. It is defined in the MakeWalk: Source Armature panel. * A map from the target rig to the standard rig. It is defined in the!LINK!http://makehuman.org/doc/node/makewalk_target_armature_panel.html -- MakeWalk: Target Armature panel!/LINK!. !IMAGE!Pictures/mws-010-panel.png!/IMAGE! When a new scene is opened, the panel consists of the single button Initialize Source Panel. Once this button has been pressed, the following content is available: !IMAGE!Pictures/mws-020-auto.png!/IMAGE! * Reinit Source Panel: Reinitialization. * Auto Source Rig: If this option is enabled, MakeWalk will try to identify the source rig automatically. It may happen that MakeWalk fails to identify the source rig automatically, but this is very unusual. If it should nevertheless happen, it is possible to define the bone map manually in analogy with !LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- how it is done for target rigs!/LINK!. * Source rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected source rig (if Auto Source Rig is disabled) or to Automatic. * Bones in the active source rig. ==== Target Armature panel ==== The second part of the mapping from source to target armatures is defined by the panel labelled MH Mocap: Target armature. It is the top-most of the mocap tool panels, and is closed by default. When a new scene is opened, the panel consists of the single button Initialize Target Panel. Once this button has been pressed, the following content is available: !IMAGE!Pictures/mwt-011-panel.png!/IMAGE! * Reinit Target Panel. Reinitialization. * Target rig. A list of bvh rigs recognized by the mocap tool. This either defines the expected Target rig (if Auto Target rig guessing is disabled), or is set to a matching rig (if automatic target rig identificiation is enabled). * Auto Target Rig. If this option is enabled, MakeWalk will try to identify the target rig automatically. However, automatic rig identification is not trivial for complex rigs, and it may fail. If so, the bone map may be specified manually, cf!LINK!http://makehuman.org/doc/node/defining_the_target_rig_manually.html -- Defining the Target Rig Manually!/LINK!. If the bone map is defined. The target rigs available by default correspond mostly to the rig presets that can be exported from MakeHuman * MHX. An advanced rig from MakeHuman alpha 8. * MH Alpha 7. The MHX rig from MakeHuman alpha 7. * Rigify. * Ignore Hidden Layers: Ignore bones on hidden layers during automatic rig identification. * Reverse Hip. Select this option if the armature has an reverse hip. It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. * Identify Target Rig: Identify the target rig, i.e. find out how bone names in the active armature correspond to the internal names. This step is performed automatically during retargeting, but the identification can also be done separately for debugging purposes. The bone map appears in the area called FK bones below. * Set T-pose. Pose the active armature in T-pose. * Save T-pose. Option used by the next button. * Save Target File. Save the current bone map as a .trg file. If the Save T-pose option is set, also save a json file defining the T-pose. * FK bones. The bone map. The picture below shows automatic rig identification of the Rigify meta-rig (Add > Armature > Advanced Human). !IMAGE!Pictures/mwt-020-metarig.png!/IMAGE! === MHBlenderTools: MakeWalk troubleshooting. === ==== What if retargeting fails? ==== === Errors and Corrective Actions === This document will describe common errors and corrective actions. It may happen that MakeWalk fails to retarget an animation to a given armature. In that case an error message is displayed. !IMAGE!Pictures/mwa-100-error.png!/IMAGE! The error message consists of the following: Mocap error Category Detailed error message A link to this page MakeWalk errors are grouped into the following categories: * Load Bvh File * Rename And Rescale * Identify Target Rig * Automatic Target Rig * Manual Target Rig * Identify Source Rig * Retarget * General Error Load Bvh File Rename And Rescale Identify Target Rig === Automatic Target Rig === The most common problem is probably that MakeWalk fails to identify the target rig automatically. There are several possible reasons for this: * The character is not oriented correctly. In the rest pose, the character should be standing with up being the positive Z axis and facing -Y. * The armature is complex with extra bones not corresponding to a standard biped rig. * The armature only has IK arms or legs. MakeWalk retargets animations to the FK limbs, so if no such bones exist, the program will not work. !IMAGE!Pictures/mwa-110-reverse-hip.png!/IMAGE! It is rather common that an armature has a reverse hip. In a normal hip setup, the armature root is the hip or pelvis bone, and the thighs and the rest of the spine are children of this bone. In a reverse hip setup, the first bone in the spine has been reversed. There is a separate root bone, and the two lowest bones in the spine are both children of thise root, whereas the thighs are children of the reversed hip. !IMAGE!Pictures/mwa-120-reversehip.png!/IMAGE! The advantage of such a setup is that the upper and lower body can be posed independently. However, MakeWalk failes to identify the bones, unless the Reverse Hip option has been enabled. If automatic bone identification still fails, bone mapping has to be made manually. How this is done is described in the next section. === Defining the Target Rig Manually === Internally, MakeWalk retargets animations to an armature with the following bone hierarchy. Here is a visual illustration of the bone hierarchy: !IMAGE!Pictures/mwa-010-armature.png!/IMAGE! In order to retarget to an armature with different bone names, we must define a map between the given bones and the internal names. By default, MakeWalk attempts to do this automatically. However, automatic bone mapping may easily be confused for non-trivial rigs. If this happens, one can define the bone map manually. A bone map for a target armature is defined by a .trg file located in the target_rigs folder under the makewalk directory. The folder already contains three files, for retargeting the MHX advanced rig, the MakeHuman, and Rigify. These rigs are too complicated to identify the bone map automatically, so MakeWalk recognizes these rigs and use the predefined bone map. Create a .trg file using an existing file as a template. E.g., a .trg file could look like this: Note that it is not necessary to define maps to all bones. Bone names must not contain spaces, since whitespace is used as a delimiter in the .trg file. If the bones in your armature do contain spaces, replace them by underscore ( _ ). MakeWalk treats space and underscore as equivalent, so this is not a problem, except for very strange naming convention. !IMAGE!Pictures/mwa-020-myrig.png!/IMAGE! Save the .trg file with the name my_rig.trg in the target_rigs folder and press the Reinit Target Panel button. My_Rig should now appear in the Target rig list. Select it. In the FK bones sections, the My_Rig bone names are now listed. Make sure that the Auto Target Rig option is deselected, to override automatic bone mapping. Finally go to the main panel and press Load And Retarget. The animation should now be loaded. === MHBlenderTools: MakeWalk utilities === ==== Utilities panel ==== This panel contains material that does not naturally fit into the other panels. !IMAGE!Pictures/mwu-010-panel.png!/IMAGE! === Default Settings === * Save Defaults: Save current settings as the default settings. * Load Defaults: Load the default settings from file. === Manage Actions === * Actions: A list of all actions in the scene, at the time when the Update Action List button was last pressed. * Filter: If selected, only actions belonging to the active character are included in the action list. When the mocap tool creates an action, the first four letters in the action name are taken from the rig name. * Update Action List: * Set Current Action: Set the action selected in the Actions list as the active action. * Delete Action: Permanently delete the action selected in the Actions list. The action must have zero users. It is quite cumbersome to permanently delete actions in Blender. The reason is that creating an action with hand animation takes much work, which should not be lost accidentally. The situation is different with mocap, where it is easy to fill up a blend file with many irrelevant actions. This button makes it easier to clean out such junk motions. * Delete Temporary Actions: Some tools create temporary actions, whose names start with a hash sign (#). Deletes all such actions. === Temporary properties === * Delete Temporary Properties. MakeWalk creates some properties for relevant posebones during retargeting. Pressing this button removes these properties. However, be aware that some of the tools in the Edit panel may fail if the temporrary properties are deleted. The temporary properties for the active posebone can be inspected in the N-panel. !IMAGE!Pictures/mwu-030-temp-props.png!/IMAGE! * McpBone: The name of this bone in the internal hierarchy. * McpParent: The parent of this bone in the internal hierarchy. * McpQuatW, McpQuatX, McpQuatY, McpQuatZ: The rotation of this bone in T-pose, represented as a quaternion. === T-pose === * Set T-pose: Set the current pose to T-pose. * Clear T-pose: Set the current pose to the default pose. * Load T-pose: Load a T-pose from a .json file to the active armature. * Save T-pose: Save the current pose as a .json file. === Rest Pose === * Current Pose => Rest Pose: Set the current pose to rest pose. === MHBlenderTools: MHX importer basic usage. === MHX (MakeHuman eXchange format) is a custom format used to transfer a rigged character from MakeHuman to Blender. Due to its tight integration with Blender's python API, it supports advanced features like constraints, drivers and properties that general-purpose formats like Collada or FBX do not support. ==== Export From MakeHuman ==== !IMAGE!Pictures/mx010-export.png!/IMAGE! After the character has been designed in MakeHuman, go to the Files > Export tab and select Blender exchange (mhx) as the Mesh format. Type the character's name in the box at the top and press export. An mhx file has been exported. ==== Import Into Blender ==== Once the mhx importer has been enabled, we can import the mhx file. Select File > Import > MakeHuman (.mhx). !IMAGE!Pictures/mx070-import.png!/IMAGE! In the file selector, navigate to the file that we just exported from MakeHuman, i.e. John Doe.mhx in the export directory. After a short while, the character appears in the viewport, ready for posing. !IMAGE!Pictures/mx080-import.png!/IMAGE! === MHBlenderTools: MHX default rigging === If pose/animate > skeleton is set to 'None' when the character is exported from MakeHuman in .MHX format, the character is equipped with the default MHX armature. This is a rather complex rig with quite a few features. The bones are grouped into bone layers. Bone layers can be turn on and off in the MHX Main panel that appears in the user interface pane (N-pane), which is found to the right of the viewport. N-pane visibility can be toggled on and off with N-key. The Root Layer !IMAGE!Pictures/mx210-root.png!/IMAGE! There are two bones on the Root layer: * master: the big bone located at the foot level. It is the ultimate parent of every other bone in the rig, and can be used to move the entire character, including ik effectors. * root: the wiggly bone located at the character's center of mass. It also moves the entire character, but IK effectors remain at a fix position. The Spine Layer !IMAGE!Pictures/mx220-spine.png!/IMAGE! The spine is an immedate child of the root bone. * spine: * spine-1: * chest: * chest-1 * neck * head On this layer the two clavicle bones are also found. They are children of chest-1 and also appear on the arm layers. The Head Layer !IMAGE!Pictures/mx230-head.png!/IMAGE! This layers contains the bones of the head (not the Neck and Head bones, however). * jaw: Jaw bone * tongue_base: Inner part of tongue. * tongue_mid: Middle part of tongue. * tongue_tip: Outer part of tongue. * eye.L: Left eye. * uplid.L: Left upper eyelid. * lolid.L: Left lower eyelid. * eye.R: Right eye. * uplid.R: Right upper eyelid. * lolid.R: Right lower eyelid. * gaze. Target that the left and right eyes are tracking. The FK Arm Layers !IMAGE!Pictures/mx240-fkarm.png!/IMAGE! The left forward kinematics (FK) arm layer consists of: * clavicle.L: Left clavicle. * deltoid.L Left deltoid muscle. * upper_arm.fk.L: Left FK upper arm (humerus). * forearm.fk.L: Left FK forearm. Y rotation is locked on this bone. To twist the forearm, rotate the hand bone instead. * hand.fk.L: Left FK hand. The bones on the right FK arm layer are analogous. Note that there are two shoulder bones: clavicle and deltoid. It is not trivial to pose the shoulder, and with two shoulder bones better deformation is possible. The drawback is that an additional bone must be posed. However, in the common case that the arm is well below shoulder level, the deltoid bone can often be ignored. The FK Leg Layers !IMAGE!Pictures/mx250-fkleg.png!/IMAGE! The left FK leg layer consists of: * thigh.fk.L: Left FK thigh. * shin.fk.L: Left FK shin. * foot.fk.L: Left FK foot. * toe.fk.L: Left FK toes. THe right FK layer is analogous. The Finger Layers !IMAGE!Pictures/mx260-fingers.png!/IMAGE! The long fingers on the Finger layers give a quick way to pose the fingers; the poses can be fine-tuned with the individual finger links on the Links layer. The bones on the left Finger layer are: * thumb.L: Left long thumb. * index.L: Left long index finger. * middle.L: Left long middle finger. * ring.L: Left long ring finger. * pinky.L: Left long pinky. The bones on the right Finger layer are analogous. Rotating a long finger around the local X will cause all finger links to curl (rotate around local X). Rotation around local Z only affects the first finger link. The Finger Link Layers !IMAGE!Pictures/mx270-links.png!/IMAGE! Each of the Finger Links layers contains fourteen bones; two for the thumb and three for each other finger. They are used to fine-tune the finger pose, once a rough pose is achieved with the long finger bones. The Palm Layers !IMAGE!Pictures/mx280-palm.png!/IMAGE! The left Palm layer contain the meta-carpal bones: * thumb.01.L: Parent of the left thumb bones. * palm_index.L: Parent of the left index finger bones. * palm_middle.L: Parent of the left middle finger bones. * palm_ring.L: Parent of the left ring finger bones. * palm_pinky.L: Parent of the left pinky bones. The bones on the right Palm layer are analogous. The IK Arm Layers !IMAGE!Pictures/mx300-ikarm.png!/IMAGE! The arms are controlled by FK by default, but inverse kinematics (IK) can also be used. To quickly switch between FK and IK, press the buttons labelled FK or IK in the MHX FK/IK Switch panel, which appears in the N-panel if an MHX armature is the active object. * clavicle.L: Left clavicle. Same bone as on FK layer. * deltoid.L: Left deltoid. Same bone as on FK layer. * hand.ik.L: Left hand IK effector. Positions and rotates the hand. Also controls forearm twist. * elbow.pt.ik.L: Left elbow pole target. Controls the location of the elbow, which lies in the plane spanned by the arm socket (head of upper arm), wrist (tail of forearm), and elbow pole target. * elbow.link.L: A rubberband that connects the elbow to the elbow pole target. This bone is merely a visual cue; has no effect and can not be selected. The bones on the right IK arm layer are analogous. The IK Leg Layers !IMAGE!Pictures/mx310-ikleg.png!/IMAGE! The legs are controlled by FK by default, but IK can also be used. To quickly switch between FK and IK, press the buttons labelled FK or IK in the MHX FK/IK Switch panel, which appears in the N-panel if an MHX armature is the active object. * foot.ik.L: Left hand IK effector. Positions and rotates the hand. * toe.rev..L: Left reverse toe. * foot.rev.L: Left reverse foot. * knee.pt.ik.L: Left knee pole target. Controls the location of the knee, which lies in the plane spanned by the leg socket (head of thigh), ankle (tail of shin), and knee pole target. * knee.link.L: A rubberband that connects the knee to the knee pole target. This bone is merely a visual cue; has no effect and can not be selected. * shin.ik.L: The foot bones and the pole target control the thigh and shin rotation, except for the twist (local Y rotation) of the shin, which is handle by this bone instead. The IK shin bone does not affect the bending of the shin, only the twisting. The bones on the right IK leg layer are analogous. !IMAGE!Pictures/mx320-revfoot2.png!/IMAGE! The IK leg has an reverse foot setup, which allows the foot to rotate around the toe, ball, and heel. * foot.ik.L: Rotate around heel. * toe.rev.L: Rotate around toe tip. * foot.rev.L: Rotate around ball. FK-IK Snapping In a rig with both FK and IK, it is useful to be able to switch between the two seamlessly. To this end, the MHX FK/IK Switch panel contains buttons to snap the IK to FK and vice versa, in such a way that the character's pose remains unchanged. !IMAGE!Pictures/mx330-fkik2.png!/IMAGE! To snap the IK bones to the FK pose, press the buttons * Snap L IK Arm * Snap R IK Arm * Snap L IK Leg * Snap R IK Leg respectively. Note that the FK buttons at the top of the panel change to IK. !IMAGE!Pictures/mx340-ikfk2.png!/IMAGE! To snap the FK bones to the IK pose, press the buttons * Snap L FK Arm * Snap R FK Arm * Snap L FK Leg * Snap R FK Leg respectively. Note that the IK buttons at the top of the panel change to FK. The Tweak layer !IMAGE!Pictures/mx360-tweak2.png!/IMAGE! This layer contains some rarely used bone that in some cases are useful to tweak a pose. * breast.L: Controls rotation of left breast. Useful mainly for female characters. * arm.socket.L: The left arm socket. Allows the left upper arm (FK and IK) to be moved away from the deltoid bone. * leg.socket.L: The left leg socket. Allows the left thigh (FK and IK) to be moved away from the hip. The right-side bones (with suffix .R) are defined analogously. !IMAGE!Pictures/mx370-markers2.png!/IMAGE! The Tweak layer also contains marker bones. They are used by MakeWalk to determine the location of the toe, ball and heel, so they can be moved up above floor level. Move these bones in Edit mode to fine-tune their locatation. The marker bones on the left side are: * toe.marker.L: Left toe marker. * ball.marker.L: Left ball marker. * heel.marker.L: Left heel marker. The marker bones on the right side are analogous. The MHX Control Panel The default behaviour of the MHX rig can be modified by changing some properties in this panel. !IMAGE!Pictures/mx410-gaze2.png!/IMAGE! * GazeFollowsHead: If 1.0, the gaze bone is parented to the head. If 0.0, the gaze bone remains fixed in space (it is parented to the master bone). * RotationLimits: If 0.0, all Limit Rotation constraint is ignored. If 1.0, they are honored. Default = 0.8. !IMAGE!Pictures/mx420-hinge2.png!/IMAGE! * ArmHinge, Left and Right: Determines whether the arm rotates when the shoulder does. * FingerControl, Left and Right: Determines whether the finger links are parented by the long fingers (the default), or if the long fingers are to be ignored. !IMAGE!Pictures/mx430-leghinge2.png!/IMAGE! * LegHinge, Left and Right: Determines whether the leg rotates when the hip does. !IMAGE!Pictures/mx440-legik2ankle2.png!/IMAGE! * LegIkToAnkle, Left and Right: If turned on, the reverse foot setup is disabled, and the ankle bones on the Extra layers become the effectors for the IK legs. === MHBlenderTools: MHX other rigging systems === By default (i.e., if Pose/Animate > Skeleton is set to 'None') a character is exported as an mhx file is rigged with the MHX rig, which is a rather complex rig with many options. Alternatively, the character can be rigged with a simpler and ligher armature by choosing an alternate Rig Preset under Pose/Animate > Skeleton. !IMAGE!Pictures/mx710-other-rig2.png!/IMAGE! To this end, select one of the rigs in the Pose/Animate > Skeleton tab. A skeleton is drawn. Export the character from MakeHuman as an mhx file. To reselect the default mhx rig, press None in the Pose/Animate > Skeleton tab. !IMAGE!Pictures/mx720-other-blender2.png!/IMAGE! Import the mhx file into Blender. Note that there are fewer bone layers available in the MHX Main panel. ==== Using the Rigify rig ==== As an alternative to the mhx rig, MakeHuman characters can also be rigged with the popular Rigify add-on by Nathan Vegdahl. Links to documentation about Rigify in general: !LINK!http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Rigging/Rigify -- Official Rigify documentation!/LINK! !LINK!http://blenderartists.org/forum/showthread.php?200371-Rigify-Auto-rigging-system-new-and-improved -- Blenderartist thread!/LINK! !IMAGE!Pictures/mx810-rigify-export2.png!/IMAGE! To use Rigify, the character must first be prepared in MakeHuman. Select the Export for Rigify checkbox in the Options group and export the file. This checkbox overrides any other rig selected under the Skeleton tab. !IMAGE!Pictures/mx820-rigify-enable2.png!/IMAGE! In Blender, enable the Rigify add-on. It is found in the Rigging category. Press Save User Settings to remember the choice. !IMAGE!Pictures/mx830-rigified2.png!/IMAGE! Import the mhx file as usual. John Doe is now rigged with Rigify and ready for use. !IMAGE!Pictures/mx840-norigify2.png!/IMAGE! If the Rigify add-on is not enabled, an intermediate rig is imported and an error message appears. If this happens, open a new Blender file, enable Rigify, and try again. Alternatively, you may select the armature and press the Rigify MHX Rig button that appears in the N-panel (after you have enabled the Rigify add-on, of course). Disclaimer: MakeHuman has no control of the Rigify add-on. Rigify support was tested with Blender 2.69. If the specification of Rigify changes in the future, mhx file exported for Rigify may cease to work. === MHBlenderTools: MHX Layers and masks === The mhx importer creates objects on the first four layers. !IMAGE!Pictures/mx900-layers2.png!/IMAGE! * * This layer contains the body, including hair, eyes, etc. * This layer contains the armature. * This layer contains any clothes. Empty if the character is nude. * This layer contains any proxy meshes. Empty if no proxy mesh was exported. Note that a proxy mesh does not replace the original human mesh, but is added as a separate object. If you only want to use the proxy mesh, the body can be deleted. However, the proxy mesh (perhaps slightly edited) has several uses apart from simply replacing the body, e.g. as a deflection surface for cloth simulation, or to speed up viewport performance when animating. It is therefore up to the user to decide which meshes to delete. !IMAGE!Pictures/mx920-unmasked2.png!/IMAGE! Vertices beneath clothes are hidden, to avoid ugly penetration issues. The picture above illustrates what may happen if skin under clothes is not hidden. !IMAGE!Pictures/mx910-mask2.png!/IMAGE! However, skin beneath clothes is not removed, only hidden by masks. This becomes evident if in edit mode, where the entire body is visible. To undress the character, deselect the clothes layer (layer 3), and disable all mask modifiers. Don't forget to disable the mask modifier for rendering as well. With the mask modifiers, it is possible to export a character from MakeHuman with several different outfits, and select the outfit and hidden body vertices in Blender. If you wish to delete the hidden vertices permanently, e.g. to improve performance or for export to some other application, apply the relevant mask modifiers. === MHBlenderTools: MakeClothes rigid fitting === The standard clothes fitting algorithm is suitable for flexible clothes, especially clothes that follow the body closely. However, is does not work well for rigid objects like shoes, Therefore, MakeClothes has a variant suitable for rigid shoes. Rigid fitting is used on a vertex group basis, so rigid and flexible fitting can be mixed in the same piece of clothing. Rigid fitting is used for every vertex group whose name starts with a '*'. Each such vertex group in the human must contain exactly three vertices, that determine the triangle used for fitting in this group. !IMAGE!Pictures/rf-100-orig.png!/IMAGE! The use of rigid vertex groups is best explained by an example. Consider a pair of shoes, which is a rigid object. We used the standard MakeClothes settings and an adult human with the original shoe to the left. Then the mhclo file was loaded onto a baby, with the result to the right. The shoe is recognizable but it has been deformed in an undesirable way. However, even though the quality of the fitting is poor, make sure to save the mhclo file, because we will need it at the end of this tutorial. !IMAGE!Pictures/rf-110-projection.png!/IMAGE! Each clothing vertex v is associated with a triangle t in the human mesh, i.e. three human vertices v1, v2, v3. Letrdenote the location of v andr1,r2,r3the locations of the corners of the triangle. Further, let d be the perpendicular distance from the clothes vertex to the plane spanned by the triangle. MakeClothes assigns three weights w1, w2, w3, such that r= w1r1+ w2r2+ w3r3+d, where the sum of weights w1+ w2+ w3= 1. When the clothing is loaded onto a different character, the new location becomes r'= w1r'1+ w2r'2+ w3r'3+d', wherer'1,r'2,r'3are the locations of the three human vertices in the new character, and d' = Sd= (sxdx, sydy, szdz) is obtained from the original offsetdby inhomogeneous global scaling with the diagonal scale matrix S = diag(sx, sy, sz). The important observation is that the quality of the fitting depends crucially on the chosen triangle, i.e. the triple of human vertices the determines the clothes vertex location. The standard choice is to choose the human triangle closest to to clothing vertex. In rigid fitting the triangle is the same for all vertices, and is defined by the tree vertices in the vertex group. !IMAGE!Pictures/rf-120-vgroups.png!/IMAGE! Here we see the vertex groups used to fit the left shoe. The standard vertex group Left consists of all vertices close to the left shoe, in the tights helper. On the other hand, the rigid vertex group *Left only contains three vertices that define the single triangle used for all clothes vertices in this group. !IMAGE!Pictures/rf-130-triangles.png!/IMAGE! The next illustration shows the corresponding triangles used for fitting. The Left group uses many triangles obtained by triangulating the corresponding faces. Different shoe vertices are associated with triangles that are transformed differently, and the rigid character of the shoe is lost. The *Left group only has one single triangle, with corners at the three vertices in the vertex group. The same triangle is used by all left shoe vertices. !IMAGE!Pictures/rf-140-rename-vgroups.png!/IMAGE! Once the human vertex groups have been defined, we proceed with clothes-making. Rename the shoe vertex groups to *Left and *Right, to make the shoes use rigid fitting. Recall that the human can have several overlapping vertex groups, but in a piece of clothing each vertex must belong to exactly one group. !IMAGE!Pictures/rf-150-offset-scaling.png!/IMAGE! Next we open the Offset Scaling section and select Foot as the body part. In flexible fitting, the offsets are usually very small, and selecting the correct body part is not so important. In contrast, this step is very important in rigid fitting, because many vertices are far away from their triangles and the offsets must be scaled correctly. Press Examing Boundary for a visual inspection of which vertices define the global scale matrix.. !IMAGE!Pictures/rf-160-baby-shoes.png!/IMAGE! This picture shows the shoe loaded on a baby, using flexible fitting (blue) and rigid fitting (red). Rigid fitting clearly maintains the shape of the shoe much better. However, one problem remains: bone weighting. Start up MakeHuman and load the shoes under the Geometries > Clothes tab. Export the character with a rig in one of the formats that allows that, e.g. mhx, and import the character into Blender. Now try to pose the feet. As we see in the picture below, the shoe does not follow the foot but is squashed or stretched in strange ways. !IMAGE!Pictures/rf-170-bad-deformation.png!/IMAGE! The reason is that rigid fitting affects the bone weights as well as the vertex locations. The bone weights are interpolated between the three corners of the triangle, rather than using the information from the entire foot. To correct this we need to use two different associations between clothes and human vertices: rigid fitting for vertex locations, but flexible fitting for bone weights. Fortunately, MakeHuman can handle this situation, although there is currently no elegant interface for it in MakeClothes. In a text editor, open the mhclo file obtained by standard fitting in the beginning of this tutotial (this is why you needed to save it), and copy everything after the line verts 0 to the end of the new mhclo file obtained by rigid fitting. Before the copied section, insert the line weighting_verts Export the shoes again from MakeHuman and import into Blender. The shoes should now both maintain their rigid shape and deform correctly. !IMAGE!Pictures/rf-190-good-deformation.png!/IMAGE! Due to an unfortunate behavior in MakeHuman, it is possible that the updated mhclo file is not loaded after it has replaced the old one. This is because MakeHuman automatically compiles mhclo and obj files when loaded, so they can be loaded faster next time. Although this behavior is convenient for ordinary users, it is very confusing and frustrating for clothes makers. If MakeHuman insists on loading old versions of your clothes, you may need to delete the compiled files (*.mhpxy and *.npz), or restart MakeHuman, or both. After the compiled files are gone, the updated clothes should load without problems. !IMAGE!Pictures/rf-180-compiled-files.png!/IMAGE! == Developers' note == Some notes about how to obtain the source code, modify it and share it. === Makehuman Plugin System === ==== Plugins ==== Makehuman has a simple plugin framework which makes it easy to add and remove features. At startup, MakeHuman now looks for .py files in the plugins folder which are not starting with an underscore (which makes it easier to disable unwanted plugins). It loads them one by one and calls the load entry point passing a reference to the application. The plugin can use this reference to add the necessary GUI widgets or code to the application. The rules for plugins are very simple: * A plugin is a .py file in the plugins folder with a load entry point. * A plugin only imports core files. The reason a plugin cannot import other plugins is that it would make it difficult to know which files belong to which plugin. We still need to define a convention for shared files beyond the core MakeHuman files. To get started look at example.py or any of the other plugins to see how you can create your own feature in MakeHuman. ==== GUI ==== The main layout is a two level tab control. The tabs at the top represent categories, like files. modelling, geometries, materials, etc. The ones at the bottom are the tasks in the current category and refine the more broad category in face, torso, gender, saving, loading, exporting etc. So when creating your plugin, the first thought should be “In which category does it belong?”. From experience we know that it can be a though question to answer. Sometimes the only answer is adding a new category. This is what we initially did for measurement for example Next you probably want your own task to implement your feature. While it’s possible to attach functionality to an instance of gui3d.Task, it’s often easier to derive your own class. When you create an instance of your class, you pass the parent of your task, which can either be an existing category or the new one which you added. In your derived task you will then add the necessary controls to let the user interact. A good place to see how to use the different controls is the example plugin. You will see that even if you don’t add any controls, the model is already visible. This is because the model is attached to the root of the GUI tree. In the onShow event of your task you might want to reset the camera position, like we do in the save task, or hide the model, like we do in the load task. Just don’t forget to reset the state when your task gets hidden in onHide. ==== Undo-redo ==== It is important that every modification is undoable, since just one undo able modification would leave the user without the possibility to undo anything. So it’s crucial that if you write a plugin which modifies the model, you also make undo work. The Application class has several methods to work with actions. An action is a class with two methods, do and undo. If the action itself does the modification you can use app.do to add it to the undo stack. If you did the modification yourself already during user interaction, you can add the action using app.did. The application won’t call the do method of the action in that case. If you want to make your own undoredo buttons, you can use app.undo and app.redo. To illustrate, here is the action we use to change the hair color: The postAction is a handy way to specify a method to keep your GUI in sync with the changes. ==== Asynchronous Calls and Animation ==== When doing lengthy operations it is important not to block the GUI from redrawing. Since everything runs in one thread, it is easy to block the event loop in your plugin. There are 4 ways to avoid this, depending on the need. If no user interaction is needed, a progressbar can be used. A progressbar uses the redrawNow() method of the application. This redraws the screen outside the event loop. Instead of creating your own progressbar, it is advised to use the progress method, which uses the global progressbar. Calling progress with a value greater than zero shows the progressbar, a value of zero hides it. If user interaction is desired during the operation, either asynchronous calls, a timer or a thread can be used. Asynchronous calls are used when a lengthy operation can be split in several units. It is used for example in the startup procedure as well as for the plugin loading loop. The mh.callAsync(method) queues the calling of method in the event loop, so it will be called when the event gets processed. In case different methods need to be called after each other, as in the startup procedure, callAsync is used to call the next method. In case of the plugin loading loop, it calls the same method until it is done. This is not to be used for animations, as it takes very little time between calling callAsync and the event loop calling the method. Calling time.sleep(dt) to avoid this should not be done as it blocks the main thread. For animations use timers instead. An example of this can be found in the BvhPlayer plugin. The method mh.addTimer(interval, method) adds a timer which calls the given method every interval milliseconds. It returns a value to be used by removeTimer to stop the timer. If a lengthy operation includes blocking on sockets or pipes, it is advised to use a python thread. However this has been shown to be problematic on Linux. To get around the problems on linux you should not access any makehuman structures from within your thread, but use mh.callAsync to call the methods from the main thread. See the clock plugin example for example code on how to use threads correctly. ==== A template for plugins ==== Looking in the makehuman source folder, in the "plugin" directory, you will notice a file called "7_example.py". This is an "Hello world" plugin. It includes all main controls and some nice example of mesh manipulation. It's designed to be used as template of new plugin. To see how it works, you need to enable it in the Preferences->Setting. Then it will be located at Utilities-->Example. !IMAGE!Pictures/UtilitiesExampleTab3.png!/IMAGE! ==== Example Controls ==== !IMAGE!Pictures/UtilitiesExampleControls.png!/IMAGE! === OpenGL Notes === Most of the 3D mesh handling functionality is delivered using OpenGL embedded within the C application code. OpenGL is a 3D graphics library that enables a 3D world to be defined, with a camera, objects, lights, textures etc. It then enables that 3D world to be visualised as a 2D representation that can be displayed on a computer screen and provides functions to enable an application (in response to user input) to navigate around the scene. ==== Basics ==== OpenGL takes a 3D scene and draws it into a 2D viewing area on your screen known as the viewport. OpenGL can project the scene onto the viewport in a variety of different ways, but the most common are: * Perspective projection, as you would get if you could place a camera in the scene * Orthographic projection, as a draftsman may contstruct technical drawings such as plans and elevations. MakeHuman only uses Perspective projection. ==== Projection Transformation ==== You tell OpenGL how to project 3D objects onto the 2D viewport by defining a projection transformation, which indicates whether you wish to use perspective or orthographic projection (or an alternative projection pattern) and specifies other projection settings. This can be imagined as being comparable to specifying the characteristics of a camera (field of view, aspect ratio etc.) where an orthographic projection is equivalent to a camera at an infinite distance. The main difference being that with OpenGL you can change the settings between drawing different objects, which is a bit like taking a photo, changing the lens and moving the camera, then taking another photo without winding the film on. MakeHuman sets a perspective projection using the function gluPerspective(fovAngle,aspectRatio,near,far) where: * fovAngle: is the vertical field of view angle (45 degrees) * aspectRatio: is the viewport width divided by the viewport height which, by default, is 800/600 (4/3) * near: is the distance to the centre of the viewing plane (0.1) * far: is the distance to the centre of the rear clippling plane (100) ==== Modelview Transformation ==== For OpenGL to know what to display in the viewport it also needs to know where the camera is relative to the 3D model. For this you need to define a modelview which defines the position and orientation of the camera and the position and orientation of objects that go to make up the model inside a virtual 3D world. You do this by moving through and around the 3D world and by creating objects relative to your current position. OpenGL keeps track of your current position and orientation in the 3D world by recording the modelview transformation. Both the projection transformation and the modelview transformation are stored internally in 4x4 transformation matrices. You can modify these matrices by calling functions that apply direct transformations (translations and rotations) or by calling functions that calculate transformations (e.g. the gluPerspective function outlined above). To apply transformations you need to first make one of these matrices the current matrix. Subsequent transformations are applied cumulatively to the current matrix. The glMatrixMode function is used to set the current matrix mode: * glMatrixMode(GL_PROJECTION) makes the projection transformation the current matrix so that projection settings can be applied, such as the field of View angle and Aspect Ratio. * glMatrixMode(GL_MODELVIEW) makes the modelview transformation matrix the current matrix so that subsequent translations and rotations move the current location through the 3D world. ==== Resetting a transformation matrix ==== Matrix transformations that you apply are applied cumulatively. It is therefore often necessary to reset the matrix to its default ‘no transformation’ state so that you can apply a fresh set of transformations. OpenGL uses the transformation and modelview matrices to transform coordinates by performing a matrix multiplication. If you multiply by an identity matrix then the result is the same as the thing you started with, so to reset one of these matrices to an initial state where the transformation has no effect you can simply load the identity matrix using the function glLoadIdentity(). This loads the identity matrix into whichever transformation matrix is currently active, resetting it to the default ‘no transformation’ state. ==== Coordinates ==== OpenGL world space coordinates are unitless, so 2 units can represent milimeters, inches or light years. Interpretation of world space coordinates is up to the application. OpenGL uses a right handed coordinate system, so, if you are looking at the origin with the +X axis stretching away to the right and the +Y axis pointing straight up, the +Z axis will be heading out of the screen straight towards you and the -Z axis will be dissapearing away from you into the distance. MakeHuman uses the default OpenGL modelview camera settings which are equivalent to invoking gluLookAt(0,0,0, 0,0,-1, 0,1,0). This places the camera at the origin, looking straight into the model along the -Z axis with the +Y axis pointing straight up. This means that a 2 unit wide and 2 unit high object centred at <0,0,-1> will roughly fill the viewport, as will a 4x4 object at twice the distance from the viewpoint. ==== Drawing objects ==== MakeHuman contains multiple objects. The Humanoid object is the main object, but it is surrounded by a set of control objects. Each object is constructed using triangular faces. The position and orientation of each face is defined relative to the object of which it is a part. The positions and orientations of the vertices and normals of the faces are defined relative to the face they’re on. The sequence in which face vertices are defined is significant in OpenGL. If the face is viewed from the front, the sequence of points runs counter clockwise. If the face is viewed from the back the points run clockwise. Faces viewed from behind may be invisible or may have a different color/texture defined to the front face. This order is also called the "winding order" of vertices, and is used by MakeHuman to calculate the normal of each face. If the winding order is reversed, the normal will be flipped. The glPushMatrix and glPopMatrix functions can be used to store away a copy of a matrix that can subsequently restored. MakeHuman uses this before and after drawing each object to store a copy of the modelview matrix and restore it. === Directory structure and core modules === Overview There are 10 main source folders with the main MakeHuman folder in the SVN repository: * apps * core * data * docs * icons * lib * licences * plugin * shared Of these, two folders: (licenses and docs) are associated with the general housekeeping and installation aspects of MakeHuman. Details of the housekeeping folders will be summarized, where relevant, elsewhere in the documentation. The remaining folder are discussed below. Directory Structure and the Build System During the pyinstaller build process, only files in the makehuman/data/ directory are included as data files, which means that any other data files will be skipped, causing file not found errors. Thus, the developer should place all data files under the data/ folder. The idea is to be able to cleanly identify what is data to be loaded at run time.and what is code that can be compiled at build time. One exception here is target (data) files that can optionally be precompiled to binary files at build time even though their binaries will reside in the data/ directory. The rational for this is that target files are static data core assets and should therefore naturally reside in makehuman/data/, but by compiling target files at build time, the size of the build distribution can be reduced and program startup times can be minimized The files in makehuman/plugins/ form a second exception to data is "loaded at runtime" and code is "comiled at build time". Files in the makehuman/plugins/ folder are kept as a "side effect" of the fact that the makehuman/plugins/ path is included as data. It is included as data to make it possible to load plugins at runtime by inspecting the folder. Plugins are compiled as well, though. This does not mean that data may be stored in makehuman/plugins/ as this practice threatens logical organization of code and data, and it is not guaranteed that this will keep working in the future. Plugins should never be used as imported modules in other plugins or, even worse, in a core module. Currently, the core plugins of MakeHuman all start with a digit (e.g., import 9_export_mhx). This is done intentionally to prevent their improper import into other modules in the program because imports of a module starting with a digit will produce a syntax error. Core plugins that require data, for example those related to .mhx export, should make use of a subfolder in the makehuman/data/ path (makehuman/data/mhx/). Third-party plugins might have slightly greater lattitude about including data than core assets, but the clean separation of code and data is strongly encouraged. Therefore, third-party plugin developers should place data in makehuman/plugins/pluginName/data to make it easily identifiable. makehuman/data/ folder Most operating systems set aside separate storage space for code and data, and programs can generally not write data to their own directory structure. In addition, most OS support the notion of multiuser login, and support separate writable data areas for each user to customize. MakeHuman includes some "fixed data assets" that are intrinsic to the program. These data assets are save in the programs data folder within the program itself. However, MakeHuman also makes provision for third-party and user developed assets like additional clothes, additional hairstyles, etc. These latter assets are not saved in the program area but rather are save in user writable areas under the path userhome/makehuman/. For example, on Windows 7 systems this would be "Docuements/makehuman". In populating asset lists, the library holdings are generated based on the fact that syspath/data/itemtype and userhome/data/itemtype can coexist. Themakehuman/data/ folderdoes not contain any codeper se. As its name implies this folder contains the basic data resources that ship with MakeHuman. Often, during the development and building of MakeHuman, a given resource may exist in multiple formats. Many if not most resources initially exist as “text-based” files which are stored in the data directory with an appropriate extension (see section of file extensions). When MakeHuman is built for distribution on supported platforms, these text-based data resources are compressed into .npy format to produce a smaller and more rapidly loading distribution package. Typically, the original text-based data files do not ship with standard, downloadable installation builds but instead, the corresponding compressed versions are distributed. The data folder contains many subfolders which correspond to unique data assets. The details of these assets will not be discussed here, but the reader can get a general idea of asset types just by reviewing the folder names. 3dobjs, animations, bvhs, expressions, eyebrows, eyes, genitals, hair, icons, languages, litspheres, materials, mhx, poses, povray, proxymeshes, rigs, scenes, shaders, skins, targets, textures, themes, uvs, vertesgroups, visemes. Many of these data subfolders have subfolders themselves, but generally, this organization is easily discovered just by looking. Four of the data subfolders (eyes, hair, and clothes) are directed at important geometry assets of the MakeHuman model. MakeHuman supplies a special tool that lets developers or even end-users design additional assets using the 3D modeling program Blender. The name for this tool isMakeClotheseven though it supports the development of the other geometries as well. ==== /makehuman/apps/ ==== * catmull_clark_subdivision.py- an implementation of the!LINK!http://en.wikipedia.org/wiki/Catmull%E2%80%93Clark_subdivision_surface -- catmull clark subdivision algorithm.!/LINK! * devtests.py- testing and development use only, and can safely be ignored. * human.py- contains the Human class, which is the core data structure for MakeHuman model. * humanmodifier.py- contains the functions and classes that link the GUI sliders to their respective effects on the MakeHuman mesh. * metadataengine.py- implements algorithms to handle MakeHuman metadata tags within large files. It makes it possible to quickly and easily associate descriptive adjectives (tags) such as "eye" or "brown" with the complete file path to an object that has these characteristics. * mh2proxy.py- (unknown) * posemode.py- contains classes and functions relevant to entering and exiting posemode, and altering a figure's pose. Changing the pose of a figure will deform the mesh and require the vertex warps to be reset. * warpmodifier.py- contains classes and functions to handle the source and target of a warp. * which.py- checks to see whether or not a program exists (needed for the GUI controls). ==== /makehuman/core/ ==== * algos3d.py- contains algorithms used to perform high-level 3D transformations on the 3D mesh that is used to represent the human figure in the MakeHuman application. * aljabr.py- contains the most common 3D algebraic operations used in MakeHuman including vector, matrix, quaternion, and various other operations. * animation3d.py- contains functions and classes to animate a wide range of objects. Includes support for rotation, scaling, translation, camera movement, and variety of interpolation methods. * compat.py- (Unknown) * download.py- contains classes and functions to download media from the web and import it into MakeHuman. * events3d.py- contains classes to allow an object to handle events resulting from keyboard or mouse input, window resizing, and changes to the human model with MakeHuman. * export.py- (Not fully implemented) contains classes to export the MakeHuman model. * files3d.py- contains functions to convert other 3D file formats to and from the internal format used by MakeHuman. * geometry3d.py- contains classes for commonly used 2D and 3d objects such as rectangles, cubes, and flat meshes. * gui3d.py- contains classes defined to implement widgets that provide utility functions to the graphical user interface. * mhmain.py- contains the operations and event handlers that provide the core functionality of MakeHuman. * module3d.py- contains classes and functions to handle the appearance and behavior of 3D objects such as shading, texturing, visibility, transparency, and creating groups of faces. * selection3d.py- contains classes and functions that allow users to select elements within a 3D scene by clicking on them with the mouse using a technique called "!LINK!http://www.opengl.org/archives/resources/faq/technical/selection.htm -- Selection Using Unique Color ID's!/LINK!" * textures3d.py- contains functions to perform standard proccesses on bitmaps and translate UV coordinates to a pixel index in a bitmap. * transformations.py- A library for calculating 4x4 matrices for translating, rotating, reflecting, scaling, shearing, projecting, orthogonalizing, and superimposing arrays of 3D homogeneous coordinates as well as for converting between rotation matrices, Euler angles, and quaternions. Also includes an Arcball control object and functions to decompose transformation matrices. * warp.py- contains classes and functions to warp vertex locations from a source character to a target character. This makes it possible to correctly combine several morphs that affect overlapping regions of the body. ==== /makehuman/lib/ ==== * camera.py -handles camera events such as changing focus, camera mode, and field of view. * core.py -sets default global variables * debugdump.py -handles creating a debug text file in the user's home directory and writing relevant debug information to that file. * filechooser.py- a Qt based filechooser widget that allows the user to preview and select files as well as sort them by name, creation date, modification date, and size. * getpath.py- Utility module for finding the user's home path. * glmodule.py- contains classes and functions to render 3D objects with openGL in both draw mode and pick mode. * gui.py -alias from gui.py to qtgui.py * image.py- handles flipping and resizing images as well as converting between RGB, ARGB, and greyscale. * imageqt.py- handles loading and saving RGB and ARGB images. * inifile.py- contains functions for formatting and parsing .ini files. * language.py- handles language file loading and translation. * log.py- extends the functionality of Python's logging module. The logging module can be used to create log files of events for debugging, or to display information or warnings within MakeHuman. It is used instead of print statements. * matrix.py- uses the NumPy package to define standard matrix operations. * mh.py- Python compatibility layer that replaces the old C functions of MakeHuman. * object3d.py- defines the object3d class * profiler.py- defines functions to handle profiling (how long various parts of the program executed). === File formats and extensions === This section briefly reviews the file accessed or manipulated within MakeHuman. An attempt will be made to explain the function of each file format and where in MakeHuman’s modules it is used. Or external formats links will be provided to more detailed descriptions. Where it can help the developer better understand the overall organization of MakeHuman source code, some information on the module group or modules interaction with the various formats will be provided. This section Is intended to be used with the previous section on directories (folders) to develop an overview of MakeHuman code structure. This structural understanding is essential during the debugging process and is essential to expanding the programs functionality in structurally sound ways. ==== .obj files ==== This extension designates Lightwave object files. These OBJ files store mesh information and metadata needed for rendering in text-readable format. It was originally developed for the Lightwave 3D graphics program, but this file format is now broadly supported by many, if not most, 3D programs. Internally, MakeHuman uses OBJ files (or formats directly based on OBJ files) for the canonical storage of its assets. Many of MakeHuman’s development utilities store newly generated assets in formats related to the Lightwave OBJ specification. Examples of assets canonically stored in Lightwave OBJ format include the base human, and auxiliary geometry assets like eyes, hair, and clothes. Each OBJ file has a record specifying the object’s name and records specifying one or more mesh objects. Mesh objects, in turn, are composed of record groups specifying: points or vertices (v), vertex normal (vn), faces (f), and vertex textures (vt). In MakeHuman and most general purpose 3D programs (e.g., Blender) OBJ files are exported with an accompanying Wavefront material file having the .mtl extension. These MTL files provide the detailed material attributes necessary to get photorealistic rendering of Wavefront objects. A more complete specification of Wavefront object format can be found at:!LINK!http://www.martinreddy.net/gfx/3d/OBJ.spec -- http://www.martinreddy.net/gfx/3d/OBJ.spec!/LINK! OBJ files and MTL files have a direct internal analog in MakeHuman in the form of the object class, Object3D. This class, along with its properties and methods, is defined in the object3D.py module(libs folder). Object3D objects are central to the internal workings of MakeHuman. The resemblance of Object3D objects to OBJ files is not coincidental. Many of the core mesh assets in MakeHuman are developed in the open-source project, Blender, and moved to MakeHuman internals using OBJ format. In fact, MakeHuman maintains a separate product [MHTools] designed to support development of new core internal assets ==== .mhpxy files ==== This extension designates compressed binary proxies and clothes. ==== .mtl files ==== This extension designates a Wavefront material file. Wavefront MTL files are referenced from within Wavefront OBJ files to specify the materials used in rendering. More complete information on Wavefront material files is available here:!LINK!http://paulbourke.net/dataformats/mtl/ -- http://paulbourke.net/dataformats/mtl/!/LINK! MakeHuman’s use of MTL file has been limited, but with the increased support for POV rendering, more modules may access and utilize MTL files. Currently, MTL-related data and files is developmental. Thedata foldercontains a cube.obj (3dobj) and a plane.obj (mitsuba folder) ostensibly associated with materials. ==== .npz files ==== This extension designates compressed binary asset files in MakeHuman [think npz = numPy zip files]. Among the most important assets stored with this extension is target vertex information. These target data determine the motion of each MakeHuman vertices (relative to landmark vertices?) as sliders are moved. Thefiles3D.pymodule (core folder) tests for verifies existence of OS dependent locations of binary mesh files. The primary purpose of thefiles3D.pymodule is to transpose imported 3D data into a standard internal format for each of the 3D file formats supported by the MakeHuman import. Each importer function is written to return the 3d data in a standard format as a Python list: [verts, vertsSharedFaces, vertsUV, faceGroups, faceGroupsNames] Thetargets.pymodule (lib folder) is where system assets stored with the NPZ extension are identified, decompressed, and turned into memory resident structured objects for use by MakeHuman. This Code related to NPZ files can also be found inalgos3d.pymodule (core folder). This module has been part of MakeHuman for a long time, and is used for morphing related operations. It works with loaded binary translation vectors and applies those translations to morphing targets. It may have some legacy capability to work directly with text-based .target files. Thecompile_models.pymodule (lib folder) takes all object mesh files (.obj) and compiles them into binary compressed files (NPZ). Similarly, thecompile_targets.pymodule (lib folder) compiles target files (.target) into binary compressed (NPZ) files. The latter module is referenced by Benjamin Lau inMakeHuman.specfile, likely for build purposes. Important concept. The root folder of MakeHuman contains a batch file calledcleanpz.bat(for Windows) and a corresponding shell script file calledcleanpz.sh(for Linux) whose function is to delete NPZ files between SVN builds. This “garbage collection” assures that each build is not working with out-of-date assets. It also reminds the developer that most of the canonical assets are initially constructed in text readable format. Developers write appropriate constructors to recompile NPZ files during the MakeHuman startup sequence when missing. For distribution versions of MakeHuman, pre-compiled assets in the form of NPZ files are distributed as stable assets. When start up code confirms their existence , no recompile is done, producing a better start-up experience for the user. This design greatly increases boot and runtime performance for stable distributions without hampering rapid testing of SVN versions in interpretative mode. ==== .thumb files ==== This extension designates thumbnail (image preview) files in MakeHuman. Underneath, they are actually images constructed in the .png file format. Thus, they can be edited by standard image editors like GIMP or displayed by most web browsers. The MakeHuman Save Tab code automatically generates a companion .thumb file each time it saves a .mhm file. The .thumb generation is currently done by capturing a rectangular in the center of the viewport window. The MakeHuman Load Tab code uses .thumb images to provide previews of saved models. The format for .thumb is defined inimage_qt.pymodule (GUI folder). Load and Save use or generation occur inguiload.pyandguisave.pymodules, respectively (lib folder). Numerous plugin modules reference .thumb files (plugins folder) including:2_posing_expression.py,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,3_libraries_material_chooser.py,3_libraries_polygon_hair_chooser.py,3_libraries_posing_chooser.py,3_libraries_proxy_chooser.py, 4_rendering_scene.py,7_material_editor.py, ==== .lmk files ==== This MH internal extension designates landmark files. [might be renamed .mhlmk for naming standard reasons.] There is one set of landmarks for the model body (and a second set of landmarks for the model head (data | landmarks folder). These LMK files are written in text readable format. Each line has a single integer which specifies a landmark vertex in the model geometry. Landmark vertices are used for relative (local) spatial reference during model morphing. Landmark files are used bywarpmodifier.py(apps folder) andwarp.py(utils | tools | warptarget folder).The landmarks in these files are used as references during the complex process of reshaping the human. ==== .mhclo files ==== This MH internal extension designates MakeHuman clothes files. These files define clothing vertexes and remove vertexes from the model to allow fitting of the model without skin showing through. They are created using the MakeHuman Blender toolset, specifically the MakeClothes tool. A special empty MakeHuman clothes meta-file namedclear.mhclois is used to restore the default UV map that comes with the system. In the lib folder, thefilechooser.pymodule has aMhcloFileLoader.Refresh()method to clear materials when the refresh button is clicked. In the plugins folder,3_libraries_clothes_chooser.py,3_libraries_eye_chooser.py,and 3_libraries_polygon_hair_chooser.pyall access MHCLO files, but as of this writing, there are some file handling issues related to proxy clothes that means some of this code is commented out. In the shared/export_utils folder, config.py accesses acage.mhclofile. In the tools folder, the tool ‘MakeClothes’ accessws MHCLO files in both the makeclothes.pyandmaterial.pymodules. Similarly, the tool ‘MakeTarget‘ accesses MHCLO files in several of its modules:_init_.py, convert.py,import_obj.py,mt.py, andsettings.py. Finally, two experimental tools in the utils folder, themakeface.pyandhelpers.pymodules access MCHO files. ==== .mhmat files ==== This extension designates MakeHuman material files. Material files are text-readable files that share their syntax structure with Lightwave OBJ and MTL files. In the app module group,human.pyapplies a default material andmh2proxy.pyhandles materials for proxies and may do some special material handling for MHX Blender export files. In the data folder, the MHCLO files for clothes, eyes, and hair each references an MHMAT files. In the plugins folder,7_material_editor.pyloads, edits, and saves MHMAT files. In the shared folder,material.pyparses MHMAT files and sets material properties. In the tools folder, there is another (independent)material.pymodule for the MakeClothes tool that writes materials to the output file while using that tool within Blender. === Description of the file format === The entries inside a .mhmat file are of the form: Comments can be included in c-style line comment format, like or in python-style line comment format, like The properties of a makehuman material are numerous so that they can cover the most common needs of exporters and rendering engines, and may vary among the following. name- The internal name of the material. Colors- Their value can be in R G B format, like:colorProperty R G B,where R, G, B are floating point numbers between 0 and 1. They control the color of various material properties and effects. To adjust the intensity of an effect, you can simply edit its color value. ambientColor -The ambient component of the material, which is usually added on the final color regardless of the surrounding lights. diffuseColor -The diffuse component of the material, which reacts to each light's relative position. specularColor -The color of the specular shine that is caused by the reflection of a light source on the material. emissiveColor- The color of the light that the material seems to emit like if it's a glowing light source. shininess- The sharpness of the shine spots created by the reflection of a light source on the material, which is how glossy its surface is. ==== .mhuv files ==== This MH internal extension designates UV map files in MakeHuman. These text-readable files based on Lightwave OBJ syntax. They contain one or two lines of metadata and alternative UV data for the texture object to be applied to the model. There does not currently appear to be a development tool for creating UV map files. They can be created by creating and saving an OBJ file and then renaming it. However, files created in this manner should not be considered fit for the SVN or website because they contain way too much redundant information. The OBJ files created in this manner not only contain the alternate UV set but also contain all vertices of the original mesh. ==== .mhp files ==== This MH internal extension designates pose files. These files are used to store coordinates for the run and walk poses on the pose tab. The dance1 pose appears to be implemented as a pose file, but it also includes some additional .target files. The dance1 pose is also associated wih a .bvh file whereas run and walk are not. In A8 development there have been issues with the dance1 file behaving less well than run and walk. Hopefully, these will be long gone during subsequent development. ==== .mht files ==== ==== This MH internal extension designates a theme (GUI color scheme) for the GUI as rendered by the pyQt library. ==== ==== .target files ==== This MH internal extension [which lacks the mh… prefix] specifies final extreme positions that can be achieved when moving the interface sliders in one direction or the other. By definition sliders have a value of zero on the left end and 1.0 on the right end, but there is a software flag to reverse this behavior as desired. With scripting it may be possible to exceed slider extremes, but this is currently undocumented and should not be built into production code. There is one TARGET file for each extreme of each movement. These files are hand-built by MakeHuman artist-developers, and they are the engine of the programs utility. Typically, rightward movement of a slider should increase size, and leftward movement of a slider should decrease size. When ‘left’ and ‘right’ are used as asset names, they should refer to the left and right body part on the model, regardless of the model’s orientation in the viewport. When slider movement involves asymmetrical change in the x, y, and z direction, it should be programmed so that the sliders operate naturally using the default viewport view for that slider. For example, left movement of the slider need not cause deformation toward the model’s left side. Such behavior would only be sensible if the default viewport view had the model facing the rear of the viewport (model’s back toward user). Most MakeHuman modules use data from the TARGET files. · In the apps group, these modules includes: devtests.py, human.py, humanmodifier.py, posemode.py, and warpmodifier.py. · In the core group, these modules includes: algos3D.py which is the main program that works with .target files after they are compiled into · In the apps group, these modules includes: · In the apps group, these modules includes: === .proxy files === This MH internal extension designates proxy meshes. They are structured text files. Format and attributes include ... TODO .qrc file This is a resource file need used when compiling for the MakeHuman GUI which uses the pyQt library. === .qss file === This is the text-based file fomat used to store widgets associated with the GUI interface as rendered by the pyQt library Appreciate help from current developers as what needs to go here. Undoubtedly some confusion or mistakes on my part, but some of it might help orient others. -RWB Glad to do the grunt work, but feedback on needed improvemrnt greatly appreciated :-) --------------------------- Also in this section could possibly also loading, saving, exporting formats (but these formats should probably be addressed in context below) The basic work done within MakeHuman is saved as a file with an .mhm extension. The .mhm files can be loaded at the start of a new user session, and return MakeHuman to the state that it was in at the end of the previous session. === Libraries and build procedures === With each MakeHuman release, packages are created for MS Windows, Mac OS X, and Debian derivatives for linux. At present there is not an operating system independent package (although the raw repository will work on all platforms). Each platform has special considerations that are addressed by the designated mainainter for that platform. === Dependencies === In order to run makehuman and/or build packages the following need to be installed on the system: * Python (Python 2.7 (python 3.x will not work).!LINK!http://www.python.org/download/ -- http://www.python.org/download/!/LINK!) * Python-numpy (!LINK!http://sourceforge.net/projects/numpy/files/NumPy/ -- http://sourceforge.net/projects/numpy/files/NumPy/!/LINK!) * Python-opengl (!LINK!http://pyopengl.sourceforge.net/ -- http://pyopengl.sourceforge.net/!/LINK!) * Python-qt4 (!LINK!http://www.riverbankcomputing.com/software/pyqt -- http://www.riverbankcomputing.com/software/pyqt!/LINK!) * Python-qt4-gl (Package required by some linux distributions only) For linux there are scripts (buildscripts/deb/install_deb_dependencies.bash and buildscripts/rpm/install_rpm_dependencies.bash) which will install all the necessary dependencies but please note that these scripts may not agree with all debian and rpm based distros so it may be worth reading the bash script contents prior to running them. === Assets === For obvious reasons, the binary assets (characters, textures, clothes, etc..) are not stored on Mercurial repository, but in two different places: * * Immutable single archive files of the assets of finished versions of MH are stored (disregarding patch version token) on bitbucket (!LINK!https://bitbucket.org/MakeHuman/makehuman/downloads -- https://bitbucket.org/MakeHuman/makehuman/downloads!/LINK!) * Assets still under development are store on Tuxfamily ftp:!LINK!http://download.tuxfamily.org/makehuman/assets/ -- http://download.tuxfamily.org/makehuman/assets/!/LINK! When a new version is released, the current ftp asset tree gets zipped and uploaded to bitbucket. In the tuxfamily asset store, the folder for that version's contents are replaced with an archive_url.txt file that points the download script to the right url. A new folder gets created on the tuxfamily host containing the assets to be included in the next release. For a released version, assets will usually not change, unless to fix bugs (in which case the previous archive is best kept, and a new one is created alongside it with a slightly different name), and the archive_url.txt file is updated. To download automatically the assets and place them in the correct folder on a local repository, it's sufficient to run the python script with the command: === Other scripts === In the makehuman root, there are a few scripts which need to be run: * cleannpz.sh (cleannpz.bat) * cleanpyc.sh (cleanpyc.bat) * compile_targets.py * compile_models.py * compile_proxies.py Note that all these are called automatically in the correct order by the "build_prepare.py" script in "buildscripts" when running one of the pre-existing package building routines below. However, when running makehuman from a source checkout, you will need to run these scripts in the above order. === General proceedings for making a package === On all platforms the following steps should be taken when making the package: * Update from HG repository (!LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK!) * Run the scripts in the makehuman root directory. These will for example compile target files to npz files * Copy all that's relevant to a work directory, excluding at least *.target, the utils directory and the tools directory (strictly speaking there are more that is not necessary, but it will have a minor influence) * Do platform-dependent stuff to the work directory * Zip the directory into a suitable installable format for the platform. ==== Linux ==== === Debian === In order for makehuman to work on Debian the following dependencies are needed. * python * python-qt4 * python-numpy * python-opengl * python-qt4-gl These can be installed by running the command below: On Debian/derivatives (Ubuntu kubuntu etc.) the whole package building is automated through the buildDeb.py script found in the "deb" folder. For Deb script see:!LINK!https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=default -- https://bitbucket.org/MakeHuman/makehuman/src/tip/buildscripts/deb/?at=d...!/LINK! To build a deb file, create an empty directory (for example /tmp/deb) and run: When the script has finished, the deb file will be available in /tmp/deb/output.There are some settings in the head of the buildDeb.py script for tweaking the output. === Fedora 19 64-biit RPM Packaging === These instruction have been written for and tested on Fedora 19 64-bit. You will never be able to run the MakeHuman HG version on distros such as RHEL/CentOS 6.4 or earlier, since they do not support python 2.7, not even if you enable RPMForge. The instructions may or may not work on other RPM-based distros. * * Install a Mercurial client (Hg) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- Makehuman BitBucket Repository!/LINK!. * Install required dependencies. As root, run the bash script for installing the required dependencies. buildscripts/rpm/install_rpm_dependencies.bash This script also installs optional but recommended dependencies. If you only want the really required dependencies, run * Run MakeHuman. Change working directory to the root of the makehuman tree: Then run: You will most likely want to do this as your normal desktop user, not as root. ==== Windows ==== * * Install an Mercurial client!LINK!http://tortoisehg.bitbucket.org/download/ -- (Tortoise HG client!/LINK!is a good choice on Windows) and clone the!LINK!https://bitbucket.org/MakeHuman/makehuman -- MakeHuman repository!/LINK!(see!LINK!http://www.makehuman.org/doc/node/development_infrastructure.html -- http://www.makehuman.org/doc/node/development_infrastructure.html!/LINK!) * Install required dependencies If you are using a 64bit Windows version (only applies to 64-bit computers), you can choose to use either 32-bit python or 64-bit python. Howver it is important that your library dependencies (NumPy, PyOpenGL, and pyQT4) are 32-bit if you use 32-bit Python and 64-bit if you use 64-bit Python. * Run MakeHuman. Start a command console (cmd.exe), change directory to the makehuman folder. Then run: ==== Mac OSX ==== To build MakeHuman for Mac OS X, you should: * * Download the MakeHuman OSX Builder from: !LINK!https://bitbucket.org/MakeHuman/makehuman-osx-builder -- https://bitbucket.org/MakeHuman/makehuman-osx-builder!/LINK! * Follow the included instructions (Instructions.rtf) === Development infrastructure === The development of MakeHuman is based on two fundamental tools: * Mercurial (HG), a stable and robust platform for distributed revision control, with the main repo hosted on!LINK!https://bitbucket.org/MakeHuman/makehuman -- Bitbucket!/LINK! * A collaborative software!LINK!http://bugtracker.makehuman.org -- development platform!/LINK!, based on!LINK!http://www.redmine.org/ -- Redmine!/LINK!. ==== Get the code from BitBucket. ==== Obtain the code from BitBucket repository is very simple, but you need to have Mercurial installed on your system. It's natively present on Linux systems, while for Microsoft Windows, a good software is TortoiseHG (!LINK!http://tortoisehg.bitbucket.org/ -- http://tortoisehg.bitbucket.org/!/LINK!). To clone the repository to your PC, just use this command: hg clone!LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK! With tortoiseHG, you can do it visually, with: right-click --> TortoiseHG --> clone ==== Using Redmine in MakeHuman development ==== Redmine is a very powerful tool. [To expand with technical information about the roadmap organizations, the subprojects, and how to use it to accept experimental features] === Development organization === !IMAGE!Pictures/mh-hg-infographic01.png!/IMAGE! The Unstable branch is where the development happens. This is our working branch, and so we can refer to it as default branch too. The Stable branch is used for official release only. It's just for mainteinance of the current official version. It's rarely used, except in the case of very noticeable bugs that will cause a service release. Any bugfix in the Stable must be merged in Unstable. When the Unstable is ready for the release, it's merged in the Stable and a tag (a sort of bookmark) is created on this exact revision. !IMAGE!Pictures/mh-hg-infographic02.png!/IMAGE! Working on experimental clone for new features in early development is a great comfort for the developer. He doesn't have to keep his code on the local drive since he can commit it immediately. It doesn't matter if the code does not work yet or breaks the app, it is the private playground of the developer. !IMAGE!Pictures/mh-hg-infographic03.png!/IMAGE! To start up a new feature yet unproven or that is unsure how to implement it exactly, or for a big refactor that might make a lot of problems until solved, we will create experimental repos, cloning the main one. One repo for (large) feature. !IMAGE!Pictures/mh-hg-infographic04.png!/IMAGE! Once the developer has something to show, he can communicate with other team members so they can: * clone the experimental repo to a new folder on their local disk * test it * give feedback * perhaps even commit fixes Once a feature is proven to work well enough and accepted by the rest of the team, it can be merged in official unstable branch, where it can be integrated in nighly build version and further finalized (it can now be tested by a broader audience and we will receive bugs reports from them) !IMAGE!Pictures/mh-hg-infographic05.png!/IMAGE! It is also possible that an external programmer, without commit rights on the official repo, make changes on his own personal clone (that he can make public on his own account if he desires). This is a good way to test new team members, where we can accept changes after verifying them. When we trust a new developer, we can give him direct access to official repo. === Getting started === The best way to start your experiments with MakeHuman code is to clone our official repository and start to modify it. In order to procced easily. it is recommended you use the tools available at!LINK!https://bitbucket.org -- https://bitbucket.org!/LINK!. The general procedure is: * Go to!LINK!https://bitbucket.org -- https://bitbucket.org!/LINK!and sign up (if you don't already have an account) * Go to !LINK!https://bitbucket.org/MakeHuman/makehuman -- https://bitbucket.org/MakeHuman/makehuman!/LINK! * Click "fork" (it's hidden under "..." in the button menu) !IMAGE!Pictures/fork.jpg!/IMAGE! * Enter a name and description of your choice (the fork will end up on your account, so it doesn't matter what you call it). Use "fork at tip" and don't check "this is a private repository" * You should be redirected to the new repository on bitbucket * clone your new repository to your local harddrive (if you need a primer on how to clone or use bitbucket,!LINK!https://confluence.atlassian.com/display/BITBUCKET/Bitbucket+201+Bitbucket+with+Git+and+Mercurial -- see their tutorial!/LINK!) * Make your code changes locally. Do not make a feature branch, work directly on the default branch. * Commit and push the changes to your repository on bitbucket * Go to your repository on bitbucket and click "pull request" (in the button menu at the top right of the page) * Write a good description for what your changes concern and click "create pull request" Once you have done this, the makehuman team will get a notification that there is an incoming code changes. This will be reviewed and either merged or rejected. If you want to continue working with updates in the future, make sure your fork is up to date with changes in the makehuman repository. Go to your repository, click the "..." button in the button menu and choose "compare", click the compare button on the page you get to. Merge any incoming changes. If your tree is hopelessly out of sync with the makehuman tree, just delete it and make a new fork. Better that than accidentally getting junk in your pull requests. Before starting with any of the above, you might want to read up on how to run makehuman from a source checkout rather than from a binary download. The short story is that you need to install a few dependencies. More information can be found here:!LINK!http://www.makehuman.org/doc/node/libraries_and_build_procedures.html -- http://www.makehuman.org/doc/node/libraries_and_build_procedures.html!/LINK! === Application design and Code overview === ==== Structural Organization of MakeHuman ==== MakeHuman is organized hierarchically. There is a root application (type gui3d.Application) that handles rendering of objects (guicommon.Object). These objects can be added/removed to/from the root application. Objects added to root application are always visible in the canvas.[I'm wondering if this is really true? - There are object on hidden tabs and the skeleton or mesh can be visible or not. Am I confusing the distinction between 'canvass' and 'view'? - RWB] Every added object has an openGL counterpart. mhmain.MHApplication inherits from root application to constructmain application. A view is a visual context. A tab is a view, for example, the main application is a view.[The main application IS a view or the main application HAS a view? "the "main application frame/window is a view?"- RWB] The Root application[you do meanrootand notmain? - RWB]contains Categories. A Category (gui3d.Category) is a specialised view object which contains multple taskiew objects (gui3d.TaskView). Taskview objects are specialised view objects with a panes and tab. In context of MakeHuman interface, Category objects constitute the upper row of tabs while taskview objects constitute the lower row of tabs. Objects (guicommon.Object) can be added/removed to/from a taskview. Objects added to a taskview are only visible if the taskview is visible. For example, a skeleton added to the skeleton chooser is only visible when the skeleton chooser taskview is visible. Objects added to root application[root not main? - RWB]are always visible. Thus objects like human and all proxies such as clothes are added to theapplication,because they should always be visible. Visiblilty can be disabled by setting the visibility flag on objects but an object that is not added to a currently visible taskview, or the application, is not visible, even if its visibility flag is set positive. [Wording needs improving -- 'should always be visible' and a 'visibility flag' are mixed message - RWB] An object can only be added to one context. So an object is either added to one taskview, or the application, not two different taskviews. Apart from root application, there is another application (type qtui.Application) which implements MH gui structures using Qtlibraries. mhmain.MHApplication inherits from this application too for handling of gui content.e General structure in MH can be represented as: !IMAGE!Pictures/mh-inheritance.png!/IMAGE! ==== Basics of event handling in Makehuman: ==== Makehuman is a GUI based, interactive, Qt application in which objects interact by sending messages to each other. The Qt class QEvent encapsulates notion of low level events like mouse events, key press events, action events, etc. A Qt application is event loop-based, which is basically a program structure which allows events to be prioritized, queued and dispatched to application objects. In a Qt based application, there are different sources of events. Some events like key events and mouse events come from window system, while some others originate from within application. When an event occurs, Qt creates an event object to represent it by constructing an instance of the appropriate QEvent subclass, and delivers it to a particular instance of QObject (or one of its subclasses) by calling its event() function. This function does not handle the event itself, but rather, it calls an event handlerbased on the type of event delivered, and sends an acknowlegement based on whether the event was accepted or ignored. QCoreApplication::exec()method enters the main event loop and waits until exit() is called. It is necessary to call this function to start event handling. In MH, it is done in lib.qtui.Applicationwhich inherits fromQApplicationwhich in turn inherits fromQCoreApplication: def start(self): self.OnInit() self.callAsync(self.started) self.messages.start() self.exec_() In MH, event handling falls in two broad categories. * Event handling forcontainers(application, categories, taskviews) * Event handling forwidgets(contained in containers) ==== Event handling for containers: ==== MH is organized hierarchically in the context of containers. At top is the main application (core.mhmain.MHMainApplication). It contains categories (core.gui.Category), which in turn contains taskviews (core.gui.TaskView). In a Qt-based application, there are five different ways of events processing, as listed below: * * Reimplementing an event handler function like paintEvent(), mousePressEvent() and so on. This is the most common, easiest, but least powerful approach. * ReimplementingQCoreApplication::notify( QObject * receiver, QEvent * event ). This is very powerful, providing complete control; but only one subclass can be active at a time. Qt's event loop and sendEvent() calls use this approach to dispatch events. * Installing an event filter onQCoreApplication::instance(). Such an event filter is able to process all events for all widgets. It's just as powerful as reimplementing notify(); furthermore, it's possible to have more than one application-global event filter. Global event filters even see mouse events for disabled widgets. Note that application event filters are only called for objects that live in the main thread.[I believe that MH is single threaded - implications? RWB] * ReimplementingQObject::event()(as QWidget does). If you do this you get Tab key presses[<--Explain what is special about TAB and shift-TAB presses ?- RWB], and you get to see the events before any widget-specific event filters. * Installing an event filter on the object itself. Such an event filter gets all the events, including Tab and Shift+Tab key press events[<--Explain what is special about TAB and shift-TAB presses ?- RWB], as long as they do not change the focus widget. In MakeHuman, approaches 2 and 4 are used for extensively for event handling. As part of strategy 2,inlib.qtui.Application (which extendsQApplication), notify has been reimplemented:[I don''t understand the implication of this? Expond? -RWB] def notify(self, object, event): self.logger_event.debug('notify(%s, %s(%s))', object, event, event.type()) return super(Application, self).notify(object, event) object is the receiver object. Class implementing notify has to be singleton. [Clarify? - RWB] In MakeHuman,MHApplicationsubclasseslib.qtui.Application.MHApplicationobject is the main application object. It's notify function receives notification from the event loop in the underlying Qt layer about each[container only or widgets too?]event, which is then relayed to receiver object's event method. Thereceiver object's event method is either inherited from QObject or reimplemented. The Receiver object then either sends TRUE or FALSE, as the case may be, to[WHERE??] - RWB lib.qtui.Applicationalso implements an event function, which is called if the receiver object isMHApplication objectitself. Then,lib.qtui.Application.event()checks if its a user-defined event or not,and it is so true is returned, else we call super class's event(). In case of true being returned,Qt dispatches event to receiver object's callEvent function which determines which function to be called on object to handle the event. Called function then handles the event or propagate it to its parent(or to current task if its application object), as may seem fit. ==== Event handling for widgets ==== Most of MH widgets are wrappers around Qt widgets. These widgets (defined in module lib.qtgui) inherit from the respective Qt widgets and the Widget class (lib.qtgui.Widget). MH makes use ofsignal and slot mechanismby making the connection between the signal originating from the Qt layer and the corresponding handler function. For example, class TabBase connects the signal 'currentChanged' to its function 'tabChanged' as follows: class TabsBase(Widget): def __init__(self): super(TabsBase, self).__init__() self.tabBar().setExpanding(False) self.connect(self, QtCore.SIGNAL('currentChanged(int)'), self.tabChanged) ...................... Any class inheriting from TabsBase(e.g., lib.qtgui.Tabs or lib.qtgui.TabBar) also gets this facility. So now whenever signal 'currentChanged' is emitted from Qt layer function 'tabChanged' is called. The result is that when a user clicks the mouse on a tab, the 'tabChanged' code will be called, Similarly, MH Slider widget connects various slider operations to its event handling functions as: ........................... self.connect(self.slider, QtCore.SIGNAL('sliderMoved(int)'), self._changing) self.connect(self.slider, QtCore.SIGNAL('valueChanged(int)'), self._changed) self.connect(self.slider, QtCore.SIGNAL('sliderReleased()'), self._released) self.connect(self.slider, QtCore.SIGNAL('sliderPressed()'), self._pressed) ........................... [-- EDITING/PROOFING ENDS HERE - RWB --] ==== Overriding vs event decorators: ==== The View, Category and Application classes inherit from events3d.EventHandler, hence they have callEvent() function. The events that apply to this category are usually application-wide. If user make a change that impacts the whole application, and whole application must know about this change, then best way to do so is to call callEvent() for all the taskviews of the application,as follows: for category in self.categories.itervalues(): for task in category.tasks: task.callEvent('onMyEvent', params) A good example is the event of makehuman's scene changing(core.qtui.MHApplication._sceneChanged). So when callEvent is called on a taskview object and it has onMyEvent implemented,it is being called. In core.gui3d.View too one can see that most of the events (onShow, onMouseDown,...) on the taskview are propagated by default to their parents - the categories. The categories also are views, so the events are propagated again to their parent, the application. If, again, the application or any category has an onMyEvent method, it is executed. There are some events that affect the application, but only a single task at a time,for example onMouseDown event. It only happens to the active taskview (the others are hidden, so they receive no mouse events). Once the mouse is pressed, an Application.currentTask.callEvent("onMouseDown", event)is issued. This causes the onMouseDown event to be received by the active Taskview, its parent Category, and finally the Application. This call executes any onMouseDown method in these objects. Apart from the Category events described above, there are events used for local purposes. Such events are handled withevent decorators. Suppose we have a new Taskview, FooTaskView. This Taskview has a 'mybar' member variable, which is of type Bar(events3d.eventHandler). The requirement is that when self.mybar executes code, we may want to communicate with its parent to inform it about an event that just happened. So, inside the code for Bar, is located a 'self.callEvent('onBaz', 42)' command. Thus, in the Bar class, we emit a timely event signal and use the event decorator to let the parent Taskview know about the event. In the FooTaskView class, but below the place where self.mybar is created, we add: @self.mybar.mhEvent def onBaz(event): # code on event. # guess what, event == 42. When now the self.mybar Bar reaches that callEvent, the above method, located in FooTaskView, will be executed. core.mhmain.MHApplication's human is perfect example of this approach.Human has onMouseDown event handler and we need to relay it to application. In loadMainGui function of MHApplication, we add decorator to human attribute as: def loadMainGui(self): .............. @self.selectedHuman.mhEvent def onMouseDown(event): if self.tool: self.selectedGroup = self.getSelectedFaceGroup() self.tool.callEvent("onMouseDown", event) else: self.currentTask.callEvent("onMouseDown", event) ............. Application.human.onMouseDown event is caught and it starts its trip from the Human; it is captured by the decorated method located in Application.loadMainGui (this is the place where the method is bound with the event), it is sent to the currentTask, propagated through the parent category, and finally reaches its destination, the Application. A more intense process happens on Human.onChanged. This is emitted when a save/load happpens, so the whole application has to know. So it starts from the human, captured by the decorated method in app, sent to ALL the taskviews in MH, and finally through the categories again to the app. ==== The MakeHuman Graphical User Interface (GUI): ==== The MakeHuman GUI is based on the pyQt library which, in turn, is built on the Qt library. Qt is a development framework for the creation of applications and user interfaces for desktop. Important GUI classes in MakeHuman are: lib.qtui.Canvas:This is the class in MakeHuman which takes care of rendering openGL graphics.It inherits from Qt's QGLWidget class which is a widget for rendering OpenGL graphics. QGLWidget provides functionality for displaying OpenGL graphics integrated into a Qt application. It is very simple to use. You inherit from it and use the subclass like any other QWidget, except that you have the choice between using QPainter and standard OpenGL rendering commands. The Canvas class reimplements three functions from parent class to perform openGL tasks: * paintGL() - Renders the OpenGL scene. It gets called whenever the widget needs to be updated. * resizeGL() - Sets up the OpenGL viewport, projection, etc. Gets called whenever the widget has been resized (and also when it is shown for the first time because all newly created widgets get a resize event automatically). * initializeGL() - Sets up the OpenGL rendering context, defines display lists, etc. Gets called once before the first timeresizeGL() orpaintGL() is called. lib.qtui.Application: This is the foundation class which manages GUI's control flow and main settings. It inherits fromQtGui.QApplicationandevents3d.EventHandler. QApplicationcontains the main event loop, where all events from the window system and other sources are processed and dispatched. It also handles the application's initialization and finalization.Application class holds gui main window(instance of lib.qtui.Frame). Application class receives event notifications from underlying Qt user intrface framework and dispatches them to appropriateuser intrface elements in MakeHuman. GUI architecture inMakeHumanMH can be depicted as follows: !IMAGE!Pictures/mh-uiarchitecture.png!/IMAGE! === Application Design Notes from IRC Chat with Thanassis === Thanasis comments on gaining the big picture of MH coding * [16:12:57] <Thanasis> I would avoid describing the different parts of code as different entities * [16:13:43] <Thanasis> ie. follow the object-oriented paradigm, and avoid thinking who is inherited by who etc. * [16:13:48] <Thanasis> more specifically * [16:15:03] <Thanasis> I mean, treat an object as a single object * [16:15:08] <Thanasis> I'll show an example * [16:15:45] <Thanasis> you have the application. Inheritance says it consists of three classes, QApplication, MHApplication, and mhmain.Application (names may differ a bit). * [16:15:58] <Thanasis> but it is only one object * [16:16:42] <Thanasis> We don't care if the QApplication activates a function in MH application, because it happens inside the same object * [16:16:50] <Thanasis> the application * [16:17:18] <Thanasis> we only pay attention to the interactions the application object has with other objects * [16:17:43] <Doctor_Hell_> but if you need to find a function, you need to follow the inheritage chain...no? * [16:18:24] <Thanasis> of course, in the code, yes. but in a diagram it will make it complex * [16:21:02] <Thanasis> well, let's go top-down * [16:21:29] <Thanasis> we have: QT, App, Tab, Task * [16:21:56] <Thanasis> The event starts from QT, and activates a handler in App * [16:22:22] <Thanasis> The App sends a new event to the current Task * [16:22:46] <Thanasis> The task handles it, and sends a copy to the parent Tab * [16:23:13] <Thanasis> And finally the Tab handles it and sends a copy to the App * [16:23:35] <Thanasis> which handles it, and stops * [Referring to how distrating it is to describe the big picture of MH, Thanasis comments ...] * "Distract? no, this does not consume any brain energy" * We love your help- the more the bettter -- Thanks [RWB] Comments Regarding MacroTarget slider processing/handling based on naming conventions: * [16:36:24] <Doctor_Hell_> [23:26] <Doctor_Hell_> another complex part to know is the engine coded by Jonas to automatically handel the targets using their name * [16:37:58] <Thanasis> uh. yes, that's a tough one too. I think it does, but I don't remember why and how, because it was a long time ago and Jonas changed the human modifier class since then * [16:38:18] <Thanasis> he simplified it, actually, but I haven't seen the new version yet * [16:38:34] <Doctor_Hell_> where is the code? * [16:38:49] <Thanasis> apps/humanmodifier.py, I think * [16:39:01] <Doctor_Hell_> Jonas should be very busy recently, since I asked him but he didn't reply me yet. * [16:42:37] <Thanasis> um by the way, reading humanmodifier alone won't help a lot. I would suggest starting from the macro plugin, to trace what happens when a slider is created, and when the user moves a slider. It might be easier this way Difficulties in understanding relationships between folder names / module names and the object structure * [16:39:36] <Doctor_Hell_> ANother thing to understand is why we have some code inapps, other incore, other in libs..the logic is not clear for me.. * [16:39:52] <Thanasis> ah, ignore logic in that part. :) * [16:40:20] <Thanasis> as far as I know it is all because of mh history so far * [16:40:29] <Thanasis> the way it developed. * [16:40:56] <Doctor_Hell_> I know some of it * [16:41:24] <Doctor_Hell_> in the early times,it was planned to have a core folder, with all important main files * [16:42:03] <Doctor_Hell_> then anapps folder, to contain many application based on the core files: makeHuman, makeANime, MakeToon, etc.. * [16:42:29] <Doctor_Hell_> butsharedandlibswere added later...I don't know why * [16:43:10] <Thanasis>libs, they are classes imported from c++ directly * [16:43:48] <Doctor_Hell_> ah ..so only the "shared" folder is the mystery * [16:44:04] <Thanasis> shared, they are later classes used by many different parts of the code at the same time * [16:44:15] <Thanasis> classes created later* * [16:44:28] <Thanasis> ie. material. It's used literally everywhere * [16:44:32] <Thanasis> progress too * [16:44:58] <Doctor_Hell_> ok..at least now it make sense, thank you * Comments on New API project * [16:45:39] <Doctor_Hell_> now that you have more time, will you look at the API? * [16:46:55] <Thanasis> 'time' != 'creativity'. I expect it will be easier to me after the start of the semester * [16:46:27] <Doctor_Hell_> if you are logged to MH site, you can see this:!LINK!http://www.makehuman.org/blog/the_makehuman_api_project_mhapi.html -- http://www.makehuman.org/blog/the_makehuman_api_project_mhapi.html!/LINK! * [16:47:02] <Doctor_Hell_> Also Joel has already created this:!LINK!https://bitbucket.org/joepal1976/makehuman-api-project/overview -- https://bitbucket.org/joepal1976/makehuman-api-project/overview!/LINK! * [16:48:52] <Doctor_Hell_> at the moment, you can just post a list of wished api in the issue 534 * [16:49:16] <Doctor_Hell_> we want to start the API in few weeks..they are fundamental, in order to have more contributors... * [16:51:05] <Thanasis> oh, boy. I want to clean up this code!LINK!https://bitbucket.org/joepal1976/makehuman-api-project/commits/aa5c12953fb2c8a1723b21bb0b7d90667653d615 -- https://bitbucket.org/joepal1976/makehuman-api-project/commits/aa5c12953...!/LINK!* ​Go for it? [RWB] :) The Doc_Hell Diagram (green and red arrows that even Glynn couln't understand) [Summary - concentrate on green arrows not red arrows to get the big picture] * <Doctor_Hell_> this is an example of bad diagram:!LINK!https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0 -- https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0!/LINK! * [16:52:48] <Thanasis> well, in your shape, the actual thing is about the green arrows * [16:53:19] <Thanasis> the red arrows could have been implemented in hundreds of different ways * [16:53:44] <Thanasis> but the important is their result, the green arrows * [16:53:53] <Doctor_Hell_> talking about how to draw the objects? * [16:54:26] <Thanasis> well, my idea was, do two shapes * [16:54:36] <Thanasis> the first without code * [16:55:10] <Thanasis> only showing the 5 steps like I explained above, ie, the green arrows * [16:55:28] <Thanasis> the second can explain each step in detail using the red arrows * [16:55:50] <Thanasis> but in any case the definition is the following * [16:56:04] <Thanasis> an event is, you send the name of a method to someone * [16:56:14] <Doctor_Hell_> ok...but also we have the description written by Manish. I'll show you it tomorrow * [16:56:21] <Thanasis> and that someone executes that method of theirs * [16:56:47] <Thanasis> sure, there are many ways to describe it * [16:57:00] <Doctor_Hell_> I hope we can find the best one * [16:57:07] <Thanasis> I think that they all match though in some certain key points * [16:57:52] <Thanasis> if these are filtered out, the explanation may be more simple And touching on API ideas ... * [16:59:09] <Doctor_Hell_> since the core is too complex for average python programmers * [16:59:36] <Thanasis> yes... perhaps the code could be organized in tiers. * [17:00:00] <Thanasis> core, classes, plugins, scripts * [17:00:27] <Doctor_Hell_> ah you are talking of the current code, not the simplified api * [17:00:54] <Doctor_Hell_> yes, it's a good idea..but what group under "core" ? * [17:01:25] <Thanasis> theapplication and its interfaces(ie.communication with the system and devices. QT, GL etc.) * [17:01:59] <Thanasis> classes are abstract, they use the application by calling its methods * [17:02:35] <Thanasis> the application uses the interfaces (QT, GL.these are actually harder than the application andcould be a sepparate tier) * [17:02:54] <Thanasis> thepluginsuse the classes to create objects * [17:03:26] <Doctor_Hell_> I see some possible confusion because: * [17:04:24] <Doctor_Hell_> - not all core modules are into core folder (for example qtui and qtgui are in libs) * [17:04:49] <Doctor_Hell_> - Classes are everywhere * [17:05:07] <Thanasis> yes, libs folder consists of both core and classes... indeed * [17:05:23] <Thanasis> andinterfacestoo * [17:06:51] <Thanasis> but in general, this separation exists somehow. I'm not sure how, but the past programmers instinctively created it, perhaps for better manageability * [17:08:14] <Thanasis> ie. Human is a class, Material too, Armature (probably making name wrong again), and to function I observe that they use callbacks of Application * [17:08:38] <Thanasis> They never use interfaces directly * [17:09:46] <Thanasis> Even for drawing the human, it is the Application that will give the Human's object3d to OpenGL, not the Human directly * [17:10:31] <Thanasis> and plugins use classes ie. they use the callbacks that Human, Material etc. have * [17:11:08] <Doctor_Hell_> Do you mean abstraction classes? * [17:13:27] <Doctor_Hell_> Thanasis: about new API:!LINK!http://bugtracker.makehuman.org/issues/534 -- http://bugtracker.makehuman.org/issues/534!/LINK! * [17:13:42] <Doctor_Hell_> and!LINK!http://bugtracker.makehuman.org/projects/makehuman/wiki/Abstraction_API_for_plugins -- http://bugtracker.makehuman.org/projects/makehuman/wiki/Abstraction_API_...!/LINK! * [17:13:57] <Doctor_Hell_> Feel free to add wished api calls === Q & A with Glynn Clements === Question: For an event when user clicks on a tab, Tabs class method tabChanged is called. QTabWidget documentation.There is no such method. Response: The tabChanged method is defined for qtgui.TabsBase (and overridden for qtgui.Tabs). Both qtgui.Tabs and qtgui.TabBar inherit from qtgui.TabsBase. Tabs inherits from both TabsBase and QTabWidget while TabBar inherits from both TabsBase and QTabBar. Both QTabWidget and QTabBar define the currentChanged signal, which is emitted whenever the current tab changes. The TabsBase initialiser connects this signal to the tabChanged method (lib/qtgui.py:109): class TabsBase(Widget): def __init__(self): ... self.connect(self, QtCore.SIGNAL('currentChanged int)'), self.tabChanged) ========================================================== Question: is it true that qtui module: low level module, that handles signals directly from QtCore, QtGui and QtOpenGL? Response: qtui defines the classes for the application (QApplication subclass), main window QMainWindow subclass), drawing canvas (QGLWidget subclass), and some associated support classes. In other words, it implements the high-level UI, or at least the aspects which are tied to Qt. Question: is it true that qtgui module: low level module, that define the basic widgets of the GUI as buttons, radiobuttons, etc.. Response: Yes; qtgui is essentially a compatibility layer between the Qt widget classes and the legacy MH GUI toolkit. The classes provide methods which more closely mimic the behaviour of original gui3d widgets. Qt events are translated to MH events3d events. Question: Is it true that gui3d module: high level module, that define the principal public classes of MakeHuman: Application, Category, TaskView and View. Response: This is what's left of the legacy MH GUI toolkit. Before the move to Qt, everything was a "View". Now it's just the high-level containers (Application, Category, Task) which exist as somewhere to put event handlers. Question: What is the purpose of the module guicommon.py? Looking at the module name, it appears to be a sort of library for the GUI functions, but it's a completely different thing. What is it really? Response: Object used to be part of gui3d. Its primary function is to be the base class for Human. It's the other main subclass of events3d.EventHandler (the first being gui3d.View). It's not really accurate to call it a "wrapper" around Object3D (although it can have instances of both module3d.Object3D and object3d.Object3D as members). One of the main differences between guicommon.Object and module3d.Object3D is that the latter is a single mesh, while the former has up to four meshes (all of type module3d.Object3D): the base (or "seed") mesh, a proxy mesh, a subdivided mesh, and a subdivided proxy mesh. It [guicommon.py or guicommon.Object ??RWB] also contains an object transformation (location, rotattion, scale) [method?], and optionally a display mesh (object3d.Object3D). As a subclass of EventHandler, it [guicommon.Object ??RWB] provides mouse handlers which propagate the event to the object's view (these are overridden for the Human within MHApplication.loadMainGui). Question: G.app is the singular mhmain.MHApplication instance; the callEvent method (inherited from event3d.EventHandler) will end up calling G.app.onMouseDownCallback. How the function callEvent end up calling G.app.onMouseDownCallback? Response: "direction" will be either onMouseDownCallback or onMouseUpCallback. Note the "Callback" suffix. So typical event flow for clicking on the human model is: G.app.mainwin.canvas.mouseUpDownEvent ("onMouseDownCallback") [Canvas.mouseUpDownEvent] G.app.callEvent("onMouseDownCallback") [EventHandler.callEvent] G.app.onMouseDownCallback() [gui3d.Application.onMouseDownCallback] G.app.selectedHuman.callEvent('onMouseDown', event) [EventHandler.callEvent] G.app.selectedHuman.onMouseDown() [local function in MHApplication.loadMainGui] G.app.currentTask.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.currentTask.onMouseDown() [View.onMouseDown] G.app.currentCategory.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.currentCategory.onMouseDown() [View.onMouseDown] G.app.callEvent("onMouseDown", event) [EventHandler.callEvent] G.app.onMouseDown() [MHApplication.onMouseDown] Notes: G.app.currentTask.parent == G.app.currentCategory G.app.currentCategory.parent == G.app Question: is the eventType string (also called 'direction') originated by QT? Response: No. "direction" is just so that code which is common to both mouse press and mouse release events can go into a single method (mouseUpDownEvent) rather than duplicating it in mousePressEvent() and mouseReleaseEvent(). Those functions are identical except for the name of the event passed to callEvent. Bear in mind that self.callEvent("onMouseDown", event) is almost the same as self.onMouseDown(event), except that callEvent forces a redraw after the event has been dealt with, and has some support for logging and profiling. Once you strip that away, the guts of callEvent() is just: method = getattr(self, eventType) method(event) ====================================================================== Question: Can the modularization of the code can be improved? Response: Modularisation is already quite good. Too much of it can make the code harder to understand. Currently, we try to avoid importing OpenGL or Qt modules (directly or indirectly) into modules which don't inherently depend upon them (e.g. guicommon.Object imports object3d locally in the attachMesh and detachMesh methods, so it only gets imported if you actually need to render the object). TODO ACTION. One minor point which I noticed: lib/camera.py imports glmodule solely for the queryDepth() call in convertToWorld2D (the Z coordinate is obtained by retrieving a value from the depth buffer using the X,Y coordinates). This should probably be a local import in that method, so that camera.py could be used in e.g. import/export utilities. ========================================================================== Question: [Referring to DocHell's red and green diagram (!LINK!https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0] -- https://www.dropbox.com/s/v3waacufp9pyx1u/mouse_event.png?dl=0]!/LINK!] Response: I have no idea; I can't follow that [diagram]. It would probably help if you simply ignore CallEvent(), and treat object.callEvent('method',event) as just object.method(event). The two factors which make following the flow slightly complicated are: Methods aren't always defined within the class used to create an object, but may be inherited from one of its base classes. Event handlers may be dynamically added to an object with the mhEvent method (which is usually invoked using Python's decorator syntax). This is done for the Human object in MHApplication.loadMainGui(): @self.selectedHuman.mhEvent def onMouseDown(event): .... If you aren't familiar with the decorator syntax, the above is equivalent to: def onMouseDown(event): ... self.selectedHuman.mhEvent(onMouseDown) which in turn boils down to: def onMouseDown(event): ... self.selectedHuman.onMouseDown = onMouseDown ================================================================================= Question: Could you provide an explanation of what a weak reference is? How might this impact MakeHuman? Response: [Jonas Hauquier ] A weak reference, one that is not accounted for by the garbage collection. Garbage collection removes objects from memory that have no pointers to them anymore. Weakrefs are not counted among those, so if the object has only weakrefs pointing to it, and not real pointers, it will be removed anyway. This is to make sure that object A and B that always point to each other, are not kept in memory just because they keep referencing each other (I believe the garbage collection does not do expensive graph traversals to check what is still referenced by the active context). [Glynn Clements] Sort of. Python uses both reference-counting (which can't handle circular references) and reachability-based garbage collection (which can). If an object's reference count reaches zero, it will be finalised immediately. But an object with a non-zero reference count can still be finalised if it can be determined that it isn't reachable during a garbage-collection sweep. However: the garbage collector won't attempt to finalise reference cycles if any of the objects in the cycle have a __del__ method, as it can't determine a safe order in which to execute them. Instead, it adds them to a list, accessible as gc.garbage. Application code can inspect this list, manually finalise the objects (which should break the cycles), then remove them from the list (otherwise their presence in gc.garbage will itself constitute a reference). It's possible to have the garbage collector report such cases using gc.set_debug(gc.DEBUG_UNCOLLECTABLE). Only a few MH classes contain __del__ methods. These will only present a problem if the object itself is part of a cycle (i.e. contains references to "complex" objects which themselves contain references which could lead back to the original object). "Leaf-node" classes such as Texture and Shader shouldn't present a problem unless their creators attach additonal references to them. This may be an issue for e.g. qtgui.Slider and qtgui.RadioButton, as these have __del__ methods and will naturally create circular references. Use of weakref may be advised here. Similarly for queue.Thread. SceneItem in plugins/7_scene_editor.py may also be a problem. ============================================================================= Question: Could you clarify wherther the following acurately describe the use of decorators? A basic decorator is a function that: 1) Gets a function "A" as argument 2) Modifies the behavior of "A" 3) Returns a "decorated" version of "A" Response: Correct. Question: Topic: Decorators and side-effects. When is a decorator not about generating a function? So, if the above accurately descibes a decorator, consider the code: @self.selectedHuman.mhEvent def onMouseDown(event): This should translate: onMouseDown = self.selectedHuman.mhEvent(onMouseDown) One would expect that using mhEvent as decorator, it returns a function, but instead, it returns None: def mhEvent(self, eventMethod): self.attachEvent(eventMethod.__name__, eventMethod) How can it be used as decorator? Response: Because the returned "function" isn't actually used anywhere. The definition is local to loadMainGui(), which doesn't reference the functions, so the fact that e.g. onMouseDown is None within loadMainGui() doesn't matter. The mhEvent() method is used for its side-effects, not its return value. It attaches an event to the selectedHuman. It is equivalent to: self.selectedHuman.attachEvent(onMouseDown.__name__, onMouseDown) ============================================================================== == Packager's notes == Notes for packagers of Makehuman stables and nightlies. === Packaging RPM's for Suse/Fedora using Open Build Service (OBS) === The Open Build Service is a service formerly known as the Opensuse build service. OBS allows packagers to build packages for several targets. Here a target is a particular OS version E.g. Suse 13.1, Suse 12.3, Fedora 20 , Ubuntu 14.04 and so on. OBS being a build system by itself can be hosted anywhere even on local infrastructure. For MakeHuman packages we use the OBS instance hosted by Novell at build.opensuse.org This document will briefly outline the typical packaging workflow for Suse and Fedora. Both distributions use the RPM format and subsequently adhere to RPM's packaging rules. !IMAGE!Pictures/obs-flow-chart-scaled.png!/IMAGE! === 1) Prepare source tarball: === OBS does not allow pulling from the internet once the rpm is being processed into a package so. When creating the source tarball you should assemble it either on your own computer or a server online (even a VPS will do). There are several Important files and scripts which are of interest to us. One is build_prepare.py this assembles the main folder and all the common data which is needed by all OSes be it Mac or LInux distros or windows. This script is essential to run. Then there is build_rpm.py. We borrow some of the initial code in this and use it on our bash script but we do not build the whole RPM because OBS does that. Another third inportant file is build.conf (this stores the configuration used by build_prepare.py to make the source tarball). Using the above scripts/files I prepared a Bash script which is shown below. The above script assumes the following: * You have cloned MakeHuman's Mercurial (Hg) repo into your home directory and it is located at ~/makehuman (cloning into ~/ automatically makes the makehuman folder) * You have python , numpy and pyQt4 installed (package names may vary from distribution to distribution) * You are running on a LInux distribution. * You want to prepare a source tarball from Hg tags. * $VERS is the latest user specified stable tagged version * makehuman-$VERS is your destination folder where all files are copied * the final tarball uses bzip compression. How the tarball is compressed is significant as RPM accepts only certain compression algorithms. The resultant file is makehuman-$VERS.tar.bz2 (E.g. makehuman-1.0.2.tar.bz2) * You use an FTP server whose file path is located at /var/ftp you can skip this step if the script is run locally by commenting the lines out. ​Explanation of the above script: In the first section we use Hg and extract available tags and ask the user for input on which stable tag he/she wants to build against. In the second section we automatically create the build.conf file which is used to specify if we want a release or development folder. Here we set isRelease=True In the third section we use build.conf along with build_prepare.py this creates a basic non-OS specific folder in home (~/). In the fourth section we copy extra files such as the .desktop file and the makehuman icon file, the shell wrapper for MakeHuman and remove the .bat file which is not needed in linux. Currently there is a bug where command line arguments are not passed by the shell wrapper to the python executable. We fix this by manually editing the file automatically in our bash script before copying it into the target folder to be tarballed. This is moved into the folder created earlier by build_prepare.py . With this we now have have a folder with all the basic requirements needed for packaging. FInally the folder is then tarballed and it is ready for upload to OBS. If you are not using an FTP server then comment out the “mv” command which moves the tarball to /var/ftp in the shell script above. IN some distributions the FTP directory is /srv/ftp === 2) Upload the tarball to OBS === The next step is to upload the tarball to OBS. Firstly you need to create a username and password. Then login to build.opensuse.org and create a project. On account creation you get your own home directory. Two interfaces exist to OBS. One is the command-line interface which is available by installing the package "osc" it is available in most distributions. The other one is the Web User interface. Both are equally useful the command line interface is better for doing certain tasks however. OBS also has a feature called “ services”. Several services are available such as services to pull from various sources e.g. FTP servers online, services to tarball the version controlled sources directly (tar_scm). You can make use of these _services (they are defined using XML notation in "_service" files). Read!LINK!”http://en.opensuse.org/openSUSE:Build_Service_Concept_SourceService” -- Source Services!/LINK!; or you can manually upload your tarball through the Web UI or use the "osc" command line utility. To learn how to use the "osc" utility use "man osc" or view the manpage online. I would not recommend using _service files to pull the tarball as they can stop working. It is better to manually push the tarball to OBS. Either by pressing the upload button on the Web UI or placing the tarball in your project home directory created by using the “osc checkout” command. Then typing “osc ar” (add /remove) and finally “ osc commit -m ”put commit description here” “ to push and commit the changes you just made. You can also automate the above process by adding lines to the shell script but It is better to administer osc separately and manually to allow for more control. === 3) Prepare the spec file: === A .spec file is a special file which is used to build RPM's. It “contains information required by RPM to build the package, as well as instructions telling RPM to build it. The spec file also dictates exactly what files are a part of the package, and where they should be installed. The RPM specification is very well defined and it is fundamental than any packager develop a strong base in the fundamentals.” (taken from “Maximum RPM”) A very important book detailing the various capabilities of RPM is!LINK!”http://www.rpm.org/max-rpm/” -- Maximum RPM!/LINK!. This is a must read for any packager and will help in understanding the spec file shown below. If you have not read it please bookmark the page and give the book a read. I cannot stress how important it is. In OBS we have 2 main OS's which use RPM's as build targets Fedora and Suse. RPM provides macros to make packaging more standardised and easy. Most Macros are common however some are distribution specific. Below is the spec file used by the Makehuman project. For version 1.0.2. The above .spec file follows the general structure and format of spec files as per the RPM specification. The spec file has been formatted for for OBS by running “osc service localrun format_spec_file” then reading the contents to ensure that nothing went wrong and committing the changes back to OBS. In the above spec file we have split MakeHuman into 2 subpackages and made them depend upon each other to ensure consistency. As you can see there are 2 sources one is the tarball we created with our bash script earlier and there is another file called "makehuman.1" this is a manpage. In the spec file instructions are issued to gzip it and put into the manual directory on install. The manpage (Source101 in the .spec file) is shown below. How man pages are created is out of scope of this document. Man pages use gtroff. There are however ample resources online which can help with this. The .spec file has been commented to provide you with a better understanding of what is done at various stages. Once the .spec file has been updated on OBS it automatically triggers a rebuild duribg that time you can monitor the status of the build process and correct errors in your spec file or sources as they arise. === 4)Pushing changes to the official repositories === Once you are satisfied that your package is stable you can make a submit request to submit the package from the Web User Interface or run the command below. In the above command we submit the “makehuman” package to the OpenSuse “graphics” project. After this the package is reviewed by the maintainer of the graphics project and approved or rejected with comments given. You will receive an email after the project has been reviewed. Notes: * The .spec file and the manual page will change over time. The above is there for illustration purposes only. * You can find copies of the most recent stable .spec file and makehuman.1 manpage!LINK!:https://build.opensuse.org/package/show/graphics/makehuman: -- here!/LINK!. This is the stable version after a "submit request" to the official Suse repositories. b34d1436ac9f65296e2add662b7ed8f2ce35a9cb Documentation:Short and Long Pipeline 3000 9 195 194 2015-07-25T13:09:32Z Robbaer 12 /* Long Pipeline */ wikitext text/x-wiki Makehuman was created to provide everyone with specialized software that strives to be the state of the art in a very specific field: the virtual human. The goal is to see it used in two different pipelines or workflows. ===Short Pipeline=== The short pipeline is intended for quick character prototyping and for 2D art. The user defines the character, adds clothes, hair, a pose and expressions, by selecting them from our libraries, and running the render to obtain an image of the character (future goal: indistinguishable from a real photo of him).This output can be used as a character preview, fineart, blueprints, storyboards, comics, illustrations, etc.. No special skill is required from the user. ===Long Pipeline=== The long pipeline is intended to create a 3D character in rest pose for export to external software (Blender, Maya, Max, C4D, etc..) in order to be tweaked, animated and rendered. Another common usage of the rest-posed character is for games. The long pipeline requires the user to have professional skills and a good working knowledge of the external tools chosen to produce the desired final product. Some additional help with navigating various long pipeline workflows is available [http://www.makehumancommunity.org/wiki/MakeHuman_Workflows]. ea53947aa50d51cd432367667a2968c759013c7d 194 193 2015-07-25T13:07:55Z Robbaer 12 /* Long Pipeline */ wikitext text/x-wiki Makehuman was created to provide everyone with specialized software that strives to be the state of the art in a very specific field: the virtual human. The goal is to see it used in two different pipelines or workflows. ===Short Pipeline=== The short pipeline is intended for quick character prototyping and for 2D art. The user defines the character, adds clothes, hair, a pose and expressions, by selecting them from our libraries, and running the render to obtain an image of the character (future goal: indistinguishable from a real photo of him).This output can be used as a character preview, fineart, blueprints, storyboards, comics, illustrations, etc.. No special skill is required from the user. ===Long Pipeline=== The long pipeline is intended to create a 3D character in rest pose for export to external software (Blender, Maya, Max, C4D, etc..) in order to be tweaked, animated and rendered. Another common usage of the rest-posed character is for games. The long pipeline requires the user to have professional skills and a good working knowledge of the external tools chosen to produce the desired final product. Some additional help with various long pipeline workflows is available [http://www.makehumancommunity.org/wiki/MakeHuman_Workflows]. 083b4429f9b3a3e7a746b905c963be4a33319303 193 44 2015-07-25T13:05:55Z Robbaer 12 /* Long Pipeline */ wikitext text/x-wiki Makehuman was created to provide everyone with specialized software that strives to be the state of the art in a very specific field: the virtual human. The goal is to see it used in two different pipelines or workflows. ===Short Pipeline=== The short pipeline is intended for quick character prototyping and for 2D art. The user defines the character, adds clothes, hair, a pose and expressions, by selecting them from our libraries, and running the render to obtain an image of the character (future goal: indistinguishable from a real photo of him).This output can be used as a character preview, fineart, blueprints, storyboards, comics, illustrations, etc.. No special skill is required from the user. ===Long Pipeline=== The long pipeline is intended to create a 3D character in rest pose for export to external software (Blender, Maya, Max, C4D, etc..) in order to be tweaked, animated and rendered. Another common usage of the rest-posed character is for games. The long pipeline requires the user to have professional skills and a good working knowledge of the external tools chosen to produce the desired final product. Some additional help with various [long pipeline workflows http://www.makehumancommunity.org/wiki/MakeHuman_Workflows] is available. 1e80aef4b3f7ff9b8cd82b742e4579135b929775 44 43 2015-07-01T10:46:03Z Aiena1 3 make titles wikitext text/x-wiki Makehuman was created to provide everyone with specialized software that strives to be the state of the art in a very specific field: the virtual human. The goal is to see it used in two different pipelines or workflows. ===Short Pipeline=== The short pipeline is intended for quick character prototyping and for 2D art. The user defines the character, adds clothes, hair, a pose and expressions, by selecting them from our libraries, and running the render to obtain an image of the character (future goal: indistinguishable from a real photo of him).This output can be used as a character preview, fineart, blueprints, storyboards, comics, illustrations, etc.. No special skill is required from the user. ===Long Pipeline=== The long pipeline is intended to create a 3D character in rest pose for export to external software (Blender, Maya, Max, C4D, etc..) in order to be tweaked, animated and rendered. Another common usage of the rest-posed character is for games. The long pipeline requires the user to have professional skills and a good working knowledge of the external tools chosen to produce the desired final product. f1feaae49140ce770bf1de405ccb4a5242a74ac0 43 2015-07-01T10:45:05Z Aiena1 3 Cre wikitext text/x-wiki Makehuman was created to provide everyone with specialized software that strives to be the state of the art in a very specific field: the virtual human. The goal is to see it used in two different pipelines or workflows. Short Pipeline The short pipeline is intended for quick character prototyping and for 2D art. The user defines the character, adds clothes, hair, a pose and expressions, by selecting them from our libraries, and running the render to obtain an image of the character (future goal: indistinguishable from a real photo of him).This output can be used as a character preview, fineart, blueprints, storyboards, comics, illustrations, etc.. No special skill is required from the user. Long Pipeline The long pipeline is intended to create a 3D character in rest pose for export to external software (Blender, Maya, Max, C4D, etc..) in order to be tweaked, animated and rendered. Another common usage of the rest-posed character is for games. The long pipeline requires the user to have professional skills and a good working knowledge of the external tools chosen to produce the desired final product. 3d07c01e1643bf26e26d821f3997b72d967d2bff Documentation:Skin and other materials 3000 234 1111 694 2016-07-05T17:22:35Z Aranuvir 17 wikitext text/x-wiki ==== Changing Skin Texture ==== By default the human has a texturless skin. Assigning a new skin material is very easy. Go in Materials Tab. You will now see a radio button option for "Skin" under the Human category choices section on the left side of the window. The right side will display available skin materials that can be applied to replace the default skin. By clicking on one of them your character will be displayed with the chosen material. [[File:materials_0.png]] ==== Changing Hair Textures ==== Same process as the skin, but selecting the "hair" radio button instead. The materials available depend by the type of hair loaded. [[File:hair2_0_0.png]] ==== Changing Clothes Textures ==== Changing clothes texture is exactly as the hair one, selecting the cloth type instead of hair. [[File:clothes2_0_0.png]] 0d7dc394d7e9505f598911607cb727e31df0297e 694 2016-05-20T09:05:03Z Joepal 14 Created page with "==== Changing Skin Texture ==== By default the human has a texturless skin. Assigning a new skin material is very easy. Go in Materials Tab. You will now see a radio butt..." wikitext text/x-wiki ==== Changing Skin Texture ==== By default the human has a texturless skin. Assigning a new skin material is very easy. Go in Materials Tab. You will now see a radio button option for "Skin" under the Human category choices section on the left side of the window. The right side will display available skin materials that can be applied to replace the default skin. By clicking on one of them your character will be displayed with the chosen material. !IMAGE!Pictures/materials_0.png!/IMAGE! ==== Changing Hair Textures ==== Same process as the skin, but selecting the "hair" radio button instead. The materials available depend by the type of hair loaded. !IMAGE!Pictures/hair2_0_0.png!/IMAGE! ==== Changing Clothes Textures ==== Changing clothes texture is exactly as the hair one, selecting the cloth type instead of hair. !IMAGE!Pictures/clothes2_0_0.png!/IMAGE! fe478bfeeadd26d71f0ca158875fa4d2d4cbb9ee Documentation:Targets 3000 238 1114 729 2016-07-05T17:28:11Z Aranuvir 17 wikitext text/x-wiki === MakeTarget === This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget, see further down on the page. For the information below to make sense and be useful, you will need to first install BlenderTools. == Introductory videos == If you find this page, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} A longer and somewhat more gentle intro is provided by VScorpianC. If you're new to the subject, it will probably make sense to watch this: {{#ev:youtube|CqH_Ec5NKNE}} == What is a Target? The MakeHuman Morphing Process. == [[File:Morph1.png|left]] The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". <br style="clear:both" /> == Loading the Base Mesh == [[File:maketarget131-area.png|left]] While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. <br style="clear:both" /> == MakeTarget 1.31 == [[File:maketarget131.png|left]] Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file. Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. <br style="clear:both" /> [[File:helper_details.png|left]] [[File:maketarget-base.png|right]] <br style="clear:both" /> == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === [[File:MakeTarget_load.png|left]] After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. <br style="clear:both" /> === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. [[File:maketarget131-panels.png]] [[File:maketarget3.png|right]] At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. <br style="clear:both" /> === Load Target Section (After The First Target Is Loaded) === [[File:MakeTargetLoadSecondaryTarget.png|left]] The three buttons now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. <br style="clear:both" /> === Discard And Apply Target Section === [[File:MakeTargetDiscardAndApplyTarget.png|left]] The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. <br style="clear:both" /> === Symmetry Section === [[File:MakeTargetTargetSymmetryButtons.png|left]] The two buttons in the "Symmetry" section are modelling tools, and are very useful. They have been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. <br style="clear:both" /> === Save Target Section === [[File:MakeTargetSaveTargetSection.png|left]] Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. <br style="clear:both" /> === Additional Fit Helper Buttons === [[File:MakeTargetFitTargetButton.png|left]] [[File:MakeTargetSkirtEditingAffectOnly3.png|left]] When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. <br style="clear:both" /> === MakeTarget standalone === ==== Making Wavefront .obj Files MakeHuman™ Compliant ==== The following procedures should be followed to create Wavefront .obj files that comply with the requirements of MakeHuman™ using modelling software programs such as 3dMax, Maya, XSI, etc. * * Download the 1.x base mesh base.obj file from MakeHuman!LINK!https://bitbucket.org/MakeHuman/makehuman/src/c40af22cebf2d5372b931b485f60588f42f24480/makehuman/data/3dobjs/base.obj?at=default -- HG repository!/LINK! * Import it into your preferred modelling software * Modify it in order to create your final character * Export it as .obj (of course with a different name than base.obj) During editing of the base mesh be careful about 3 things!You have to pay attention that: * The import/export does not alter the number of vertices, the faces, does not split the obj, etc. The topology has to be the same as the original one. * When modifying the base, you do not delete or add vertices, do not add or remove faces, etc. The topology has to be the same as the original one. * The 3D program used also preserves the exact order of the vertices. ==== There are no other limitations on the .obj files used. ==== ==== Making Targets with MakeTarget™ StandAlone ==== ==== Using the MakeTarget GUI program ==== To obtain the MakeTarget GUI program, download and install either the Windows version or the Linux version at the bottom of the download page of the MakeHuman website at: !LINK!http://makehuman.org/content/download.html -- http://makehuman.org/content/download.html!/LINK! Looking at the GUI of MakeTarget, you can notice other elements: the (+) and (-) lists, the possibility to process whole directories and to have .obj as output. These are batch tools, designed for MakeHuman developers. Let’s go on to describe an usual scenario. Assuming you have 30 “chin” targets modelled on the young caucasian female. These targets will create artifacts when applied on a young asian female. So our artists have to process 30 targets in order to create an asian version from all of them. The steps are: * For each chin target, do: asian-female-young.target + chin.target and save the result as .obj. * Import each .obj in a modelling software, fix the artifacts by hand and export the corrected .obj. * For each corrected .obj, subtract the asian-female-young.target and save the rest as asian version of the chin target. For step (1) we will process an entire directory, choosing “Directory” as “input source” and targets as input type. Then we will “add” the asian-female-young.target, loading it in the (+) section. Then will choose “Obj” as “Output type”. [[File:image01.png]] Pressing the “Make” button, the entire folder will be processed, and in the same directory of targets we will see the newly created .objs. At this point, we can copy the folder, renaming it as “chin_fixed” and deleting the original targets. For step (2), we have to import, edit and export each .obj individually, as showed previously for the single target. After completing step (2), all .objs in “chin_fixed” will be fixed and ready to be converted into targets. So, it’s time for step (3). Again, we will process the entire directory, but this time the input type will be “Obj” and the output “Target”. Also, this time we will subtract the asian target, in order to obtain only the chin morph. [[File:image00.png]] Pressing the “make” button, this time we will obtain a series of .target, with the same name as the original objs, placed in the “chin_fixed” folder. That’s all! ==== Command Line Usage ==== This tool allows wavefront .obj files to be used that were edited using any 3D program. The only limitations are that the edit stems from the original base.obj file and that no vertices, edges or faces are added or removed. The 3D program used also needs to preserve the exact order of the vertices. There are no other limitations on the obj files used. Usage: There are a commandline version and a version with graphic user interface. Both do exactly the same thing. Here follows the explanation of how to use the commandline version. Options: -i --in input obj or target -o --out output obj or target -s --sub target to subtract from obj -a --add target to add to obj -d --dir input folder to load all objs or targets from --intype type of file to be input, obj (default) or target only applicable if --dir is used --outtype type of file that will be output, obj or target (default) -h --help this info -v --verbose verbose mode, shows extra information Usage scenarios: Load foo.obj as input, compare it with base.obj and output the difference as foo.target. Load foo.obj, subtract foo1.target from it, and output the difference between the resulting obj and base.obj as foo.target. Load foo.obj, add foo1.target to it, and output the difference between the resulting obj and base.obj as foo.target. Load all objs from myfolder, save the difference between the base.obj and each of the input objs to a target file with the same name as the input obj. Load all objs from myfolder, subtract foo1.target from each of them, and save the difference between base.obj and each of the resulting objs to a target file with the same name as the input obj. Load all objs from myfolder, add foo1.target to each of them, and save the difference between base.obj and each of the resulting objs to a target file with the same name as the input obj. Load foo.target, apply it to base.obj and output the resulting obj as foo.obj. Load all target files from myfolder, apply each of them to base.obj and save the result of each to obj with the same name as the target file. Load all target files in myfolder, apply each of them to base.obj while also subtracting foo1.target from the result. Save each combination to an obj with the same name as the input target. Load all target files in myfolder, apply each of them to base.obj while also adding foo1.target to the result. Save each combination to an obj with the same name as the input target. This is the usage information as can be obtained by running the "maketarget.py --help" command. Some additional scenarios that are not documented are possible with the tool. The user is protected from issuing commands that make no sense (eg. do nothing) as the tool will warn you about this. Also note that files are never overwritten. Upon encountering an already existing file this file is backed up as original_filename.bak. Additional backups of the same file are named in order original_filename.bak.0 original_filename.bak.1 etc. The GUI version of the tool does exactly the same thing. The exact same options (except help and verbose) are available in the GUI. The only difference between commandline and GUI version is that the GUI demands you specify an --in or --dir parameter. With the commandline tool you can do without as long as you specify some --add or --sub targets. ==== Compiling Binaries ==== For the ease of distribution a pyinstaller configuration is supplied to create a self-contained binary executable for both windows and linux. (MAC OS might work but is untested). For running this executable, the user does not need to install python or any other libraries (such as wxwidgets) on his computer. For building the package, however, you need to have those dependencies installed, and need to build the package on the target OS. There are two build files available: * compilePyinstaller.bat,for building a windows executable * compilePyinstaller.sh for building a linux executable (might work for OSX too) In order to use them you need to create a folder called "pyinstaller" in the makehuman/tools/standalone/maketarget folder. The build configs were tested with pyinstaller 1.5.1, but might work on future or older versions too. Additionally these dependencies are needed for the respective operating systems: Windows: * Python 2.7 !LINK!http://python.org/ -- http://python.org/!/LINK! I recommend using python 2.7 as I had issues with 2.6 and pyinstaller. The tool works fine with python 2.6, however * pywin32 !LINK!http://sourceforge.net/projects/pywin32/ -- http://sourceforge.net/projects/pywin32/!/LINK! Python extensions for windows. Needed for pyinstaller to work. * wxpython2.8 !LINK!http://www.wxpython.org/ -- http://www.wxpython.org/!/LINK! WX Widgets libraries and python wrappers for windows. Installable as one singe package.I recommend using the wxPython2.8 win32 unicode package for python 2.7. * UPX (optional) !LINK!http://upx.sourceforge.net/ -- http://upx.sourceforge.net/!/LINK! This is a tool for compressing the executable and reduce its size. Compression will happen automatically if UPX is installed. To install UPX copy upx.exe to C:\WINDOWS\system32 Note: you will need at least UPX 1.92 beta due to incompatibilites with the Visual Studio compiler, with which newer versions of python are compiled on windows. Linux: * Python 2.6 !LINK!http://python.org/ -- http://python.org/!/LINK! Version 2.7 works fine too. * python-wxgtk2.8 * libwxgtk2.8 !LINK!http://www.wxpython.org/ -- http://www.wxpython.org/!/LINK! !LINK!http://www.wxwidgets.org/ -- http://www.wxwidgets.org/!/LINK! WX Widgets libraries and python wrappers for wx * UPX (optional) !LINK!http://upx.sourceforge.net/ -- http://upx.sourceforge.net/!/LINK! This is a tool for compressing the executable and reduce its size. Compression will happen automatically if UPX is installed The pyinstaller script will create all the files that need to be distributed in a folder called dist/ (this will be an .xrc file, the executable, and a resources/ folder containing images used in the GUI). You can archive the contents of the dist/ folder and distribute these freely as a standalone application. === wxWidgets specific information === The GUI of this tool has been made using the python version of wxWidgets. The GUI form itself is not created using application code, but is instead loaded from the maketarget.xrc file that declares the GUI. This file was built using wxFormBuilder (!LINK!http://wxformbuilder.org/ -- http://wxformbuilder.org/!/LINK!). The file maketarget_gui.fbp is the source file that can be opened in formbuilder. The xrc file is output generated using the formbuilder application. However, the xrc could be edited manually too (but this would cause fbp and xrc file to go out of sync). === More information === For more specific details you can contact the author Jonas Hauquier at the makehuman.org website. === MHBlenderTools: MakeTarget === ==== What is a Target? The MakeHuman Morphing Process. ==== The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. [[File:morph1.png]] A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format,.target. ==== Loading the Base Mesh ==== While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. [[File:maketarget131-area.png]] The MakeTarge™ Version 1.31 Panel (Initial Settings) [[File:maketarget131.png]] Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file [[File:helper_details.png]] Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. [[File:maketarget-base.png]] ==== Basic usage ==== === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === [[File:MakeTarget_load.png]] After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™base. === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. ==== Advanced usage ==== === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. [[File:maketarget131-panels.png]] At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image below beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. [[File:maketarget3.png]] === Load Target Section (After The First Target Is Loaded) === [[File:MakeTargetLoadSecondaryTarget.png]] The three buttons that now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. === Discard And Apply Target Section === [[File:MakeTargetDiscardAndApplyTarget.png]] The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. === Symmetry Section === [[File:MakeTargetTargetSymmetryButtons.png]] The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === [[File:MakeTargetSaveTargetSection.png]] Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === [[File:MakeTargetFitTargetButton.png]] [[File:MakeTargetSkirtEditingAffectOnly3.png]] When the fit helpers have been included as part of the target, the additional options of the MakeTarget™panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. 7e0a2055c18d2d561d873d17549271836edacf40 729 702 2016-05-20T11:40:56Z Joepal 14 wikitext text/x-wiki === MakeTarget === This section describes the blender version of MakeTarget. There is also a standalone version of MakeTarget, see further down on the page. For the information below to make sense and be useful, you will need to first install BlenderTools. == Introductory videos == If you find this page, this is a youtube video which might be useful: {{#ev:youtube|X13k7H3dNHo}} A longer and somewhat more gentle intro is provided by VScorpianC. If you're new to the subject, it will probably make sense to watch this: {{#ev:youtube|CqH_Ec5NKNE}} == What is a Target? The MakeHuman Morphing Process. == [[File:Morph1.png|left]] The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format, ".target". <br style="clear:both" /> == Loading the Base Mesh == [[File:maketarget131-area.png|left]] While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. <br style="clear:both" /> == MakeTarget 1.31 == [[File:maketarget131.png|left]] Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file. Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. <br style="clear:both" /> [[File:helper_details.png|left]] [[File:maketarget-base.png|right]] <br style="clear:both" /> == Basic usage == === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === [[File:MakeTarget_load.png|left]] After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™ base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™ base. <br style="clear:both" /> === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. == Advanced usage == === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. [[File:maketarget131-panels.png]] [[File:maketarget3.png|right]] At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. <br style="clear:both" /> === Load Target Section (After The First Target Is Loaded) === [[File:MakeTargetLoadSecondaryTarget.png|left]] The three buttons now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. <br style="clear:both" /> === Discard And Apply Target Section === [[File:MakeTargetDiscardAndApplyTarget.png|left]] The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. <br style="clear:both" /> === Symmetry Section === [[File:MakeTargetTargetSymmetryButtons.png|left]] The two buttons in the "Symmetry" section are modelling tools, and are very useful. They have been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. <br style="clear:both" /> === Save Target Section === [[File:MakeTargetSaveTargetSection.png|left]] Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. <br style="clear:both" /> === Additional Fit Helper Buttons === [[File:MakeTargetFitTargetButton.png|left]] [[File:MakeTargetSkirtEditingAffectOnly3.png|left]] When the fit helpers have been included as part of the target, the additional options of the MakeTarget™ panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. <br style="clear:both" /> === MakeTarget standalone === ==== Making Wavefront .obj Files MakeHuman™ Compliant ==== The following procedures should be followed to create Wavefront .obj files that comply with the requirements of MakeHuman™ using modelling software programs such as 3dMax, Maya, XSI, etc. * * Download the 1.x base mesh base.obj file from MakeHuman!LINK!https://bitbucket.org/MakeHuman/makehuman/src/c40af22cebf2d5372b931b485f60588f42f24480/makehuman/data/3dobjs/base.obj?at=default -- HG repository!/LINK! * Import it into your preferred modelling software * Modify it in order to create your final character * Export it as .obj (of course with a different name than base.obj) During editing of the base mesh be careful about 3 things!You have to pay attention that: * The import/export does not alter the number of vertices, the faces, does not split the obj, etc. The topology has to be the same as the original one. * When modifying the base, you do not delete or add vertices, do not add or remove faces, etc. The topology has to be the same as the original one. * The 3D program used also preserves the exact order of the vertices. ==== There are no other limitations on the .obj files used. ==== ==== Making Targets with MakeTarget™ StandAlone ==== ==== Using the MakeTarget GUI program ==== To obtain the MakeTarget GUI program, download and install either the Windows version or the Linux version at the bottom of the download page of the MakeHuman website at: !LINK!http://makehuman.org/content/download.html -- http://makehuman.org/content/download.html!/LINK! Looking at the GUI of MakeTarget, you can notice other elements: the (+) and (-) lists, the possibility to process whole directories and to have .obj as output. These are batch tools, designed for MakeHuman developers. Let’s go on to describe an usual scenario. Assuming you have 30 “chin” targets modelled on the young caucasian female. These targets will create artifacts when applied on a young asian female. So our artists have to process 30 targets in order to create an asian version from all of them. The steps are: * For each chin target, do: asian-female-young.target + chin.target and save the result as .obj. * Import each .obj in a modelling software, fix the artifacts by hand and export the corrected .obj. * For each corrected .obj, subtract the asian-female-young.target and save the rest as asian version of the chin target. For step (1) we will process an entire directory, choosing “Directory” as “input source” and targets as input type. Then we will “add” the asian-female-young.target, loading it in the (+) section. Then will choose “Obj” as “Output type”. !IMAGE!Pictures/image01.png!/IMAGE! Pressing the “Make” button, the entire folder will be processed, and in the same directory of targets we will see the newly created .objs. At this point, we can copy the folder, renaming it as “chin_fixed” and deleting the original targets. For step (2), we have to import, edit and export each .obj individually, as showed previously for the single target. After completing step (2), all .objs in “chin_fixed” will be fixed and ready to be converted into targets. So, it’s time for step (3). Again, we will process the entire directory, but this time the input type will be “Obj” and the output “Target”. Also, this time we will subtract the asian target, in order to obtain only the chin morph. !IMAGE!Pictures/image00.png!/IMAGE! Pressing the “make” button, this time we will obtain a series of .target, with the same name as the original objs, placed in the “chin_fixed” folder. That’s all! ==== Command Line Usage ==== This tool allows wavefront .obj files to be used that were edited using any 3D program. The only limitations are that the edit stems from the original base.obj file and that no vertices, edges or faces are added or removed. The 3D program used also needs to preserve the exact order of the vertices. There are no other limitations on the obj files used. Usage: There are a commandline version and a version with graphic user interface. Both do exactly the same thing. Here follows the explanation of how to use the commandline version. Options: -i --in input obj or target -o --out output obj or target -s --sub target to subtract from obj -a --add target to add to obj -d --dir input folder to load all objs or targets from --intype type of file to be input, obj (default) or target only applicable if --dir is used --outtype type of file that will be output, obj or target (default) -h --help this info -v --verbose verbose mode, shows extra information Usage scenarios: Load foo.obj as input, compare it with base.obj and output the difference as foo.target. Load foo.obj, subtract foo1.target from it, and output the difference between the resulting obj and base.obj as foo.target. Load foo.obj, add foo1.target to it, and output the difference between the resulting obj and base.obj as foo.target. Load all objs from myfolder, save the difference between the base.obj and each of the input objs to a target file with the same name as the input obj. Load all objs from myfolder, subtract foo1.target from each of them, and save the difference between base.obj and each of the resulting objs to a target file with the same name as the input obj. Load all objs from myfolder, add foo1.target to each of them, and save the difference between base.obj and each of the resulting objs to a target file with the same name as the input obj. Load foo.target, apply it to base.obj and output the resulting obj as foo.obj. Load all target files from myfolder, apply each of them to base.obj and save the result of each to obj with the same name as the target file. Load all target files in myfolder, apply each of them to base.obj while also subtracting foo1.target from the result. Save each combination to an obj with the same name as the input target. Load all target files in myfolder, apply each of them to base.obj while also adding foo1.target to the result. Save each combination to an obj with the same name as the input target. This is the usage information as can be obtained by running the "maketarget.py --help" command. Some additional scenarios that are not documented are possible with the tool. The user is protected from issuing commands that make no sense (eg. do nothing) as the tool will warn you about this. Also note that files are never overwritten. Upon encountering an already existing file this file is backed up as original_filename.bak. Additional backups of the same file are named in order original_filename.bak.0 original_filename.bak.1 etc. The GUI version of the tool does exactly the same thing. The exact same options (except help and verbose) are available in the GUI. The only difference between commandline and GUI version is that the GUI demands you specify an --in or --dir parameter. With the commandline tool you can do without as long as you specify some --add or --sub targets. ==== Compiling Binaries ==== For the ease of distribution a pyinstaller configuration is supplied to create a self-contained binary executable for both windows and linux. (MAC OS might work but is untested). For running this executable, the user does not need to install python or any other libraries (such as wxwidgets) on his computer. For building the package, however, you need to have those dependencies installed, and need to build the package on the target OS. There are two build files available: * compilePyinstaller.bat,for building a windows executable * compilePyinstaller.sh for building a linux executable (might work for OSX too) In order to use them you need to create a folder called "pyinstaller" in the makehuman/tools/standalone/maketarget folder. The build configs were tested with pyinstaller 1.5.1, but might work on future or older versions too. Additionally these dependencies are needed for the respective operating systems: Windows: * Python 2.7 !LINK!http://python.org/ -- http://python.org/!/LINK! I recommend using python 2.7 as I had issues with 2.6 and pyinstaller. The tool works fine with python 2.6, however * pywin32 !LINK!http://sourceforge.net/projects/pywin32/ -- http://sourceforge.net/projects/pywin32/!/LINK! Python extensions for windows. Needed for pyinstaller to work. * wxpython2.8 !LINK!http://www.wxpython.org/ -- http://www.wxpython.org/!/LINK! WX Widgets libraries and python wrappers for windows. Installable as one singe package.I recommend using the wxPython2.8 win32 unicode package for python 2.7. * UPX (optional) !LINK!http://upx.sourceforge.net/ -- http://upx.sourceforge.net/!/LINK! This is a tool for compressing the executable and reduce its size. Compression will happen automatically if UPX is installed. To install UPX copy upx.exe to C:\WINDOWS\system32 Note: you will need at least UPX 1.92 beta due to incompatibilites with the Visual Studio compiler, with which newer versions of python are compiled on windows. Linux: * Python 2.6 !LINK!http://python.org/ -- http://python.org/!/LINK! Version 2.7 works fine too. * python-wxgtk2.8 * libwxgtk2.8 !LINK!http://www.wxpython.org/ -- http://www.wxpython.org/!/LINK! !LINK!http://www.wxwidgets.org/ -- http://www.wxwidgets.org/!/LINK! WX Widgets libraries and python wrappers for wx * UPX (optional) !LINK!http://upx.sourceforge.net/ -- http://upx.sourceforge.net/!/LINK! This is a tool for compressing the executable and reduce its size. Compression will happen automatically if UPX is installed The pyinstaller script will create all the files that need to be distributed in a folder called dist/ (this will be an .xrc file, the executable, and a resources/ folder containing images used in the GUI). You can archive the contents of the dist/ folder and distribute these freely as a standalone application. === wxWidgets specific information === The GUI of this tool has been made using the python version of wxWidgets. The GUI form itself is not created using application code, but is instead loaded from the maketarget.xrc file that declares the GUI. This file was built using wxFormBuilder (!LINK!http://wxformbuilder.org/ -- http://wxformbuilder.org/!/LINK!). The file maketarget_gui.fbp is the source file that can be opened in formbuilder. The xrc file is output generated using the formbuilder application. However, the xrc could be edited manually too (but this would cause fbp and xrc file to go out of sync). === More information === For more specific details you can contact the author Jonas Hauquier at the makehuman.org website. === MHBlenderTools: MakeTarget === ==== What is a Target? The MakeHuman Morphing Process. ==== The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. !IMAGE!Pictures/morph1.png!/IMAGE! A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format,.target. ==== Loading the Base Mesh ==== While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. !IMAGE!Pictures/maketarget131-area.png!/IMAGE! The MakeTarge™ Version 1.31 Panel (Initial Settings) !IMAGE!Pictures/maketarget131.png!/IMAGE! Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file !IMAGE!Pictures/helper_details.png!/IMAGE! Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. !IMAGE!Pictures/maketarget-base.png!/IMAGE! ==== Basic usage ==== === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === !IMAGE!Pictures/MakeTarget_load.png!/IMAGE! After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™base. === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. ==== Advanced usage ==== === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. !IMAGE!Pictures/maketarget131-panels.png!/IMAGE! At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image below beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. !IMAGE!Pictures/maketarget3.png!/IMAGE! === Load Target Section (After The First Target Is Loaded) === !IMAGE!Pictures/MakeTargetLoadSecondaryTarget.png!/IMAGE! The three buttons that now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. === Discard And Apply Target Section === !IMAGE!Pictures/MakeTargetDiscardAndApplyTarget.png!/IMAGE! The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. === Symmetry Section === !IMAGE!Pictures/MakeTargetTargetSymmetryButtons.png!/IMAGE! The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === !IMAGE!Pictures/MakeTargetSaveTargetSection.png!/IMAGE! Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === !IMAGE!Pictures/MakeTargetFitTargetButton.png!/IMAGE! !IMAGE!Pictures/MakeTargetSkirtEditingAffectOnly3.png!/IMAGE! When the fit helpers have been included as part of the target, the additional options of the MakeTarget™panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. 9cf9c119e0555f2707b0bb7911c25a7e3f30ab1c 702 2016-05-20T11:08:22Z Joepal 14 Created page with "=== MakeTarget standalone === ==== Making Wavefront .obj Files MakeHuman™ Compliant ==== The following procedures should be followed to create Wavefront .obj files that co..." wikitext text/x-wiki === MakeTarget standalone === ==== Making Wavefront .obj Files MakeHuman™ Compliant ==== The following procedures should be followed to create Wavefront .obj files that comply with the requirements of MakeHuman™ using modelling software programs such as 3dMax, Maya, XSI, etc. * * Download the 1.x base mesh base.obj file from MakeHuman!LINK!https://bitbucket.org/MakeHuman/makehuman/src/c40af22cebf2d5372b931b485f60588f42f24480/makehuman/data/3dobjs/base.obj?at=default -- HG repository!/LINK! * Import it into your preferred modelling software * Modify it in order to create your final character * Export it as .obj (of course with a different name than base.obj) During editing of the base mesh be careful about 3 things!You have to pay attention that: * The import/export does not alter the number of vertices, the faces, does not split the obj, etc. The topology has to be the same as the original one. * When modifying the base, you do not delete or add vertices, do not add or remove faces, etc. The topology has to be the same as the original one. * The 3D program used also preserves the exact order of the vertices. ==== There are no other limitations on the .obj files used. ==== ==== Making Targets with MakeTarget™ StandAlone ==== ==== Using the MakeTarget GUI program ==== To obtain the MakeTarget GUI program, download and install either the Windows version or the Linux version at the bottom of the download page of the MakeHuman website at: !LINK!http://makehuman.org/content/download.html -- http://makehuman.org/content/download.html!/LINK! Looking at the GUI of MakeTarget, you can notice other elements: the (+) and (-) lists, the possibility to process whole directories and to have .obj as output. These are batch tools, designed for MakeHuman developers. Let’s go on to describe an usual scenario. Assuming you have 30 “chin” targets modelled on the young caucasian female. These targets will create artifacts when applied on a young asian female. So our artists have to process 30 targets in order to create an asian version from all of them. The steps are: * For each chin target, do: asian-female-young.target + chin.target and save the result as .obj. * Import each .obj in a modelling software, fix the artifacts by hand and export the corrected .obj. * For each corrected .obj, subtract the asian-female-young.target and save the rest as asian version of the chin target. For step (1) we will process an entire directory, choosing “Directory” as “input source” and targets as input type. Then we will “add” the asian-female-young.target, loading it in the (+) section. Then will choose “Obj” as “Output type”. !IMAGE!Pictures/image01.png!/IMAGE! Pressing the “Make” button, the entire folder will be processed, and in the same directory of targets we will see the newly created .objs. At this point, we can copy the folder, renaming it as “chin_fixed” and deleting the original targets. For step (2), we have to import, edit and export each .obj individually, as showed previously for the single target. After completing step (2), all .objs in “chin_fixed” will be fixed and ready to be converted into targets. So, it’s time for step (3). Again, we will process the entire directory, but this time the input type will be “Obj” and the output “Target”. Also, this time we will subtract the asian target, in order to obtain only the chin morph. !IMAGE!Pictures/image00.png!/IMAGE! Pressing the “make” button, this time we will obtain a series of .target, with the same name as the original objs, placed in the “chin_fixed” folder. That’s all! ==== Command Line Usage ==== This tool allows wavefront .obj files to be used that were edited using any 3D program. The only limitations are that the edit stems from the original base.obj file and that no vertices, edges or faces are added or removed. The 3D program used also needs to preserve the exact order of the vertices. There are no other limitations on the obj files used. Usage: There are a commandline version and a version with graphic user interface. Both do exactly the same thing. Here follows the explanation of how to use the commandline version. Options: -i --in input obj or target -o --out output obj or target -s --sub target to subtract from obj -a --add target to add to obj -d --dir input folder to load all objs or targets from --intype type of file to be input, obj (default) or target only applicable if --dir is used --outtype type of file that will be output, obj or target (default) -h --help this info -v --verbose verbose mode, shows extra information Usage scenarios: Load foo.obj as input, compare it with base.obj and output the difference as foo.target. Load foo.obj, subtract foo1.target from it, and output the difference between the resulting obj and base.obj as foo.target. Load foo.obj, add foo1.target to it, and output the difference between the resulting obj and base.obj as foo.target. Load all objs from myfolder, save the difference between the base.obj and each of the input objs to a target file with the same name as the input obj. Load all objs from myfolder, subtract foo1.target from each of them, and save the difference between base.obj and each of the resulting objs to a target file with the same name as the input obj. Load all objs from myfolder, add foo1.target to each of them, and save the difference between base.obj and each of the resulting objs to a target file with the same name as the input obj. Load foo.target, apply it to base.obj and output the resulting obj as foo.obj. Load all target files from myfolder, apply each of them to base.obj and save the result of each to obj with the same name as the target file. Load all target files in myfolder, apply each of them to base.obj while also subtracting foo1.target from the result. Save each combination to an obj with the same name as the input target. Load all target files in myfolder, apply each of them to base.obj while also adding foo1.target to the result. Save each combination to an obj with the same name as the input target. This is the usage information as can be obtained by running the "maketarget.py --help" command. Some additional scenarios that are not documented are possible with the tool. The user is protected from issuing commands that make no sense (eg. do nothing) as the tool will warn you about this. Also note that files are never overwritten. Upon encountering an already existing file this file is backed up as original_filename.bak. Additional backups of the same file are named in order original_filename.bak.0 original_filename.bak.1 etc. The GUI version of the tool does exactly the same thing. The exact same options (except help and verbose) are available in the GUI. The only difference between commandline and GUI version is that the GUI demands you specify an --in or --dir parameter. With the commandline tool you can do without as long as you specify some --add or --sub targets. ==== Compiling Binaries ==== For the ease of distribution a pyinstaller configuration is supplied to create a self-contained binary executable for both windows and linux. (MAC OS might work but is untested). For running this executable, the user does not need to install python or any other libraries (such as wxwidgets) on his computer. For building the package, however, you need to have those dependencies installed, and need to build the package on the target OS. There are two build files available: * compilePyinstaller.bat,for building a windows executable * compilePyinstaller.sh for building a linux executable (might work for OSX too) In order to use them you need to create a folder called "pyinstaller" in the makehuman/tools/standalone/maketarget folder. The build configs were tested with pyinstaller 1.5.1, but might work on future or older versions too. Additionally these dependencies are needed for the respective operating systems: Windows: * Python 2.7 !LINK!http://python.org/ -- http://python.org/!/LINK! I recommend using python 2.7 as I had issues with 2.6 and pyinstaller. The tool works fine with python 2.6, however * pywin32 !LINK!http://sourceforge.net/projects/pywin32/ -- http://sourceforge.net/projects/pywin32/!/LINK! Python extensions for windows. Needed for pyinstaller to work. * wxpython2.8 !LINK!http://www.wxpython.org/ -- http://www.wxpython.org/!/LINK! WX Widgets libraries and python wrappers for windows. Installable as one singe package.I recommend using the wxPython2.8 win32 unicode package for python 2.7. * UPX (optional) !LINK!http://upx.sourceforge.net/ -- http://upx.sourceforge.net/!/LINK! This is a tool for compressing the executable and reduce its size. Compression will happen automatically if UPX is installed. To install UPX copy upx.exe to C:\WINDOWS\system32 Note: you will need at least UPX 1.92 beta due to incompatibilites with the Visual Studio compiler, with which newer versions of python are compiled on windows. Linux: * Python 2.6 !LINK!http://python.org/ -- http://python.org/!/LINK! Version 2.7 works fine too. * python-wxgtk2.8 * libwxgtk2.8 !LINK!http://www.wxpython.org/ -- http://www.wxpython.org/!/LINK! !LINK!http://www.wxwidgets.org/ -- http://www.wxwidgets.org/!/LINK! WX Widgets libraries and python wrappers for wx * UPX (optional) !LINK!http://upx.sourceforge.net/ -- http://upx.sourceforge.net/!/LINK! This is a tool for compressing the executable and reduce its size. Compression will happen automatically if UPX is installed The pyinstaller script will create all the files that need to be distributed in a folder called dist/ (this will be an .xrc file, the executable, and a resources/ folder containing images used in the GUI). You can archive the contents of the dist/ folder and distribute these freely as a standalone application. === wxWidgets specific information === The GUI of this tool has been made using the python version of wxWidgets. The GUI form itself is not created using application code, but is instead loaded from the maketarget.xrc file that declares the GUI. This file was built using wxFormBuilder (!LINK!http://wxformbuilder.org/ -- http://wxformbuilder.org/!/LINK!). The file maketarget_gui.fbp is the source file that can be opened in formbuilder. The xrc file is output generated using the formbuilder application. However, the xrc could be edited manually too (but this would cause fbp and xrc file to go out of sync). === More information === For more specific details you can contact the author Jonas Hauquier at the makehuman.org website. === MHBlenderTools: MakeTarget === ==== What is a Target? The MakeHuman Morphing Process. ==== The principle is simple. A target is a modifcation to a base mesh shape that does not alter the mesh itself but that stores information that permits the base mesh to be transformed into the target shape using ‘morphing’. Targets are what allow the slider controls in MakeHuman™ to take a single base mesh for a character and morph the shape of that character based on a variety of different feature target files. The many target files used by MakeHuman™ can alter a single human base form into characters with features as different as those distinguishing male from female to as subtle as varying the shape of a single earlobe. !IMAGE!Pictures/morph1.png!/IMAGE! A target contains the offsets by which vertices of the human base model (base.obj) deviate from the original to achieve a specific feature. eg. a long nose could be a target. These targets can be combined and MakeHuman™ uses them by blending targets together and gradually applying them to the base mesh to create a nearly endless variety of human forms. Below are examples of target blending obtained by choosing a target that defined the character as male and combining that target with the extreme settings for other targets that determned the muscle tone or weight of the character. MakeHuman™ handles morphing with a special file format,.target. ==== Loading the Base Mesh ==== While it is possible to create targets using Blender without using the MakeTarget™ tool for Blender; that tool has many useful features that simplify the target creation process and will be explained by the help that follows. Once the MakeTarget™ add-on has been enabled (see the previous "Get and Install MH Addons for Blender" section), a panel labelled MakeTarget™ version 1.xx appears in theBlender User Interface, to the right of the viewport. The visibility of the Blender User Interface can be toggled on and off with the N-key. !IMAGE!Pictures/maketarget131-area.png!/IMAGE! The MakeTarge™ Version 1.31 Panel (Initial Settings) !IMAGE!Pictures/maketarget131.png!/IMAGE! Prior to loading any targets, the initial the MakeTarget™ panel consists of three main buttons. The first two buttons load the base human mesh, respectively with and without the special fitting tools. The third button labeled "Set As Base" sets an existing mesh (that must be MakeHuman™compliant and derived from the A8_v74.obj file distributed with the MakeTarget™ release within the maketarget/data/ folder) as a human base mesh. This third option is for users that have done editing of the base mesh in another 3D modelling program and that have saved or exported the model as a Wavefront .obj file !IMAGE!Pictures/helper_details.png!/IMAGE! Loading the "Human + Fit Tools" will import the base human +mesh helpers(image below, B). The "helpers" are special geometries, used in MakeHuman™ as a reference to correctly fit clothes, hair and accessories. These helpers can be annoying during the modelling of the character, so usually our artists first work on the pure body, loading the human only with the first button (image below, A), and then, in a successive step, they fit the helpers. !IMAGE!Pictures/maketarget-base.png!/IMAGE! ==== Basic usage ==== === The MakeTarget™ Version 1.09 Panel (After Loading The Target Mesh) === !IMAGE!Pictures/MakeTarget_load.png!/IMAGE! After the mesh is loaded into the scene, the MakeTarget™panel layout will change, showing three new buttons that handle setting up the morphing targets. The first button creates a new empty target which will just be the original base mesh loaded in the previous step. The second button loads the morphing from an existing target file. Do not attempt to load target files from the previous MakeHuman™versions, as these files are not compatible with the current base. The third button creates a new target from an existing base mesh that is MakeHuman™compliant (derived from the A8_v74.obj file provided with the MakeTarget™release distribution), for example, a character modelled with an external tool (Maya, Max, C4D, etc..) and then saved or exported so that it can be imported into Blender as a wavefront obj file. To correctly use the third button, it is necessary to first select the imported base, then the MakeHuman™base, and then press the Load Target From Mesh button. When the steps have been done correctly and that button is pressed the imported base will disappear and its transformations will be transferred onto the MakeHuman™base. === Editing The Target And The "Save Target As" Button === After a new empty target is initialized or an existing one is loaded/imported, the MakeTarget™ panel layout will change again, offering a rich set of new options (image below). For the basic use of the MakeTarget™ tool you may ignore all of these options except for the "Save Target As" button. To create a custom target, the artist has to alter the base mesh, which is done in the usual way within Blender. First start edit mode, and then select one or more vertices, moving them to reshape the mesh. You may use the full power of Blender to create your morphing target design.The only rule, in order to create a valid morphing target, is to never add or delete a vertex, face or edge. The topology must be absolutely preserved.After the modelling process is completed, the MakeHuman™morphing target can be saved by pressing the "Save Target As" button on the MakeTarget™panel. By default this will save all of the offset deviations of every vertice from the base mesh into the target file. ==== Advanced usage ==== === The MakeTarget™Version 1.09 Panel (After Loading A Target) === During the creation or the editing of a target, as mentioned previously, the MakeTarget™panel shows a new layout with a rich set of options. Depending on whether the mesh is loaded without the fit tools (image below, left) or with the fit tools (image below, right), the panel offers different options. !IMAGE!Pictures/maketarget131-panels.png!/IMAGE! At the top of the panel there is a numeric slider that determines the amount of morphing to apply from the target. The maximum value is 1.0, which means that the target morphing is fully applied. A value of 0 will show the original base mesh without any target morphing. The minimum value of the slider is -1.0. Using negative values usually creates weird effects as a projected inverse of the target morph is applied, but these settings are useful to subtract unwanted morphing results when multiple targets are combined. The effect is shown in the image below beginning on the left with the full inverse of the morphing target, to the original base mesh in the middle, and finally to the fully applied morph target design on the right. !IMAGE!Pictures/maketarget3.png!/IMAGE! === Load Target Section (After The First Target Is Loaded) === !IMAGE!Pictures/MakeTargetLoadSecondaryTarget.png!/IMAGE! The three buttons that now in the "Load Target" section are used in exactly the same way as they were before any target was loaded, except that any targets that are now created or loaded with these buttons become a secondary target that can be applied to the previously loaded one. These buttons are used to append one or more additional targets to the first target and combine them in various proportions. === Discard And Apply Target Section === !IMAGE!Pictures/MakeTargetDiscardAndApplyTarget.png!/IMAGE! The first two buttons under the "Discard And Apply Target" section will either discard all of the targets (returning you to the original base mesh) or only the last target appended (which will either be the last secondary target applied or the primary target if no secondary targets have been applied). The button "Apply targets" under the "Discard And Apply Target" section is used to join all targets into a single unique morphing target combination. === Symmetry Section === !IMAGE!Pictures/MakeTargetTargetSymmetryButtons.png!/IMAGE! The two buttons in the "Symmetry" section are modelling tools, and are very useful. They has been designed to produce very reliable target results. Using the symmetry buttons will cause the mesh to become symetrical on either side of the X axis, with the option to apply edits from the left side of the character to the right side (Left->Right), or vice versa (Right->Left). Pressing these buttons will also align center vertices that have been unintentionally moved away from the center back to their center position. === Save Target Section === !IMAGE!Pictures/MakeTargetSaveTargetSection.png!/IMAGE! Finally, press the "Save Target As" button to save the .target file once all secondary targets and edits have been completed. The checkbox labeled "Selected verts only" is a very important option. This option when checked will permit you to select a set of vertices in edit mode and then save only those vertices into the target file. Such targets are useful when you want the target to only morph the selected vertices and leave all other vertices completely unaffected by the morphing target. For example, an artist could design a morphing target that is limited to the hands only, a single hand only, or to the head only, and save a target containing vertices that will only morph those body parts, while having no effect on other parts of the body that were not explicitly chosen by the artist. The checkbox labeled "Active Target Only" will cause the "Save Target As" button to only save the last target only. This option normally applies when one or more secondary targets have been added using the Load Target section after adding the initial target. === Additional Fit Helper Buttons === !IMAGE!Pictures/MakeTargetFitTargetButton.png!/IMAGE! !IMAGE!Pictures/MakeTargetSkirtEditingAffectOnly3.png!/IMAGE! When the fit helpers have been included as part of the target, the additional options of the MakeTarget™panel shown in the images above appear. These buttons are included to work with the helper objects. When the helpers have been loaded, an additional button labeled "Fit Targets" is available under the Load Target section. This button should be pressed after making alterations to the body that disconnect it from the helper objects, but prior to making modifications to those objects. This button will refit the clothing to the body, and if pressed when the default All option under the "Affect Only: section is selected, all clothing helpers will be refitted to the body. However, the refitting process will cause any modifications previously made to a refitted helper objects to be lost. To limit the Fit Target button behavior to a single helper object, you should specify the object that you want to have refitted under the Affects Only section appearing at the bottom of the panel. This will cause the refitting to only affect the chosen helper (for example the Hair), while leaving all other helper objects unaffected, preserving your edit modifications to those helpers (for example, the Tights and Skirt helpers will not be refitted and your modifications to those helpers will be preserved if the Hair Affects Only option is set). The additional helper options also include buttons that improve the fit of the skirt specifically by snapping the skirt to the character's waist ("Snap Skirt Waist" button) or straightening the skirt ("Straighten Skirt" button). It is recommended that you still select the Skirt as the Affects Only option prior to pressing either of these buttons. c6dcf074131a80f82af789c9f37b72272fbec7ef Documentation:TargetsV2 3000 688 2125 2124 2022-02-22T14:30:41Z Robbaer 12 /* Before using the program */ wikitext text/x-wiki === Before using the program === MakeTarget Version 2 is created to work with Blender 2.83 LTS or newer. It is used to create custom targets for the body. A target (also called a morph or morphing) a change of the 3d shape. It is used to create morphes or target for the MakeHuman basemesh. This Blender plug-in can also be used to correct existing MakeHuman targets. More exactly, a target in MakeHuman is a table of changed vertices. It is an ASCII file containing 3 values that describe how each vertex should be moved. Target files are obviously derived from Blender shape keys. Thus, the workflow includes the creation of a new shape key in Blender as well. There is a difference between Blender shape keys and MakeHuman targets in that Blender internally creates a copy of the complete mesh, even when you only change one vertex; whereas, a MakeHuman target only contains the changed vertices. Before a new target is created, the following questions should be answered: * Is the target designed to only change parts of the body like ears or lips that are not covered by clothes and where bones will not be stretched or relocated? If this is the case, it is sufficient to work only with the body mesh. * Is the target designed to also change parts covered by clothes and bones? In this case, the body + helper mesh must be used * Which mesh should be most likely used? You should decide between male or female mesh or the standard mesh used in MakeHuman, when started. === Load the mesh === Best way is to load a human mesh using MPFB (MakeHuman Plugin for Blender). It has some presets which have to be used if you work with MakeTarget and it has a special help to work with the helper. You need to have MakeHuman in parallel using the socket connector (see image below). In Blender, set MPFB "Settings" to "MakeTarget" and load settings. After that import the mesh. [[File:MTG LoadMesh.png]] To switch on the helper a modifier is added, just press the marked symbol and the helper will appear or disappear. [[File:MTG ToggleHelper.png]] If you don't use MPFB, you can also load a human mesh with Makeclothes2. This will not include the toggle for the helper. There are a few additional methods, you can load it via mhx2 .. but be careful the scale must be the same otherwise your target will either use 1/10 of the movement or 10 times as much later in MakeHuman (mhx2 export: use decimeter). So easiest way is either to use MPFB or MakeClothes === Create a new target === As an example a target named lower-eyesbrows (should look a bit like an early human) should be created. It does not involve clothes and also no bones are changed. So in this case a mesh without helpers would be sufficient. The name lower-eyebrows is used to create the target. The result are two shape keys. An initial one "Basis" and the shape key which has to be changed. [[File:MTG CreateTarget.png]] Now the mesh is changed (make sure lower-eyebrows is selected in shape keys) so that the eyebrows are lowered. Best is to use proportional edit for your work. Be aware not to influence the eyelash region, otherwise the helper mesh must be changed for the eyelashes also. Lets only change one eyebrow like in the picture. The other side will be created by mirroring the target, here "copy +x to -x" is used. The copy command symmetrizes left and right side. A vertex in the middle will be set to x=0, so the mesh will stay totally symmetrical. [[File:MTG SymmetrizeTarget.png]] ''Hint: symmetrizing is done with a table, so it will not fail as long as the table matches the mesh you load.'' === Save the target === The last step is to save the target. Search for your target path of MakeHuman (custom targets). You can create a sub-folder if you work with a lot of own targets, like in the picture. In MakeHuman these folders must be scanned again. So press the rescan-button. Then a subfolder will be detected and the target is ready to use. [[File:MTG SaveTarget.png]] === Load a target === You can reload this target into MakeTarget2. As an example it is also easy to load a target made by someone else and change it or to load the official targets (only available on GitHub, the targets of the distribution are compressed). Especially if the helper was not changed, something that is sometimes neglected: load the mesh with helper, load the target, do the corrections and save it again. [[File:MTG LoadTarget.png]] 5a93604753258efa77000fd820a84f8296feee9f 2124 1959 2022-02-22T14:04:34Z Robbaer 12 wikitext text/x-wiki === Before using the program === MakeTarget Version 2 is created to work with Blender 2.83 LTS or newer. It is used to create custom targets for the body. A target is also called a morph or morphing which normally means the change of a shape in 3d. So it is used to create morphes or target of the basemesh. This program can also be used to correct targets made before. The result of this target in MakeHuman is a table of changed vertices. It is an ASCII file containing 3 values how each vertex should be moved. It is obviously derived from Blender shape keys. So the workflow includes to create a new shape key in Blender as well. There is a difference: Blender internally creates a copy of the complete mesh, even when you only change one vertex, the target of MakeHuman only contains the changed vertices. Before a new target is created, the following questions should be answered: * Should the target only change parts of the body like ears or lips not covered by clothes and where bones will not be stretched or located different? In this case is sufficient to work only with the body * Does the target also change part clothes and bones? In this case body + helper mesh must be used * Which mesh should be most likely used? You should decide between male or female mesh or the standard mesh used in MakeHuman, when started. === Load the mesh === Best way is to load a human mesh using MPFB (MakeHuman Plugin for Blender). It has some presets which have to be used if you work with MakeTarget and it has a special help to work with the helper. You need to have MakeHuman in parallel using the socket connector (see image below). In Blender, set MPFB "Settings" to "MakeTarget" and load settings. After that import the mesh. [[File:MTG LoadMesh.png]] To switch on the helper a modifier is added, just press the marked symbol and the helper will appear or disappear. [[File:MTG ToggleHelper.png]] If you don't use MPFB, you can also load a human mesh with Makeclothes2. This will not include the toggle for the helper. There are a few additional methods, you can load it via mhx2 .. but be careful the scale must be the same otherwise your target will either use 1/10 of the movement or 10 times as much later in MakeHuman (mhx2 export: use decimeter). So easiest way is either to use MPFB or MakeClothes === Create a new target === As an example a target named lower-eyesbrows (should look a bit like an early human) should be created. It does not involve clothes and also no bones are changed. So in this case a mesh without helpers would be sufficient. The name lower-eyebrows is used to create the target. The result are two shape keys. An initial one "Basis" and the shape key which has to be changed. [[File:MTG CreateTarget.png]] Now the mesh is changed (make sure lower-eyebrows is selected in shape keys) so that the eyebrows are lowered. Best is to use proportional edit for your work. Be aware not to influence the eyelash region, otherwise the helper mesh must be changed for the eyelashes also. Lets only change one eyebrow like in the picture. The other side will be created by mirroring the target, here "copy +x to -x" is used. The copy command symmetrizes left and right side. A vertex in the middle will be set to x=0, so the mesh will stay totally symmetrical. [[File:MTG SymmetrizeTarget.png]] ''Hint: symmetrizing is done with a table, so it will not fail as long as the table matches the mesh you load.'' === Save the target === The last step is to save the target. Search for your target path of MakeHuman (custom targets). You can create a sub-folder if you work with a lot of own targets, like in the picture. In MakeHuman these folders must be scanned again. So press the rescan-button. Then a subfolder will be detected and the target is ready to use. [[File:MTG SaveTarget.png]] === Load a target === You can reload this target into MakeTarget2. As an example it is also easy to load a target made by someone else and change it or to load the official targets (only available on GitHub, the targets of the distribution are compressed). Especially if the helper was not changed, something that is sometimes neglected: load the mesh with helper, load the target, do the corrections and save it again. [[File:MTG LoadTarget.png]] ae5e867654f4585e57a1120aa253f79b9daa2ebc 1959 2020-11-29T12:07:48Z Punkduck 38 Created page with "=== Before using the program === MakeTarget Version 2 is created to work with new Blender. It is used to create custom targets for the body. A target is also called a morph o..." wikitext text/x-wiki === Before using the program === MakeTarget Version 2 is created to work with new Blender. It is used to create custom targets for the body. A target is also called a morph or morphing which normally means the change of a shape in 3d. So it is used to create morphes or target of the basemesh. This program can also be used to correct targets made before. The result of this target in MakeHuman is a table of changed vertices. It is an ASCII file containing 3 values how each vertex should be moved. It is obviously derived from Blender shape keys. So the workflow includes to create a new shape key in Blender as well. There is a difference: Blender internally creates a copy of the complete mesh, even when you only change one vertex, the target of MakeHuman only contains the changed vertices. Before a new target is created, the following questions should be answered: * Should the target only change parts of the body like ears or lips not covered by clothes and where bones will not be stretched or located different? In this case is sufficient to work only with the body * Does the target also change part clothes and bones? In this case body + helper mesh must be used * Which mesh should be most likely used? You should decide between male or female mesh or the standard mesh used in MakeHuman, when started. === Load the mesh === Best way is to load a human mesh using MPFB (MakeHuman Plugin for Blender). It has some presets which have to be used if you work with MakeTarget and it has a special help to work with the helper. You need to have MakeHuman in parallel using the socket connector (see image below). In Blender, set MPFB "Settings" to "MakeTarget" and load settings. After that import the mesh. [[File:MTG LoadMesh.png]] To switch on the helper a modifier is added, just press the marked symbol and the helper will appear or disappear. [[File:MTG ToggleHelper.png]] If you don't use MPFB, you can also load a human mesh with Makeclothes2. This will not include the toggle for the helper. There are a few additional methods, you can load it via mhx2 .. but be careful the scale must be the same otherwise your target will either use 1/10 of the movement or 10 times as much later in MakeHuman (mhx2 export: use decimeter). So easiest way is either to use MPFB or MakeClothes === Create a new target === As an example a target named lower-eyesbrows (should look a bit like an early human) should be created. It does not involve clothes and also no bones are changed. So in this case a mesh without helpers would be sufficient. The name lower-eyebrows is used to create the target. The result are two shape keys. An initial one "Basis" and the shape key which has to be changed. [[File:MTG CreateTarget.png]] Now the mesh is changed (make sure lower-eyebrows is selected in shape keys) so that the eyebrows are lowered. Best is to use proportional edit for your work. Be aware not to influence the eyelash region, otherwise the helper mesh must be changed for the eyelashes also. Lets only change one eyebrow like in the picture. The other side will be created by mirroring the target, here "copy +x to -x" is used. The copy command symmetrizes left and right side. A vertex in the middle will be set to x=0, so the mesh will stay totally symmetrical. [[File:MTG SymmetrizeTarget.png]] ''Hint: symmetrizing is done with a table, so it will not fail as long as the table matches the mesh you load.'' === Save the target === The last step is to save the target. Search for your target path of MakeHuman (custom targets). You can create a sub-folder if you work with a lot of own targets, like in the picture. In MakeHuman these folders must be scanned again. So press the rescan-button. Then a subfolder will be detected and the target is ready to use. [[File:MTG SaveTarget.png]] === Load a target === You can reload this target into MakeTarget2. As an example it is also easy to load a target made by someone else and change it or to load the official targets (only available on GitHub, the targets of the distribution are compressed). Especially if the helper was not changed, something that is sometimes neglected: load the mesh with helper, load the target, do the corrections and save it again. [[File:MTG LoadTarget.png]] ec665bdb61646f295c919facd5ed37bf5425a6f2 Documentation:Texture painting a skin in blender 3000 159 398 2015-08-14T15:17:28Z Joepal 14 Created page with " [[File:Texpaint01.png|500px|thumb]] To start a texture painting project, we are best off switching to "blender render" mode (rather than cycles). This is not required, but fo..." wikitext text/x-wiki [[File:Texpaint01.png|500px|thumb]] To start a texture painting project, we are best off switching to "blender render" mode (rather than cycles). This is not required, but for various reasons it is somewhat simpler and more efficient. We also want a human to paint the skin on. If you have MakeTarget or MakeClothes installed, simply click the "load human" button. Otherwise, import a human from MakeHuman as usual. <br style="clear: both"> [[File:Texpaint02.png|500px|thumb]] To create an image to use as texture, we can switch to the "UV Editing" (and image painting) view in blender. You could have created this through other means, but we might as well learn how to find this now. <br style="clear: both"> [[File:Texpaint03.png|500px|thumb]] Here we can either "open" an existing image, or create a new one by clicking "New". For the sake of this tutorial we create a new blank texture. As a hint: If you want a demo skin to modify rather than create one from scratch, you could download the "Annotated Skin" from the skin repo and open it here. That skin has clear markers and labels explaining the different areas of the skin. <br style="clear: both"> [[File:Texpaint04.png|500px|thumb]] You should give it a sensible name and decent dimensions. Textures are usually quite large, otherwise they'll look grainy on close-up renders. <br style="clear: both"> [[File:Texpaint05.png|500px|thumb]] Go back to the default view. <br style="clear: both"> [[File:Texpaint06.png|500px|thumb]] Mark the human toon and create a material for it. The material properties doesn't matter much at this point, but a sensible name is useful. <br style="clear: both"> [[File:Texpaint07.png|500px|thumb]] Create a new texture channel for the material. <br style="clear: both"> [[File:Texpaint08.png|500px|thumb]] Assign the image we created previously (or pick one that you have opened). <br style="clear: both"> [[File:Texpaint09.png|500px|thumb]] In the main view, select the "texture paint" mode and the "material" display. Missing the latter is something that tend to confuse first-time skinners, as forgetting it will often prevent you from seeing what you're doing. <br style="clear: both"> [[File:Texpaint10.png|500px|thumb]] You should now be able to simply draw anywhere on the body. <br style="clear: both"> [[File:Texpaint11.png|500px|thumb]] If you want to see the resulting texture image, or if you want to paint faces in 2D mode, switch to the "UV editing" layout again. To be able to paint on the 2D surface, you need to switch to "paint" mode. <br style="clear: both"> [[File:Texpaint12.png|500px|thumb]] Don't forget to save your image. The first time, choose "save as image", on later saves use "save image". <br style="clear: both"> You should now have an image texture. If you want to use it inside MakeHuman, see [[FAQ:How can I create skin textures?]]. 1aa7d6dd0c8846d02fe44906213550a237470b3a Documentation:The interface and its basic functions 3000 224 1102 680 2016-07-05T17:05:27Z Aranuvir 17 wikitext text/x-wiki [[File:interface-labelled_new.png]] The application user interface comprises of the various elements. The core elements are : * the toolbar with its various partitions. * The tabs and sub-tabs which allow you to navigate the application, and utilise its various features in a coherent easy to understand manner. * The 3D view window which allows you to view the human as it is morphed, posed etc. * The left and right option panels whose options change depending upon the tab/sub-tab you are in. * Finally there is a progress Bar which shows the progress of an operation and the Information Bar providing useful information. Note: Different views may contain different options. These options are described in more detail in the appropriate heads in the rest of the documentation. d3085193fa488477ac58989e3f0bd159b77edca2 680 2016-05-20T08:29:16Z Joepal 14 Created page with " !IMAGE!Pictures/interface-labelled_new.png!/IMAGE! The application user interface comprises of the various elements. The core elements are : * the toolbar with its variou..." wikitext text/x-wiki !IMAGE!Pictures/interface-labelled_new.png!/IMAGE! The application user interface comprises of the various elements. The core elements are : * the toolbar with its various partitions. * The tabs and sub-tabs which allow you to navigate the application, and utilise its various features in a coherent easy to understand manner. * The 3D view window which allows you to view the human as it is morphed, posed etc. * The left and right option panels whose options change depending upon the tab/sub-tab you are in. * Finally there is a progress Bar which shows the progress of an operation and the Information Bar providing useful information. Note: Different views may contain different options. These options are described in more detail in the appropriate heads in the rest of the documentation. 1f20d48f0410b1baf102045c5f404c068fbf8c95 Documentation:The sliders 3000 227 683 2016-05-20T08:33:35Z Joepal 14 Created page with "MakeHuman is based on parametric modelling, controlled by sliders. !IMAGE!Pictures/wMgROK6FRzzyQAAAABJRU5ErkJggg==!/IMAGE! The meaning of each slider is generally self exp..." wikitext text/x-wiki MakeHuman is based on parametric modelling, controlled by sliders. !IMAGE!Pictures/wMgROK6FRzzyQAAAABJRU5ErkJggg==!/IMAGE! The meaning of each slider is generally self explanatory. Each slider controls the amount of a feature is expressed in the character from its minimum value to is maximum value. For example, the slider "Age" will change the character from the minimum age, which is about 2 years old, to the maximum age of about 80. When multiple sliders are moved, the values are mixed to form a character that reflects the user's chosen settings using a special interpolation engine. Each slider can be reset individually with right click on it. A slider normally moves in increments of 3 or 4 setting values when dragged with the mouse; however, you can place the mouse cursor over the orange portion of the slider and use the mouse scroll wheel to make adjustments in smaller increments of 1. 974cf7689249301b0fbe8b1fa700fc8fda197ddd Documentation:The tabs 3000 226 1104 682 2016-07-05T17:12:20Z Aranuvir 17 wikitext text/x-wiki Most of the user controls of the MakeHuman application are accessed through the tabs panel. The tabs are organized intoMainTabsandSubTabs.TheMain Tabsoutline the broad category to which functionality belongs and the Sub Tabs allow for more fine grained control over various aspects of the main category.ThereforeSub Tabskeep changing based on whichMain Tabhas been selected. E.g. When you select the "Files" main tab all file associated functions are made accessible via subtabs such as saving, loading and exporting. In the below image Sub Tabs for the "Modelling" main tab are shown. [[File:maintab.png]] The Primary Tab groups are shown in the image above and from left to right are: * Files:The Files Tab options provide access to the controls that manage saving, loading and exporting the MakeHuman™ project to or from files. * Modelling:The Modelling Tab options provide access to the controls that shape and alter the appearance of the MakeHuman™ project model. * Geometries:. The Geometries Tab options provide access to controls that add new geometries or change the human geometry within the MakeHuman™ project. E.g. Clothes, Eyes, Hair, Teeth, Genitals. * Materials:The materials available for the human and the additional geometries. * Pose/Animate:Options for posing animating and rigging a character. * Rendering:Rendering options using the MakeHuman internal renderer. Currently external rendering is not supported from within the program. * Settings:Provide options to configure settings of MakeHuman * Utilities:Provide some additional more advanced utilities. E.g. Material Editor * Help: The Help Tab's Help option provides access to controls that access the Help and support resources available for the MakeHuman™ project. 158b142b4f7b0dceefff35e3cef49b7121b1098e 682 2016-05-20T08:32:29Z Joepal 14 Created page with "Most of the user controls of the MakeHuman application are accessed through the tabs panel. The tabs are organized intoMainTabsandSubTabs.TheMain Tabsoutline the broad categor..." wikitext text/x-wiki Most of the user controls of the MakeHuman application are accessed through the tabs panel. The tabs are organized intoMainTabsandSubTabs.TheMain Tabsoutline the broad category to which functionality belongs and the Sub Tabs allow for more fine grained control over various aspects of the main category.ThereforeSub Tabskeep changing based on whichMain Tabhas been selected. E.g. When you select the "Files" main tab all file associated functions are made accessible via subtabs such as saving, loading and exporting. In the below image Sub Tabs for the "Modelling" main tab are shown. !IMAGE!Pictures/maintab.png!/IMAGE! The Primary Tab groups are shown in the image above and from left to right are: * Files:The Files Tab options provide access to the controls that manage saving, loading and exporting the MakeHuman™ project to or from files. * Modelling:The Modelling Tab options provide access to the controls that shape and alter the appearance of the MakeHuman™ project model. * Geometries:. The Geometries Tab options provide access to controls that add new geometries or change the human geometry within the MakeHuman™ project. E.g. Clothes, Eyes, Hair, Teeth, Genitals. * Materials:The materials available for the human and the additional geometries. * Pose/Animate:Options for posing animating and rigging a character. * Rendering:Rendering options using the MakeHuman internal renderer. Currently external rendering is not supported from within the program. * Settings:Provide options to configure settings of MakeHuman * Utilities:Provide some additional more advanced utilities. E.g. Material Editor * Help: The Help Tab's Help option provides access to controls that access the Help and support resources available for the MakeHuman™ project. 4d35e8d162959698f6170041cbd17575f097e590 Documentation:The toolbar 3000 225 1136 1135 2016-08-18T14:08:36Z Robbaer 12 /* The View partition */ wikitext text/x-wiki The "Main Toolbar" is actually made up of six separate partitions. [[File:the_toolbar.jpeg]] == The Files partition == [[File:the_toolbar-file.jpeg]] This partition provides shortcut buttons that deal with saving or loading files (Save, Load, Export). The save button performs the same action as pressing the Files tab and then the Save tab when there is no filename specified. If the file was given a name earlier and saved once this button performs a quick save over the file specified earlier. The Load button takes you to the file loading window where you can choose the file to load. The Export button takes you to the export tab and allows you to export your current MakeHuman project to one of the variety of export formats the MakeHuman program supports. Supported formats include mesh formats such as Filmbox (fbx),Wavefront obj, Sterolithography (stl), rig/rigging related formats such as Biovision Hierarchy and various maps such as Light Maps, and UV maps. Load, Save and Export options are explained in more detail!LINK!http://www.makehuman.org/doc/node/load_save_and_export.html -- here!/LINK!. == The Edit partition == [[File:the_toolbar-undoredo.jpeg]] The Edit partition of the toolbar, provides shortcut buttons that deal with editing actions. The Undo button is to undo the last action that has been performed. Undo can be pressed to cancel actions until you have undone all of the actions taken during your current MakeHuman session. The Redo button is related to the Undo button and will restore the last action that has been undone. Redo can be pressed until all undone actions performed during the current MakeHuman session have been restored. The reset button returns the human to its initial state, which includes its target, pose, geometry, material, and rendering settings. The undo/redo stack will be emptied. The camera will not be reset. == The View partition == [[File:the_toolbar-smoothandwire.jpeg]] The View partition toolbar, provides buttons that manage the display mode of the character (Smooth, Wireframe, Background on/off). Wireframe mode allows you to view the mesh in Wireframe mode like in many other 3D applications. The Background option allows you to load a background reference image. The pose button is used for posing. When a rig and pose is active this button is enabled and allows you to toggle between the selected pose and the default rest pose. The "smooth" is particularly interesting since it subdivides the mesh. The image below shows the mesh smooth and normal, using the wireframe mode. This uses Catmull–Clark subdivision to create a much more dense smoother mesh. [[File:nsmooth.png]] == The Symmetry partition == [[File:the_toolbar-symmetry.jpeg]] The Symmetry partitiontoolbar, provides buttons that manage transferring settings applied to one side of the character to the other side of the character so that the character features become symmetrical. [[File:symm.png]] There are options for right to left symmetry, left to right symmetry and a general symmetry mode. Left to right symmetry applies all changes made on the left side to the right side of the human/character. Right to left symmetry applies all changes made on the right side to the left side of the human/character. General symmetry mode behaves differently. When it is active all changes made are symmetrical when it is inactive any changes made to any one side affect that one side only. So this mode therefore allows the user to selectively apply symmetry. In the above image the Left side of the character is made symmetrical with the right side of the character. == The camera partition == [[File:the_toolbar-cameraviews.jpeg]] The Camera partition of the toolbar, manages the Camera placement within the scene so that the character can be viewed from different angles and zoom levels. (Front View, Back View, Left View, Right View, Top View, Bottom View, Global Camera, Face Camera and Reset Camera options are available). == The help partition == [[File:the_toolbar-screengrbhelp.jpeg]] The Help partition, allows you to save a quick screenshot of the view or to access to the help tab. By default the toolbars are arranged in the order shown above horizontally next to each other along the top edge of the MakeHuman window. The four partition toolbars can each be moved to any area of your screen in Windows by clicking and holding the left mouse button on the left edge of the toolbar and dragging it to the location you desire. 34efba06f318fb2c3713364964dee031a2e5a8b3 1135 1134 2016-08-18T14:08:09Z Robbaer 12 /* The View partition */ wikitext text/x-wiki The "Main Toolbar" is actually made up of six separate partitions. [[File:the_toolbar.jpeg]] == The Files partition == [[File:the_toolbar-file.jpeg]] This partition provides shortcut buttons that deal with saving or loading files (Save, Load, Export). The save button performs the same action as pressing the Files tab and then the Save tab when there is no filename specified. If the file was given a name earlier and saved once this button performs a quick save over the file specified earlier. The Load button takes you to the file loading window where you can choose the file to load. The Export button takes you to the export tab and allows you to export your current MakeHuman project to one of the variety of export formats the MakeHuman program supports. Supported formats include mesh formats such as Filmbox (fbx),Wavefront obj, Sterolithography (stl), rig/rigging related formats such as Biovision Hierarchy and various maps such as Light Maps, and UV maps. Load, Save and Export options are explained in more detail!LINK!http://www.makehuman.org/doc/node/load_save_and_export.html -- here!/LINK!. == The Edit partition == [[File:the_toolbar-undoredo.jpeg]] The Edit partition of the toolbar, provides shortcut buttons that deal with editing actions. The Undo button is to undo the last action that has been performed. Undo can be pressed to cancel actions until you have undone all of the actions taken during your current MakeHuman session. The Redo button is related to the Undo button and will restore the last action that has been undone. Redo can be pressed until all undone actions performed during the current MakeHuman session have been restored. The reset button returns the human to its initial state, which includes its target, pose, geometry, material, and rendering settings. The undo/redo stack will be emptied. The camera will not be reset. == The View partition == [[File:the_toolbar-smoothandwire.jpeg]] The View partition toolbar, provides buttons that manage the display mode of the character (Smooth, Wireframe, Background on/off). Wireframe mode allows you to view the mesh in Wireframe mode like in many other 3D applications. The Background option allows you to load a background reference image. The pose button is used for posing. When a rig and pose is active this button is enabled and allows you to toggle between the selected pose and the default rest pose. The "smooth" is particularly interesting since it subdivides the mesh. The image below shows the mesh smooth and normal, using the wireframe mode. This uses Catmull–Clarksubdivision to create a much more dense smoother mesh. [[File:nsmooth.png]] == The Symmetry partition == [[File:the_toolbar-symmetry.jpeg]] The Symmetry partitiontoolbar, provides buttons that manage transferring settings applied to one side of the character to the other side of the character so that the character features become symmetrical. [[File:symm.png]] There are options for right to left symmetry, left to right symmetry and a general symmetry mode. Left to right symmetry applies all changes made on the left side to the right side of the human/character. Right to left symmetry applies all changes made on the right side to the left side of the human/character. General symmetry mode behaves differently. When it is active all changes made are symmetrical when it is inactive any changes made to any one side affect that one side only. So this mode therefore allows the user to selectively apply symmetry. In the above image the Left side of the character is made symmetrical with the right side of the character. == The camera partition == [[File:the_toolbar-cameraviews.jpeg]] The Camera partition of the toolbar, manages the Camera placement within the scene so that the character can be viewed from different angles and zoom levels. (Front View, Back View, Left View, Right View, Top View, Bottom View, Global Camera, Face Camera and Reset Camera options are available). == The help partition == [[File:the_toolbar-screengrbhelp.jpeg]] The Help partition, allows you to save a quick screenshot of the view or to access to the help tab. By default the toolbars are arranged in the order shown above horizontally next to each other along the top edge of the MakeHuman window. The four partition toolbars can each be moved to any area of your screen in Windows by clicking and holding the left mouse button on the left edge of the toolbar and dragging it to the location you desire. d3de9ea4cea64c7026f15c0bcc0f763be463b91e 1134 1133 2016-08-18T13:59:13Z Robbaer 12 /* The Edit partition */ wikitext text/x-wiki The "Main Toolbar" is actually made up of six separate partitions. [[File:the_toolbar.jpeg]] == The Files partition == [[File:the_toolbar-file.jpeg]] This partition provides shortcut buttons that deal with saving or loading files (Save, Load, Export). The save button performs the same action as pressing the Files tab and then the Save tab when there is no filename specified. If the file was given a name earlier and saved once this button performs a quick save over the file specified earlier. The Load button takes you to the file loading window where you can choose the file to load. The Export button takes you to the export tab and allows you to export your current MakeHuman project to one of the variety of export formats the MakeHuman program supports. Supported formats include mesh formats such as Filmbox (fbx),Wavefront obj, Sterolithography (stl), rig/rigging related formats such as Biovision Hierarchy and various maps such as Light Maps, and UV maps. Load, Save and Export options are explained in more detail!LINK!http://www.makehuman.org/doc/node/load_save_and_export.html -- here!/LINK!. == The Edit partition == [[File:the_toolbar-undoredo.jpeg]] The Edit partition of the toolbar, provides shortcut buttons that deal with editing actions. The Undo button is to undo the last action that has been performed. Undo can be pressed to cancel actions until you have undone all of the actions taken during your current MakeHuman session. The Redo button is related to the Undo button and will restore the last action that has been undone. Redo can be pressed until all undone actions performed during the current MakeHuman session have been restored. The reset button returns the human to its initial state, which includes its target, pose, geometry, material, and rendering settings. The undo/redo stack will be emptied. The camera will not be reset. == The View partition == [[File:the_toolbar-smoothandwire.jpeg]] The View partition toolbar, provides buttons that manage the display mode of the character (Smooth, Wireframe, Background on/off). Wireframe mode allows you to view the mesh in Wireframe mode like in many other 3D applications. The Background option allows you to load a background reference image. The pose button is used for posing. When a rig and pose is active this button is enabled and allows you to toggle between the selected pose and the default rest pose. The "smooth" is particularly interesting since it subdivides the mesh. The image below shows the mesh smooth and normal, using the wireframe mode. This usesCatmull–Clarksubdivision to create a much more dense smoother mesh. [[File:nsmooth.png]] == The Symmetry partition == [[File:the_toolbar-symmetry.jpeg]] The Symmetry partitiontoolbar, provides buttons that manage transferring settings applied to one side of the character to the other side of the character so that the character features become symmetrical. [[File:symm.png]] There are options for right to left symmetry, left to right symmetry and a general symmetry mode. Left to right symmetry applies all changes made on the left side to the right side of the human/character. Right to left symmetry applies all changes made on the right side to the left side of the human/character. General symmetry mode behaves differently. When it is active all changes made are symmetrical when it is inactive any changes made to any one side affect that one side only. So this mode therefore allows the user to selectively apply symmetry. In the above image the Left side of the character is made symmetrical with the right side of the character. == The camera partition == [[File:the_toolbar-cameraviews.jpeg]] The Camera partition of the toolbar, manages the Camera placement within the scene so that the character can be viewed from different angles and zoom levels. (Front View, Back View, Left View, Right View, Top View, Bottom View, Global Camera, Face Camera and Reset Camera options are available). == The help partition == [[File:the_toolbar-screengrbhelp.jpeg]] The Help partition, allows you to save a quick screenshot of the view or to access to the help tab. By default the toolbars are arranged in the order shown above horizontally next to each other along the top edge of the MakeHuman window. The four partition toolbars can each be moved to any area of your screen in Windows by clicking and holding the left mouse button on the left edge of the toolbar and dragging it to the location you desire. 44bf5df07bbe5fcd6f5bc7419785b94060e95cb2 1133 1132 2016-08-18T13:32:08Z Robbaer 12 /* The Edit partition */ wikitext text/x-wiki The "Main Toolbar" is actually made up of six separate partitions. [[File:the_toolbar.jpeg]] == The Files partition == [[File:the_toolbar-file.jpeg]] This partition provides shortcut buttons that deal with saving or loading files (Save, Load, Export). The save button performs the same action as pressing the Files tab and then the Save tab when there is no filename specified. If the file was given a name earlier and saved once this button performs a quick save over the file specified earlier. The Load button takes you to the file loading window where you can choose the file to load. The Export button takes you to the export tab and allows you to export your current MakeHuman project to one of the variety of export formats the MakeHuman program supports. Supported formats include mesh formats such as Filmbox (fbx),Wavefront obj, Sterolithography (stl), rig/rigging related formats such as Biovision Hierarchy and various maps such as Light Maps, and UV maps. Load, Save and Export options are explained in more detail!LINK!http://www.makehuman.org/doc/node/load_save_and_export.html -- here!/LINK!. == The Edit partition == [[File:the_toolbar-undoredo.jpeg]] The Edit partition of the toolbar, provides shortcut buttons that deal with editing actions. The Undo button is to undo the last action that has been performed. Undo can be pressed to cancel actions until you have undone all of the actions taken during your current MakeHuman session. The Redo button is related to the Undo button and will restore the last action that has been undone. Redo can be pressed until all undone actions performed during the current MakeHuman session have been restored. The reset button returns the human to its initial state, which includes all its target, geometry, material and rendering settings. The camera will not be reset. == The View partition == [[File:the_toolbar-smoothandwire.jpeg]] The View partition toolbar, provides buttons that manage the display mode of the character (Smooth, Wireframe, Background on/off). Wireframe mode allows you to view the mesh in Wireframe mode like in many other 3D applications. The Background option allows you to load a background reference image. The pose button is used for posing. When a rig and pose is active this button is enabled and allows you to toggle between the selected pose and the default rest pose. The "smooth" is particularly interesting since it subdivides the mesh. The image below shows the mesh smooth and normal, using the wireframe mode. This usesCatmull–Clarksubdivision to create a much more dense smoother mesh. [[File:nsmooth.png]] == The Symmetry partition == [[File:the_toolbar-symmetry.jpeg]] The Symmetry partitiontoolbar, provides buttons that manage transferring settings applied to one side of the character to the other side of the character so that the character features become symmetrical. [[File:symm.png]] There are options for right to left symmetry, left to right symmetry and a general symmetry mode. Left to right symmetry applies all changes made on the left side to the right side of the human/character. Right to left symmetry applies all changes made on the right side to the left side of the human/character. General symmetry mode behaves differently. When it is active all changes made are symmetrical when it is inactive any changes made to any one side affect that one side only. So this mode therefore allows the user to selectively apply symmetry. In the above image the Left side of the character is made symmetrical with the right side of the character. == The camera partition == [[File:the_toolbar-cameraviews.jpeg]] The Camera partition of the toolbar, manages the Camera placement within the scene so that the character can be viewed from different angles and zoom levels. (Front View, Back View, Left View, Right View, Top View, Bottom View, Global Camera, Face Camera and Reset Camera options are available). == The help partition == [[File:the_toolbar-screengrbhelp.jpeg]] The Help partition, allows you to save a quick screenshot of the view or to access to the help tab. By default the toolbars are arranged in the order shown above horizontally next to each other along the top edge of the MakeHuman window. The four partition toolbars can each be moved to any area of your screen in Windows by clicking and holding the left mouse button on the left edge of the toolbar and dragging it to the location you desire. ad7d2f36817375a68950dd4bbffdc5ce693f037d 1132 1131 2016-08-18T13:24:35Z Robbaer 12 /* The Edit partition */ wikitext text/x-wiki The "Main Toolbar" is actually made up of six separate partitions. [[File:the_toolbar.jpeg]] == The Files partition == [[File:the_toolbar-file.jpeg]] This partition provides shortcut buttons that deal with saving or loading files (Save, Load, Export). The save button performs the same action as pressing the Files tab and then the Save tab when there is no filename specified. If the file was given a name earlier and saved once this button performs a quick save over the file specified earlier. The Load button takes you to the file loading window where you can choose the file to load. The Export button takes you to the export tab and allows you to export your current MakeHuman project to one of the variety of export formats the MakeHuman program supports. Supported formats include mesh formats such as Filmbox (fbx),Wavefront obj, Sterolithography (stl), rig/rigging related formats such as Biovision Hierarchy and various maps such as Light Maps, and UV maps. Load, Save and Export options are explained in more detail!LINK!http://www.makehuman.org/doc/node/load_save_and_export.html -- here!/LINK!. == The Edit partition == [[File:the_toolbar-undoredo.jpeg]] The Edit partition of the toolbar, provides shortcut buttons that deal with editing actions. The Undo button is to undo the last action that has been performed. Undo can be pressed to cancel actions until you have undone all of the actions taken during your current MakeHuman session. The Redo button is related to the Undo button and will restore the last action that has been undone. Redo can be pressed until all undone actions performed during the current MakeHuman session have been restored. The reset button resets the state of the human, which includes its targets, materials and rendering settings. The camera will not be reset. == The View partition == [[File:the_toolbar-smoothandwire.jpeg]] The View partition toolbar, provides buttons that manage the display mode of the character (Smooth, Wireframe, Background on/off). Wireframe mode allows you to view the mesh in Wireframe mode like in many other 3D applications. The Background option allows you to load a background reference image. The pose button is used for posing. When a rig and pose is active this button is enabled and allows you to toggle between the selected pose and the default rest pose. The "smooth" is particularly interesting since it subdivides the mesh. The image below shows the mesh smooth and normal, using the wireframe mode. This usesCatmull–Clarksubdivision to create a much more dense smoother mesh. [[File:nsmooth.png]] == The Symmetry partition == [[File:the_toolbar-symmetry.jpeg]] The Symmetry partitiontoolbar, provides buttons that manage transferring settings applied to one side of the character to the other side of the character so that the character features become symmetrical. [[File:symm.png]] There are options for right to left symmetry, left to right symmetry and a general symmetry mode. Left to right symmetry applies all changes made on the left side to the right side of the human/character. Right to left symmetry applies all changes made on the right side to the left side of the human/character. General symmetry mode behaves differently. When it is active all changes made are symmetrical when it is inactive any changes made to any one side affect that one side only. So this mode therefore allows the user to selectively apply symmetry. In the above image the Left side of the character is made symmetrical with the right side of the character. == The camera partition == [[File:the_toolbar-cameraviews.jpeg]] The Camera partition of the toolbar, manages the Camera placement within the scene so that the character can be viewed from different angles and zoom levels. (Front View, Back View, Left View, Right View, Top View, Bottom View, Global Camera, Face Camera and Reset Camera options are available). == The help partition == [[File:the_toolbar-screengrbhelp.jpeg]] The Help partition, allows you to save a quick screenshot of the view or to access to the help tab. By default the toolbars are arranged in the order shown above horizontally next to each other along the top edge of the MakeHuman window. The four partition toolbars can each be moved to any area of your screen in Windows by clicking and holding the left mouse button on the left edge of the toolbar and dragging it to the location you desire. 21e5a6ac534d778904966536b9c97cb072d61133 1131 1130 2016-08-18T13:23:47Z Robbaer 12 /* The View partition */ wikitext text/x-wiki The "Main Toolbar" is actually made up of six separate partitions. [[File:the_toolbar.jpeg]] == The Files partition == [[File:the_toolbar-file.jpeg]] This partition provides shortcut buttons that deal with saving or loading files (Save, Load, Export). The save button performs the same action as pressing the Files tab and then the Save tab when there is no filename specified. If the file was given a name earlier and saved once this button performs a quick save over the file specified earlier. The Load button takes you to the file loading window where you can choose the file to load. The Export button takes you to the export tab and allows you to export your current MakeHuman project to one of the variety of export formats the MakeHuman program supports. Supported formats include mesh formats such as Filmbox (fbx),Wavefront obj, Sterolithography (stl), rig/rigging related formats such as Biovision Hierarchy and various maps such as Light Maps, and UV maps. Load, Save and Export options are explained in more detail!LINK!http://www.makehuman.org/doc/node/load_save_and_export.html -- here!/LINK!. == The Edit partition == [[File:the_toolbar-undoredo.jpeg]] The Edit partitionof the toolbar, provides shortcut buttons that deal with editing actions. The Undo button is to undo the last action that has been performed. Undo can be pressed to cancel actions until you have undone all of the actions taken during your current MakeHuman session. The Redo button is related to the Undo button and will restore the last action that has been undone. Redo can be pressed until all undone actions performed during the current MakeHuman session have been restored. The reset button resets the state of the human, which includes its targets, materials and rendering settings. The camera will not be reset. == The View partition == [[File:the_toolbar-smoothandwire.jpeg]] The View partition toolbar, provides buttons that manage the display mode of the character (Smooth, Wireframe, Background on/off). Wireframe mode allows you to view the mesh in Wireframe mode like in many other 3D applications. The Background option allows you to load a background reference image. The pose button is used for posing. When a rig and pose is active this button is enabled and allows you to toggle between the selected pose and the default rest pose. The "smooth" is particularly interesting since it subdivides the mesh. The image below shows the mesh smooth and normal, using the wireframe mode. This usesCatmull–Clarksubdivision to create a much more dense smoother mesh. [[File:nsmooth.png]] == The Symmetry partition == [[File:the_toolbar-symmetry.jpeg]] The Symmetry partitiontoolbar, provides buttons that manage transferring settings applied to one side of the character to the other side of the character so that the character features become symmetrical. [[File:symm.png]] There are options for right to left symmetry, left to right symmetry and a general symmetry mode. Left to right symmetry applies all changes made on the left side to the right side of the human/character. Right to left symmetry applies all changes made on the right side to the left side of the human/character. General symmetry mode behaves differently. When it is active all changes made are symmetrical when it is inactive any changes made to any one side affect that one side only. So this mode therefore allows the user to selectively apply symmetry. In the above image the Left side of the character is made symmetrical with the right side of the character. == The camera partition == [[File:the_toolbar-cameraviews.jpeg]] The Camera partition of the toolbar, manages the Camera placement within the scene so that the character can be viewed from different angles and zoom levels. (Front View, Back View, Left View, Right View, Top View, Bottom View, Global Camera, Face Camera and Reset Camera options are available). == The help partition == [[File:the_toolbar-screengrbhelp.jpeg]] The Help partition, allows you to save a quick screenshot of the view or to access to the help tab. By default the toolbars are arranged in the order shown above horizontally next to each other along the top edge of the MakeHuman window. The four partition toolbars can each be moved to any area of your screen in Windows by clicking and holding the left mouse button on the left edge of the toolbar and dragging it to the location you desire. 0b03ae9ea4eb2f37003dda93fce2becfd974fd43 1130 1103 2016-08-18T13:23:25Z Robbaer 12 /* The Edit partition */ wikitext text/x-wiki The "Main Toolbar" is actually made up of six separate partitions. [[File:the_toolbar.jpeg]] == The Files partition == [[File:the_toolbar-file.jpeg]] This partition provides shortcut buttons that deal with saving or loading files (Save, Load, Export). The save button performs the same action as pressing the Files tab and then the Save tab when there is no filename specified. If the file was given a name earlier and saved once this button performs a quick save over the file specified earlier. The Load button takes you to the file loading window where you can choose the file to load. The Export button takes you to the export tab and allows you to export your current MakeHuman project to one of the variety of export formats the MakeHuman program supports. Supported formats include mesh formats such as Filmbox (fbx),Wavefront obj, Sterolithography (stl), rig/rigging related formats such as Biovision Hierarchy and various maps such as Light Maps, and UV maps. Load, Save and Export options are explained in more detail!LINK!http://www.makehuman.org/doc/node/load_save_and_export.html -- here!/LINK!. == The Edit partition == [[File:the_toolbar-undoredo.jpeg]] The Edit partitionof the toolbar, provides shortcut buttons that deal with editing actions. The Undo button is to undo the last action that has been performed. Undo can be pressed to cancel actions until you have undone all of the actions taken during your current MakeHuman session. The Redo button is related to the Undo button and will restore the last action that has been undone. Redo can be pressed until all undone actions performed during the current MakeHuman session have been restored. The reset button resets the state of the human, which includes its targets, materials and rendering settings. The camera will not be reset. == The View partition == [[File:the_toolbar-smoothandwire.jpeg]] The View partitiontoolbar, provides buttons that manage the display mode of the character (Smooth, Wireframe, Background on/off). Wireframe mode allows you to view the mesh in Wireframe mode like in many other 3D applications. The Background option allows you to load a background reference image. The pose button is used for posing. When a rig and pose is active this button is enabled and allows you to toggle between the selected pose and the default rest pose. The "smooth" is particularly interesting since it subdivides the mesh. The image below shows the mesh smooth and normal, using the wireframe mode. This usesCatmull–Clarksubdivision to create a much more dense smoother mesh. [[File:nsmooth.png]] == The Symmetry partition == [[File:the_toolbar-symmetry.jpeg]] The Symmetry partitiontoolbar, provides buttons that manage transferring settings applied to one side of the character to the other side of the character so that the character features become symmetrical. [[File:symm.png]] There are options for right to left symmetry, left to right symmetry and a general symmetry mode. Left to right symmetry applies all changes made on the left side to the right side of the human/character. Right to left symmetry applies all changes made on the right side to the left side of the human/character. General symmetry mode behaves differently. When it is active all changes made are symmetrical when it is inactive any changes made to any one side affect that one side only. So this mode therefore allows the user to selectively apply symmetry. In the above image the Left side of the character is made symmetrical with the right side of the character. == The camera partition == [[File:the_toolbar-cameraviews.jpeg]] The Camera partition of the toolbar, manages the Camera placement within the scene so that the character can be viewed from different angles and zoom levels. (Front View, Back View, Left View, Right View, Top View, Bottom View, Global Camera, Face Camera and Reset Camera options are available). == The help partition == [[File:the_toolbar-screengrbhelp.jpeg]] The Help partition, allows you to save a quick screenshot of the view or to access to the help tab. By default the toolbars are arranged in the order shown above horizontally next to each other along the top edge of the MakeHuman window. The four partition toolbars can each be moved to any area of your screen in Windows by clicking and holding the left mouse button on the left edge of the toolbar and dragging it to the location you desire. 3a30262fe5c26146748d889d7e65dadb7edcb9f9 1103 779 2016-07-05T17:10:50Z Aranuvir 17 wikitext text/x-wiki The "Main Toolbar" is actually made up of six separate partitions. [[File:the_toolbar.jpeg]] == The Files partition == [[File:the_toolbar-file.jpeg]] This partition provides shortcut buttons that deal with saving or loading files (Save, Load, Export). The save button performs the same action as pressing the Files tab and then the Save tab when there is no filename specified. If the file was given a name earlier and saved once this button performs a quick save over the file specified earlier. The Load button takes you to the file loading window where you can choose the file to load. The Export button takes you to the export tab and allows you to export your current MakeHuman project to one of the variety of export formats the MakeHuman program supports. Supported formats include mesh formats such as Filmbox (fbx),Wavefront obj, Sterolithography (stl), rig/rigging related formats such as Biovision Hierarchy and various maps such as Light Maps, and UV maps. Load, Save and Export options are explained in more detail!LINK!http://www.makehuman.org/doc/node/load_save_and_export.html -- here!/LINK!. == The Edit partition == [[File:the_toolbar-undoredo.jpeg]] The Edit partitionof the toolbar, provides shortcut buttons that deal with editing actions. The Undo button is to undo the last action that has been performed. Undo can be pressed to cancel actions until you have undone all of the actions taken during your current MakeHuman session. The Redo button is related to the Undo button and will restore the last action that has been undone. Redo can be pressed until all undone actions performed during the current MakeHuman session have been restored. The reset button will cancel all actions within the current MakeHuman session and restore the default settings for all MakeHuman controls. This effectively returns your MakeHuman session to the state shown when the program first opens. == The View partition == [[File:the_toolbar-smoothandwire.jpeg]] The View partitiontoolbar, provides buttons that manage the display mode of the character (Smooth, Wireframe, Background on/off). Wireframe mode allows you to view the mesh in Wireframe mode like in many other 3D applications. The Background option allows you to load a background reference image. The pose button is used for posing. When a rig and pose is active this button is enabled and allows you to toggle between the selected pose and the default rest pose. The "smooth" is particularly interesting since it subdivides the mesh. The image below shows the mesh smooth and normal, using the wireframe mode. This usesCatmull–Clarksubdivision to create a much more dense smoother mesh. [[File:nsmooth.png]] == The Symmetry partition == [[File:the_toolbar-symmetry.jpeg]] The Symmetry partitiontoolbar, provides buttons that manage transferring settings applied to one side of the character to the other side of the character so that the character features become symmetrical. [[File:symm.png]] There are options for right to left symmetry, left to right symmetry and a general symmetry mode. Left to right symmetry applies all changes made on the left side to the right side of the human/character. Right to left symmetry applies all changes made on the right side to the left side of the human/character. General symmetry mode behaves differently. When it is active all changes made are symmetrical when it is inactive any changes made to any one side affect that one side only. So this mode therefore allows the user to selectively apply symmetry. In the above image the Left side of the character is made symmetrical with the right side of the character. == The camera partition == [[File:the_toolbar-cameraviews.jpeg]] The Camera partition of the toolbar, manages the Camera placement within the scene so that the character can be viewed from different angles and zoom levels. (Front View, Back View, Left View, Right View, Top View, Bottom View, Global Camera, Face Camera and Reset Camera options are available). == The help partition == [[File:the_toolbar-screengrbhelp.jpeg]] The Help partition, allows you to save a quick screenshot of the view or to access to the help tab. By default the toolbars are arranged in the order shown above horizontally next to each other along the top edge of the MakeHuman window. The four partition toolbars can each be moved to any area of your screen in Windows by clicking and holding the left mouse button on the left edge of the toolbar and dragging it to the location you desire. 0080af888cf1b9eb306599b3ecc53eb31fdac2c1 779 778 2016-05-24T12:04:35Z Joepal 14 wikitext text/x-wiki The "Main Toolbar" is actually made up of six separate partitions. !IMAGE!Pictures/the_toolbar.jpeg!/IMAGE! == The Files partition == !IMAGE!Pictures/the_toolbar-file.jpeg!/IMAGE! This partition provides shortcut buttons that deal with saving or loading files (Save, Load, Export). The save button performs the same action as pressing the Files tab and then the Save tab when there is no filename specified. If the file was given a name earlier and saved once this button performs a quick save over the file specified earlier. The Load button takes you to the file loading window where you can choose the file to load. The Export button takes you to the export tab and allows you to export your current MakeHuman project to one of the variety of export formats the MakeHuman program supports. Supported formats include mesh formats such as Filmbox (fbx),Wavefront obj, Sterolithography (stl), rig/rigging related formats such as Biovision Hierarchy and various maps such as Light Maps, and UV maps. Load, Save and Export options are explained in more detail!LINK!http://www.makehuman.org/doc/node/load_save_and_export.html -- here!/LINK!. == The Edit partition == !IMAGE!Pictures/the_toolbar-undoredo.jpeg!/IMAGE! The Edit partitionof the toolbar, provides shortcut buttons that deal with editing actions. The Undo button is to undo the last action that has been performed. Undo can be pressed to cancel actions until you have undone all of the actions taken during your current MakeHuman session. The Redo button is related to the Undo button and will restore the last action that has been undone. Redo can be pressed until all undone actions performed during the current MakeHuman session have been restored. The reset button will cancel all actions within the current MakeHuman session and restore the default settings for all MakeHuman controls. This effectively returns your MakeHuman session to the state shown when the program first opens. == The View partition == !IMAGE!Pictures/the_toolbar-smoothandwire.jpeg!/IMAGE! The View partitiontoolbar, provides buttons that manage the display mode of the character (Smooth, Wireframe, Background on/off). Wireframe mode allows you to view the mesh in Wireframe mode like in many other 3D applications. The Background option allows you to load a background reference image. The pose button is used for posing. When a rig and pose is active this button is enabled and allows you to toggle between the selected pose and the default rest pose. The "smooth" is particularly interesting since it subdivides the mesh. The image below shows the mesh smooth and normal, using the wireframe mode. This usesCatmull–Clarksubdivision to create a much more dense smoother mesh. !IMAGE!Pictures/nsmooth.png!/IMAGE! == The Symmetry partition == !IMAGE!Pictures/the_toolbar-symmetry.jpeg!/IMAGE! The Symmetry partitiontoolbar, provides buttons that manage transferring settings applied to one side of the character to the other side of the character so that the character features become symmetrical. !IMAGE!Pictures/symm.png!/IMAGE! There are options for right to left symmetry, left to right symmetry and a general symmetry mode. Left to right symmetry applies all changes made on the left side to the right side of the human/character. Right to left symmetry applies all changes made on the right side to the left side of the human/character. General symmetry mode behaves differently. When it is active all changes made are symmetrical when it is inactive any changes made to any one side affect that one side only. So this mode therefore allows the user to selectively apply symmetry. In the above image the Left side of the character is made symmetrical with the right side of the character. == The camera partition == !IMAGE!Pictures/the_toolbar-cameraviews.jpeg!/IMAGE! The Camera partition of the toolbar, manages the Camera placement within the scene so that the character can be viewed from different angles and zoom levels. (Front View, Back View, Left View, Right View, Top View, Bottom View, Global Camera, Face Camera and Reset Camera options are available). == The help partition == !IMAGE!Pictures/the_toolbar-screengrbhelp.jpeg!/IMAGE! The Help partition, allows you to save a quick screenshot of the view or to access to the help tab. By default the toolbars are arranged in the order shown above horizontally next to each other along the top edge of the MakeHuman window. The four partition toolbars can each be moved to any area of your screen in Windows by clicking and holding the left mouse button on the left edge of the toolbar and dragging it to the location you desire. 618e89959626e40ea32592fb248180dfd2157469 778 681 2016-05-24T12:04:08Z Joepal 14 wikitext text/x-wiki The "Main Toolbar" is actually made up of six separate partitions. !IMAGE!Pictures/the_toolbar.jpeg!/IMAGE! They are: * The Files partition * The Edit partition * The View partition * The Symmetry partition * The Camera partition == The Files partition == !IMAGE!Pictures/the_toolbar-file.jpeg!/IMAGE! This partition provides shortcut buttons that deal with saving or loading files (Save, Load, Export). The save button performs the same action as pressing the Files tab and then the Save tab when there is no filename specified. If the file was given a name earlier and saved once this button performs a quick save over the file specified earlier. The Load button takes you to the file loading window where you can choose the file to load. The Export button takes you to the export tab and allows you to export your current MakeHuman project to one of the variety of export formats the MakeHuman program supports. Supported formats include mesh formats such as Filmbox (fbx),Wavefront obj, Sterolithography (stl), rig/rigging related formats such as Biovision Hierarchy and various maps such as Light Maps, and UV maps. Load, Save and Export options are explained in more detail!LINK!http://www.makehuman.org/doc/node/load_save_and_export.html -- here!/LINK!. == The Edit partition == !IMAGE!Pictures/the_toolbar-undoredo.jpeg!/IMAGE! The Edit partitionof the toolbar, provides shortcut buttons that deal with editing actions. The Undo button is to undo the last action that has been performed. Undo can be pressed to cancel actions until you have undone all of the actions taken during your current MakeHuman session. The Redo button is related to the Undo button and will restore the last action that has been undone. Redo can be pressed until all undone actions performed during the current MakeHuman session have been restored. The reset button will cancel all actions within the current MakeHuman session and restore the default settings for all MakeHuman controls. This effectively returns your MakeHuman session to the state shown when the program first opens. == The View partition == !IMAGE!Pictures/the_toolbar-smoothandwire.jpeg!/IMAGE! The View partitiontoolbar, provides buttons that manage the display mode of the character (Smooth, Wireframe, Background on/off). Wireframe mode allows you to view the mesh in Wireframe mode like in many other 3D applications. The Background option allows you to load a background reference image. The pose button is used for posing. When a rig and pose is active this button is enabled and allows you to toggle between the selected pose and the default rest pose. The "smooth" is particularly interesting since it subdivides the mesh. The image below shows the mesh smooth and normal, using the wireframe mode. This usesCatmull–Clarksubdivision to create a much more dense smoother mesh. !IMAGE!Pictures/nsmooth.png!/IMAGE! == The Symmetry partition == !IMAGE!Pictures/the_toolbar-symmetry.jpeg!/IMAGE! The Symmetry partitiontoolbar, provides buttons that manage transferring settings applied to one side of the character to the other side of the character so that the character features become symmetrical. !IMAGE!Pictures/symm.png!/IMAGE! There are options for right to left symmetry, left to right symmetry and a general symmetry mode. Left to right symmetry applies all changes made on the left side to the right side of the human/character. Right to left symmetry applies all changes made on the right side to the left side of the human/character. General symmetry mode behaves differently. When it is active all changes made are symmetrical when it is inactive any changes made to any one side affect that one side only. So this mode therefore allows the user to selectively apply symmetry. In the above image the Left side of the character is made symmetrical with the right side of the character. == The camera partition == !IMAGE!Pictures/the_toolbar-cameraviews.jpeg!/IMAGE! The Camera partition of the toolbar, manages the Camera placement within the scene so that the character can be viewed from different angles and zoom levels. (Front View, Back View, Left View, Right View, Top View, Bottom View, Global Camera, Face Camera and Reset Camera options are available). == The help partition == !IMAGE!Pictures/the_toolbar-screengrbhelp.jpeg!/IMAGE! The Help partition, allows you to save a quick screenshot of the view or to access to the help tab. By default the toolbars are arranged in the order shown above horizontally next to each other along the top edge of the MakeHuman window. The four partition toolbars can each be moved to any area of your screen in Windows by clicking and holding the left mouse button on the left edge of the toolbar and dragging it to the location you desire. e4f1186397965d1a2903c6dd290fa496b1d3442c 681 2016-05-20T08:31:18Z Joepal 14 Created page with "The "Main Toolbar" is actually made up of six separate partitions. !IMAGE!Pictures/the_toolbar.jpeg!/IMAGE! They are: * Files partition * The Edit partition * The View p..." wikitext text/x-wiki The "Main Toolbar" is actually made up of six separate partitions. !IMAGE!Pictures/the_toolbar.jpeg!/IMAGE! They are: * Files partition * The Edit partition * The View partition * The Symmetry partition * The Camera partition === Files partition === !IMAGE!Pictures/the_toolbar-file.jpeg!/IMAGE! This partition provides shortcut buttons that deal with saving or loading files (Save, Load, Export). The save button performs the same action as pressing the Files tab and then the Save tab when there is no filename specified. If the file was given a name earlier and saved once this button performs a quick save over the file specified earlier. The Load button takes you to the file loading window where you can choose the file to load. The Export button takes you to the export tab and allows you to export your current MakeHuman project to one of the variety of export formats the MakeHuman program supports. Supported formats include mesh formats such as Filmbox (fbx),Wavefront obj, Sterolithography (stl), rig/rigging related formats such as Biovision Hierarchy and various maps such as Light Maps, and UV maps. Load, Save and Export options are explained in more detail!LINK!http://www.makehuman.org/doc/node/load_save_and_export.html -- here!/LINK!. === The Edit partition === !IMAGE!Pictures/the_toolbar-undoredo.jpeg!/IMAGE! The Edit partitionof the toolbar, provides shortcut buttons that deal with editing actions. The Undo button is to undo the last action that has been performed. Undo can be pressed to cancel actions until you have undone all of the actions taken during your current MakeHuman session. The Redo button is related to the Undo button and will restore the last action that has been undone. Redo can be pressed until all undone actions performed during the current MakeHuman session have been restored. The reset button will cancel all actions within the current MakeHuman session and restore the default settings for all MakeHuman controls. This effectively returns your MakeHuman session to the state shown when the program first opens. === The View partition === !IMAGE!Pictures/the_toolbar-smoothandwire.jpeg!/IMAGE! The View partitiontoolbar, provides buttons that manage the display mode of the character (Smooth, Wireframe, Background on/off). Wireframe mode allows you to view the mesh in Wireframe mode like in many other 3D applications. The Background option allows you to load a background reference image. The pose button is used for posing. When a rig and pose is active this button is enabled and allows you to toggle between the selected pose and the default rest pose. The "smooth" is particularly interesting since it subdivides the mesh. The image below shows the mesh smooth and normal, using the wireframe mode. This usesCatmull–Clarksubdivision to create a much more dense smoother mesh. !IMAGE!Pictures/nsmooth.png!/IMAGE! === The Symmetry partition === !IMAGE!Pictures/the_toolbar-symmetry.jpeg!/IMAGE! The Symmetry partitiontoolbar, provides buttons that manage transferring settings applied to one side of the character to the other side of the character so that the character features become symmetrical. !IMAGE!Pictures/symm.png!/IMAGE! There are options for right to left symmetry, left to right symmetry and a general symmetry mode. Left to right symmetry applies all changes made on the left side to the right side of the human/character. Right to left symmetry applies all changes made on the right side to the left side of the human/character. General symmetry mode behaves differently. When it is active all changes made are symmetrical when it is inactive any changes made to any one side affect that one side only. So this mode therefore allows the user to selectively apply symmetry. In the above image the Left side of the character is made symmetrical with the right side of the character. === The camera partition === !IMAGE!Pictures/the_toolbar-cameraviews.jpeg!/IMAGE! The Camera partition of the toolbar, manages the Camera placement within the scene so that the character can be viewed from different angles and zoom levels. (Front View, Back View, Left View, Right View, Top View, Bottom View, Global Camera, Face Camera and Reset Camera options are available). === The help partition === !IMAGE!Pictures/the_toolbar-screengrbhelp.jpeg!/IMAGE! The Help partition, allows you to save a quick screenshot of the view or to access to the help tab. By default the toolbars are arranged in the order shown above horizontally next to each other along the top edge of the MakeHuman window. The four partition toolbars can each be moved to any area of your screen in Windows by clicking and holding the left mouse button on the left edge of the toolbar and dragging it to the location you desire. 80f4f2b9a89134d494f627d65b43cbe4ff5eebc3 Documentation:Translation 3000 242 1122 709 2016-07-05T17:42:28Z Aranuvir 17 wikitext text/x-wiki Our GUI is available in many languages, but translations are not yet complete. Anyway now contributing in order to add a new language is very easy, since the MakeHuman project is now available for translation on!LINK!http://www.transifex.com/organization/makehuman/ -- Transifex!/LINK!. [[File:languages.png]] Transifex is a web application for localization in an easy and agile way. [[File:transifex.png]] If you want to help the MakeHuman project by translating the GUI into your language, you first need to create an account on Transifex. Then, when logged in, you can go to!LINK!https://www.transifex.com/projects/p/makehuman/ -- the MakeHuman Transifex page!/LINK!and click on the appropriate language you want to translate. Then click the "Join team" button. Now you can click the current release name (for example "Alpha 8") entry and click "Translate now". If you want to make a translation in another language that is not yet listed, click "request language" on the!LINK!https://www.transifex.com/projects/p/makehuman/ -- MakeHuman transifex page!/LINK!. We will make sure to accept it as fast as possible, so you can start translating. Translating is quick and easy. You can select the "Untranslated strings" filter to show only the things left to translate. Click the first word on the left, and in the center of the screen enter your translation in the input box. When done typing, simply press the TAB button on your keyboard, and it automatically goes to the next entry. Repeat this process untill everything is translated. You can leave things open you are uncertain about, and leave them for later. Perhaps others know a good solution. You can interrupt your work at any time and continue working later, or leave it for others to finish. If you already have a translated file on your hard disk (for example you made modifications to an already existing language .ini file of MakeHuman, or you have filled in a .missing language file), you can upload it as translation and Transifex will automatically include it in the translation. You will be also able to download the json file of your language, in order to put it in makehuman/data/languages. On restarting MakeHuman, the new language will be available as an option under "Settings". 2877660507206002bc974025d890c65d6fb91454 709 2016-05-20T11:20:24Z Joepal 14 Created page with "Our GUI is available in many languages, but translations are not yet complete. Anyway now contributing in order to add a new language is very easy, since the MakeHuman projec..." wikitext text/x-wiki Our GUI is available in many languages, but translations are not yet complete. Anyway now contributing in order to add a new language is very easy, since the MakeHuman project is now available for translation on!LINK!http://www.transifex.com/organization/makehuman/ -- Transifex!/LINK!. !IMAGE!Pictures/languages.png!/IMAGE! Transifex is a web application for localization in an easy and agile way. !IMAGE!Pictures/transifex.png!/IMAGE! If you want to help the MakeHuman project by translating the GUI into your language, you first need to create an account on Transifex. Then, when logged in, you can go to!LINK!https://www.transifex.com/projects/p/makehuman/ -- the MakeHuman Transifex page!/LINK!and click on the appropriate language you want to translate. Then click the "Join team" button. Now you can click the current release name (for example "Alpha 8") entry and click "Translate now". If you want to make a translation in another language that is not yet listed, click "request language" on the!LINK!https://www.transifex.com/projects/p/makehuman/ -- MakeHuman transifex page!/LINK!. We will make sure to accept it as fast as possible, so you can start translating. Translating is quick and easy. You can select the "Untranslated strings" filter to show only the things left to translate. Click the first word on the left, and in the center of the screen enter your translation in the input box. When done typing, simply press the TAB button on your keyboard, and it automatically goes to the next entry. Repeat this process untill everything is translated. You can leave things open you are uncertain about, and leave them for later. Perhaps others know a good solution. You can interrupt your work at any time and continue working later, or leave it for others to finish. If you already have a translated file on your hard disk (for example you made modifications to an already existing language .ini file of MakeHuman, or you have filled in a .missing language file), you can upload it as translation and Transifex will automatically include it in the translation. You will be also able to download the json file of your language, in order to put it in makehuman/data/languages. On restarting MakeHuman, the new language will be available as an option under "Settings". 0f42bbe79b0b0c62b2ec15891814f4c84311995f Documentation:Unreal Engine ALS V4 3000 604 1784 1750 2020-04-18T14:56:42Z Assetdk 89 /* Simple move to */ wikitext text/x-wiki =UE4 Advanced Locomotion System= I finally got the animation retargeting working, still there are problems, but this should bring you a step further. ===What was the problem=== Clearly there is a bug in UE4! During the retargeting we have at least tree elements, the animation, the source skeleton and the target skeleton. (Add to this the retargeting manager stuff for each skeleton.) What happens - at least in theory - is that some bones are used/referred to in the animation, and for each of these bones UE4 must transfer the parameters 1:1, and the result is complied in the new animation. For some reason this went wrong; in some cases UE4 crash due to an array index runs over... and since I know a bit about programming, my guess it that this is a simple case of using the wrong index for the wrong skeleton! In this case it is rather easy to guess that the source skeleton (or perhaps the source animation) have more bones than the target skeleton... likewise, you can guess that things could go OK, if only the target skeleton has more bones than the source! ===Solution - or rater a crude fix!!=== Since I was keen on getting on; i simply added some fake virtual bones to the target skeleton! Enough bones so the "source index" would not be higher than the max of the target skeleton area! This is indeed a crude fix, as we can assume that the retargeting process will fail to find any use in those fake virtual bones. Fact is that you can now retarget the '''Advanced Locomotion System V4'''!! ==The next problems== There are still some problems! But these are of a more general character.... I tried to retarget one of the PARAGON characters. And as for the Makehuman/Mixamo characters only a subset of the system is working. IK can be made working, somewhat, following some of the steps shown in the tutorials below - but ALS V4 holds a lot of changes and we need a lot more virtual IK bones, a subject I don't enough about yet.... Since ALS V4 is a very strong product I hope that there will be a better UE4, and perhaps one of us could make one to share? I will share what I got, as soon as I have made it a bit better. Take a look at the older ALS tutorials for "odd" skeletons: {{#ev:youtube|kTrjEeoNi4w}} {{#ev:youtube|fK1LIqLu1GU}} ==Standard ALS setup, and some very useful tips on changing many meshes!!== I you are running UE4.23 you may be in "luck" - that is UE4.23 will download ALS V3 and then these tutorials will probably totally work for you! (However that will then not be useful for you, when you upgrade to >UE4.23, unless you can and want to migrate ALS V3..) {{#ev:youtube|SA4xgZiqsLI}} {{#ev:youtube|4pnN5OnXaSc}} And this is the link to the secret playlist: [https://www.youtube.com/playlist?list=PLAR8Kc1ZLLKZjnKI_idX7Ik7mN0VORSm_ ALSV3 - Working With Other Characters] =Simple move to= ==This is the code== <nowiki> Begin Object Class=/Script/BlueprintGraph.K2Node_Event Name="K2Node_Event_0" EventReference=(MemberParent=Class'"/Script/AIModule.BTTask_BlueprintBase"',MemberName="ReceiveExecuteAI") bOverrideFunction=True NodePosX=80 NodePosY=176 NodeGuid=5AECDA0D45B70CD6668F66A7DC975CD2 CustomProperties Pin (PinId=3C0830D94F34DA7FFC919ABD8D07D819,PinName="OutputDelegate",Direction="EGPD_Output",PinType.PinCategory="delegate",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(MemberParent=Class'"/Script/AIModule.BTTask_BlueprintBase"',MemberName="ReceiveExecuteAI"),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=69B84B6B4DD42B047415718632E6DFD3,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_6 B3E31D744074C0D14FED0C8F8C681276,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=124B67D740510AF48431A599D3D958CD,PinName="OwnerController",PinToolTip="Owner Controller\nAIController Object Reference",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AIModule.AIController"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_6 10A7070A413C34545368BE801B05788B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=A3E2D46643D499E91DBF73A5DA0CF087,PinName="ControlledPawn",PinToolTip="Controlled Pawn\nPawn Object Reference",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.Pawn"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_Knot_0 177328B947C1CEE15ABE90B78D46A073,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_0" FunctionReference=(MemberName="FinishExecute",bSelfContext=True) NodePosX=1552 NodePosY=158 NodeGuid=7F4B9E9A457006867FE18AB2259E3249 CustomProperties Pin (PinId=6801586248E6C067280774B134C03A2B,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_AIMoveTo_0 5F9FCD2948C55C39017AC4812985F463,K2Node_CallFunction_5 D82E41C74E7EC356EBA0CD90B6C377C7,K2Node_CallFunction_6 502B59E9467A9ACC50D13D97BCA52317,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=4BF230B84A974CA60637F78EDA63F129,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=4E080BB04C5439D6AF2B17837FAD8BB9,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nBTTask Blueprint Base Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AIModule.BTTask_BlueprintBase"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=30D99D514AEA9B63F0EEBDB7CC915CBB,PinName="bSuccess",PinToolTip="Success\nBoolean",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="true",AutogeneratedDefaultValue="false",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_0" VariableReference=(MemberName="vector",MemberGuid=2383D6DF4191BE6B60BDE8BE165E5A19,bSelfContext=True) NodePosX=480 NodePosY=320 NodeGuid=7A6ACF594AC784584D7A94BF323664B1 CustomProperties Pin (PinId=3CA4A56A4E23C67452B040827EF53D71,PinName="vector",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/AIModule.BlackboardKeySelector"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_7 16B663A843E1697ECAEA0480591C4805,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=D7F06E7E4D16A9C8990450A573FC8565,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=BlueprintGeneratedClass'"/Game/BSP_StoopidShooter/Blueprints/AI_Controller/StoopidShooter/T_Move2Location.T_Move2Location_C"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_6" FunctionReference=(MemberParent=Class'"/Script/AIModule.AIBlueprintHelperLibrary"',MemberName="SimpleMoveToLocation") NodePosX=1104 NodePosY=176 NodeGuid=9F83ABE44F9168D607AA39A535A01AF9 CustomProperties Pin (PinId=B3E31D744074C0D14FED0C8F8C681276,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_Event_0 69B84B6B4DD42B047415718632E6DFD3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=502B59E9467A9ACC50D13D97BCA52317,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_0 6801586248E6C067280774B134C03A2B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=D797DE824659A113617873B49ED86BC0,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nAIBlueprint Helper Library Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AIModule.AIBlueprintHelperLibrary"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultObject="/Script/AIModule.Default__AIBlueprintHelperLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=10A7070A413C34545368BE801B05788B,PinName="Controller",PinToolTip="Controller\nController Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.Controller"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_Event_0 124B67D740510AF48431A599D3D958CD,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=11255715444928DF42D86C8C5F26D97B,PinName="Goal",PinToolTip="Goal\nVector (by ref)",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/CoreUObject.Vector"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,DefaultValue="0, 0, 0",AutogeneratedDefaultValue="0, 0, 0",LinkedTo=(K2Node_CallFunction_7 5823F3C04DFCD160BC9B3592A7C44404,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_7" bIsPureFunc=True FunctionReference=(MemberParent=Class'"/Script/AIModule.BTFunctionLibrary"',MemberName="GetBlackboardValueAsVector") NodePosX=688 NodePosY=272 NodeGuid=389A44084DDEB110E84DE99609723334 CustomProperties Pin (PinId=B1BB35434625D06F5534108D6262D381,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nBTFunction Library Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AIModule.BTFunctionLibrary"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultObject="/Script/AIModule.Default__BTFunctionLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=7084B9A5496507597348EF8BFB4F5C1C,PinName="NodeOwner",PinToolTip="Node Owner\nBTNode Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AIModule.BTNode"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=16B663A843E1697ECAEA0480591C4805,PinName="Key",PinToolTip="Key\nBlackboard Key Selector Structure (by ref)",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/AIModule.BlackboardKeySelector"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_VariableGet_0 3CA4A56A4E23C67452B040827EF53D71,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=5823F3C04DFCD160BC9B3592A7C44404,PinName="ReturnValue",PinToolTip="Return Value\nVector\n\nGet Blackboard Value as Vector",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/CoreUObject.Vector"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="0, 0, 0",AutogeneratedDefaultValue="0, 0, 0",LinkedTo=(K2Node_CallFunction_3 6F171EB04C15797B82BB299A704B1C9E,K2Node_CallFunction_6 11255715444928DF42D86C8C5F26D97B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object </nowiki> a554870270db6012eaacce63c26daabe015eac65 1750 1749 2020-04-04T18:35:04Z Assetdk 89 /* Simple move to */ wikitext text/x-wiki =UE4 Advanced Locomotion System= I finally got the animation retargeting working, still there are problems, but this should bring you a step further. ===What was the problem=== Clearly there is a bug in UE4! During the retargeting we have at least tree elements, the animation, the source skeleton and the target skeleton. (Add to this the retargeting manager stuff for each skeleton.) What happens - at least in theory - is that some bones are used/referred to in the animation, and for each of these bones UE4 must transfer the parameters 1:1, and the result is complied in the new animation. For some reason this went wrong; in some cases UE4 crash due to an array index runs over... and since I know a bit about programming, my guess it that this is a simple case of using the wrong index for the wrong skeleton! In this case it is rather easy to guess that the source skeleton (or perhaps the source animation) have more bones than the target skeleton... likewise, you can guess that things could go OK, if only the target skeleton has more bones than the source! ===Solution - or rater a crude fix!!=== Since I was keen on getting on; i simply added some fake virtual bones to the target skeleton! Enough bones so the "source index" would not be higher than the max of the target skeleton area! This is indeed a crude fix, as we can assume that the retargeting process will fail to find any use in those fake virtual bones. Fact is that you can now retarget the '''Advanced Locomotion System V4'''!! ==The next problems== There are still some problems! But these are of a more general character.... I tried to retarget one of the PARAGON characters. And as for the Makehuman/Mixamo characters only a subset of the system is working. IK can be made working, somewhat, following some of the steps shown in the tutorials below - but ALS V4 holds a lot of changes and we need a lot more virtual IK bones, a subject I don't enough about yet.... Since ALS V4 is a very strong product I hope that there will be a better UE4, and perhaps one of us could make one to share? I will share what I got, as soon as I have made it a bit better. Take a look at the older ALS tutorials for "odd" skeletons: {{#ev:youtube|kTrjEeoNi4w}} {{#ev:youtube|fK1LIqLu1GU}} ==Standard ALS setup, and some very useful tips on changing many meshes!!== I you are running UE4.23 you may be in "luck" - that is UE4.23 will download ALS V3 and then these tutorials will probably totally work for you! (However that will then not be useful for you, when you upgrade to >UE4.23, unless you can and want to migrate ALS V3..) {{#ev:youtube|SA4xgZiqsLI}} {{#ev:youtube|4pnN5OnXaSc}} And this is the link to the secret playlist: [https://www.youtube.com/playlist?list=PLAR8Kc1ZLLKZjnKI_idX7Ik7mN0VORSm_ ALSV3 - Working With Other Characters] =Simple move to= <nowiki> Begin Object Class=/Script/BlueprintGraph.K2Node_Event Name="K2Node_Event_0" EventReference=(MemberParent=Class'"/Script/AIModule.BTTask_BlueprintBase"',MemberName="ReceiveExecuteAI") bOverrideFunction=True NodePosX=80 NodePosY=176 NodeGuid=5AECDA0D45B70CD6668F66A7DC975CD2 CustomProperties Pin (PinId=3C0830D94F34DA7FFC919ABD8D07D819,PinName="OutputDelegate",Direction="EGPD_Output",PinType.PinCategory="delegate",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(MemberParent=Class'"/Script/AIModule.BTTask_BlueprintBase"',MemberName="ReceiveExecuteAI"),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=69B84B6B4DD42B047415718632E6DFD3,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_6 B3E31D744074C0D14FED0C8F8C681276,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=124B67D740510AF48431A599D3D958CD,PinName="OwnerController",PinToolTip="Owner Controller\nAIController Object Reference",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AIModule.AIController"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_6 10A7070A413C34545368BE801B05788B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=A3E2D46643D499E91DBF73A5DA0CF087,PinName="ControlledPawn",PinToolTip="Controlled Pawn\nPawn Object Reference",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.Pawn"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_Knot_0 177328B947C1CEE15ABE90B78D46A073,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_0" FunctionReference=(MemberName="FinishExecute",bSelfContext=True) NodePosX=1552 NodePosY=158 NodeGuid=7F4B9E9A457006867FE18AB2259E3249 CustomProperties Pin (PinId=6801586248E6C067280774B134C03A2B,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_AIMoveTo_0 5F9FCD2948C55C39017AC4812985F463,K2Node_CallFunction_5 D82E41C74E7EC356EBA0CD90B6C377C7,K2Node_CallFunction_6 502B59E9467A9ACC50D13D97BCA52317,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=4BF230B84A974CA60637F78EDA63F129,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=4E080BB04C5439D6AF2B17837FAD8BB9,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nBTTask Blueprint Base Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AIModule.BTTask_BlueprintBase"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=30D99D514AEA9B63F0EEBDB7CC915CBB,PinName="bSuccess",PinToolTip="Success\nBoolean",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="true",AutogeneratedDefaultValue="false",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_0" VariableReference=(MemberName="vector",MemberGuid=2383D6DF4191BE6B60BDE8BE165E5A19,bSelfContext=True) NodePosX=480 NodePosY=320 NodeGuid=7A6ACF594AC784584D7A94BF323664B1 CustomProperties Pin (PinId=3CA4A56A4E23C67452B040827EF53D71,PinName="vector",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/AIModule.BlackboardKeySelector"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_7 16B663A843E1697ECAEA0480591C4805,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=D7F06E7E4D16A9C8990450A573FC8565,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=BlueprintGeneratedClass'"/Game/BSP_StoopidShooter/Blueprints/AI_Controller/StoopidShooter/T_Move2Location.T_Move2Location_C"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_6" FunctionReference=(MemberParent=Class'"/Script/AIModule.AIBlueprintHelperLibrary"',MemberName="SimpleMoveToLocation") NodePosX=1104 NodePosY=176 NodeGuid=9F83ABE44F9168D607AA39A535A01AF9 CustomProperties Pin (PinId=B3E31D744074C0D14FED0C8F8C681276,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_Event_0 69B84B6B4DD42B047415718632E6DFD3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=502B59E9467A9ACC50D13D97BCA52317,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_0 6801586248E6C067280774B134C03A2B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=D797DE824659A113617873B49ED86BC0,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nAIBlueprint Helper Library Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AIModule.AIBlueprintHelperLibrary"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultObject="/Script/AIModule.Default__AIBlueprintHelperLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=10A7070A413C34545368BE801B05788B,PinName="Controller",PinToolTip="Controller\nController Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.Controller"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_Event_0 124B67D740510AF48431A599D3D958CD,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=11255715444928DF42D86C8C5F26D97B,PinName="Goal",PinToolTip="Goal\nVector (by ref)",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/CoreUObject.Vector"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,DefaultValue="0, 0, 0",AutogeneratedDefaultValue="0, 0, 0",LinkedTo=(K2Node_CallFunction_7 5823F3C04DFCD160BC9B3592A7C44404,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_7" bIsPureFunc=True FunctionReference=(MemberParent=Class'"/Script/AIModule.BTFunctionLibrary"',MemberName="GetBlackboardValueAsVector") NodePosX=688 NodePosY=272 NodeGuid=389A44084DDEB110E84DE99609723334 CustomProperties Pin (PinId=B1BB35434625D06F5534108D6262D381,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nBTFunction Library Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AIModule.BTFunctionLibrary"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultObject="/Script/AIModule.Default__BTFunctionLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=7084B9A5496507597348EF8BFB4F5C1C,PinName="NodeOwner",PinToolTip="Node Owner\nBTNode Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AIModule.BTNode"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=16B663A843E1697ECAEA0480591C4805,PinName="Key",PinToolTip="Key\nBlackboard Key Selector Structure (by ref)",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/AIModule.BlackboardKeySelector"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_VariableGet_0 3CA4A56A4E23C67452B040827EF53D71,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=5823F3C04DFCD160BC9B3592A7C44404,PinName="ReturnValue",PinToolTip="Return Value\nVector\n\nGet Blackboard Value as Vector",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/CoreUObject.Vector"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="0, 0, 0",AutogeneratedDefaultValue="0, 0, 0",LinkedTo=(K2Node_CallFunction_3 6F171EB04C15797B82BB299A704B1C9E,K2Node_CallFunction_6 11255715444928DF42D86C8C5F26D97B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object </nowiki> 5ea56f56636ecb42458a9db882dbe674e51a9105 1749 1717 2020-04-04T12:59:42Z Assetdk 89 /* UE4 Advanced Locomotion System */ wikitext text/x-wiki =UE4 Advanced Locomotion System= I finally got the animation retargeting working, still there are problems, but this should bring you a step further. ===What was the problem=== Clearly there is a bug in UE4! During the retargeting we have at least tree elements, the animation, the source skeleton and the target skeleton. (Add to this the retargeting manager stuff for each skeleton.) What happens - at least in theory - is that some bones are used/referred to in the animation, and for each of these bones UE4 must transfer the parameters 1:1, and the result is complied in the new animation. For some reason this went wrong; in some cases UE4 crash due to an array index runs over... and since I know a bit about programming, my guess it that this is a simple case of using the wrong index for the wrong skeleton! In this case it is rather easy to guess that the source skeleton (or perhaps the source animation) have more bones than the target skeleton... likewise, you can guess that things could go OK, if only the target skeleton has more bones than the source! ===Solution - or rater a crude fix!!=== Since I was keen on getting on; i simply added some fake virtual bones to the target skeleton! Enough bones so the "source index" would not be higher than the max of the target skeleton area! This is indeed a crude fix, as we can assume that the retargeting process will fail to find any use in those fake virtual bones. Fact is that you can now retarget the '''Advanced Locomotion System V4'''!! ==The next problems== There are still some problems! But these are of a more general character.... I tried to retarget one of the PARAGON characters. And as for the Makehuman/Mixamo characters only a subset of the system is working. IK can be made working, somewhat, following some of the steps shown in the tutorials below - but ALS V4 holds a lot of changes and we need a lot more virtual IK bones, a subject I don't enough about yet.... Since ALS V4 is a very strong product I hope that there will be a better UE4, and perhaps one of us could make one to share? I will share what I got, as soon as I have made it a bit better. Take a look at the older ALS tutorials for "odd" skeletons: {{#ev:youtube|kTrjEeoNi4w}} {{#ev:youtube|fK1LIqLu1GU}} ==Standard ALS setup, and some very useful tips on changing many meshes!!== I you are running UE4.23 you may be in "luck" - that is UE4.23 will download ALS V3 and then these tutorials will probably totally work for you! (However that will then not be useful for you, when you upgrade to >UE4.23, unless you can and want to migrate ALS V3..) {{#ev:youtube|SA4xgZiqsLI}} {{#ev:youtube|4pnN5OnXaSc}} And this is the link to the secret playlist: [https://www.youtube.com/playlist?list=PLAR8Kc1ZLLKZjnKI_idX7Ik7mN0VORSm_ ALSV3 - Working With Other Characters] =Simple move to= Begin Object Class=/Script/BlueprintGraph.K2Node_Event Name="K2Node_Event_0" EventReference=(MemberParent=Class'"/Script/AIModule.BTTask_BlueprintBase"',MemberName="ReceiveExecuteAI") bOverrideFunction=True NodePosX=80 NodePosY=176 NodeGuid=5AECDA0D45B70CD6668F66A7DC975CD2 CustomProperties Pin (PinId=3C0830D94F34DA7FFC919ABD8D07D819,PinName="OutputDelegate",Direction="EGPD_Output",PinType.PinCategory="delegate",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(MemberParent=Class'"/Script/AIModule.BTTask_BlueprintBase"',MemberName="ReceiveExecuteAI"),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=69B84B6B4DD42B047415718632E6DFD3,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_6 B3E31D744074C0D14FED0C8F8C681276,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=124B67D740510AF48431A599D3D958CD,PinName="OwnerController",PinToolTip="Owner Controller\nAIController Object Reference",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AIModule.AIController"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_6 10A7070A413C34545368BE801B05788B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=A3E2D46643D499E91DBF73A5DA0CF087,PinName="ControlledPawn",PinToolTip="Controlled Pawn\nPawn Object Reference",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.Pawn"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_Knot_0 177328B947C1CEE15ABE90B78D46A073,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_0" FunctionReference=(MemberName="FinishExecute",bSelfContext=True) NodePosX=1552 NodePosY=158 NodeGuid=7F4B9E9A457006867FE18AB2259E3249 CustomProperties Pin (PinId=6801586248E6C067280774B134C03A2B,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_AIMoveTo_0 5F9FCD2948C55C39017AC4812985F463,K2Node_CallFunction_5 D82E41C74E7EC356EBA0CD90B6C377C7,K2Node_CallFunction_6 502B59E9467A9ACC50D13D97BCA52317,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=4BF230B84A974CA60637F78EDA63F129,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=4E080BB04C5439D6AF2B17837FAD8BB9,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nBTTask Blueprint Base Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AIModule.BTTask_BlueprintBase"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=30D99D514AEA9B63F0EEBDB7CC915CBB,PinName="bSuccess",PinToolTip="Success\nBoolean",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="true",AutogeneratedDefaultValue="false",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_0" VariableReference=(MemberName="vector",MemberGuid=2383D6DF4191BE6B60BDE8BE165E5A19,bSelfContext=True) NodePosX=480 NodePosY=320 NodeGuid=7A6ACF594AC784584D7A94BF323664B1 CustomProperties Pin (PinId=3CA4A56A4E23C67452B040827EF53D71,PinName="vector",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/AIModule.BlackboardKeySelector"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_7 16B663A843E1697ECAEA0480591C4805,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=D7F06E7E4D16A9C8990450A573FC8565,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=BlueprintGeneratedClass'"/Game/BSP_StoopidShooter/Blueprints/AI_Controller/StoopidShooter/T_Move2Location.T_Move2Location_C"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_6" FunctionReference=(MemberParent=Class'"/Script/AIModule.AIBlueprintHelperLibrary"',MemberName="SimpleMoveToLocation") NodePosX=1104 NodePosY=176 NodeGuid=9F83ABE44F9168D607AA39A535A01AF9 CustomProperties Pin (PinId=B3E31D744074C0D14FED0C8F8C681276,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_Event_0 69B84B6B4DD42B047415718632E6DFD3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=502B59E9467A9ACC50D13D97BCA52317,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_0 6801586248E6C067280774B134C03A2B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=D797DE824659A113617873B49ED86BC0,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nAIBlueprint Helper Library Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AIModule.AIBlueprintHelperLibrary"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultObject="/Script/AIModule.Default__AIBlueprintHelperLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=10A7070A413C34545368BE801B05788B,PinName="Controller",PinToolTip="Controller\nController Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.Controller"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_Event_0 124B67D740510AF48431A599D3D958CD,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=11255715444928DF42D86C8C5F26D97B,PinName="Goal",PinToolTip="Goal\nVector (by ref)",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/CoreUObject.Vector"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,DefaultValue="0, 0, 0",AutogeneratedDefaultValue="0, 0, 0",LinkedTo=(K2Node_CallFunction_7 5823F3C04DFCD160BC9B3592A7C44404,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_7" bIsPureFunc=True FunctionReference=(MemberParent=Class'"/Script/AIModule.BTFunctionLibrary"',MemberName="GetBlackboardValueAsVector") NodePosX=688 NodePosY=272 NodeGuid=389A44084DDEB110E84DE99609723334 CustomProperties Pin (PinId=B1BB35434625D06F5534108D6262D381,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nBTFunction Library Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AIModule.BTFunctionLibrary"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultObject="/Script/AIModule.Default__BTFunctionLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=7084B9A5496507597348EF8BFB4F5C1C,PinName="NodeOwner",PinToolTip="Node Owner\nBTNode Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AIModule.BTNode"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=16B663A843E1697ECAEA0480591C4805,PinName="Key",PinToolTip="Key\nBlackboard Key Selector Structure (by ref)",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/AIModule.BlackboardKeySelector"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_VariableGet_0 3CA4A56A4E23C67452B040827EF53D71,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=5823F3C04DFCD160BC9B3592A7C44404,PinName="ReturnValue",PinToolTip="Return Value\nVector\n\nGet Blackboard Value as Vector",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/CoreUObject.Vector"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="0, 0, 0",AutogeneratedDefaultValue="0, 0, 0",LinkedTo=(K2Node_CallFunction_3 6F171EB04C15797B82BB299A704B1C9E,K2Node_CallFunction_6 11255715444928DF42D86C8C5F26D97B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object 64212fa4b59f86f9ec988ba92432435bfd839208 1717 1716 2020-03-01T17:35:25Z Assetdk 89 /* Standard ALS setup, and some very useful tips on changing many meshes!! */ wikitext text/x-wiki =UE4 Advanced Locomotion System= I finally got the animation retargeting working, still there are problems, but this should bring you a step further. ===What was the problem=== Clearly there is a bug in UE4! During the retargeting we have at least tree elements, the animation, the source skeleton and the target skeleton. (Add to this the retargeting manager stuff for each skeleton.) What happens - at least in theory - is that some bones are used/referred to in the animation, and for each of these bones UE4 must transfer the parameters 1:1, and the result is complied in the new animation. For some reason this went wrong; in some cases UE4 crash due to an array index runs over... and since I know a bit about programming, my guess it that this is a simple case of using the wrong index for the wrong skeleton! In this case it is rather easy to guess that the source skeleton (or perhaps the source animation) have more bones than the target skeleton... likewise, you can guess that things could go OK, if only the target skeleton has more bones than the source! ===Solution - or rater a crude fix!!=== Since I was keen on getting on; i simply added some fake virtual bones to the target skeleton! Enough bones so the "source index" would not be higher than the max of the target skeleton area! This is indeed a crude fix, as we can assume that the retargeting process will fail to find any use in those fake virtual bones. Fact is that you can now retarget the '''Advanced Locomotion System V4'''!! ==The next problems== There are still some problems! But these are of a more general character.... I tried to retarget one of the PARAGON characters. And as for the Makehuman/Mixamo characters only a subset of the system is working. IK can be made working, somewhat, following some of the steps shown in the tutorials below - but ALS V4 holds a lot of changes and we need a lot more virtual IK bones, a subject I don't enough about yet.... Since ALS V4 is a very strong product I hope that there will be a better UE4, and perhaps one of us could make one to share? I will share what I got, as soon as I have made it a bit better. Take a look at the older ALS tutorials for "odd" skeletons: {{#ev:youtube|kTrjEeoNi4w}} {{#ev:youtube|fK1LIqLu1GU}} ==Standard ALS setup, and some very useful tips on changing many meshes!!== I you are running UE4.23 you may be in "luck" - that is UE4.23 will download ALS V3 and then these tutorials will probably totally work for you! (However that will then not be useful for you, when you upgrade to >UE4.23, unless you can and want to migrate ALS V3..) {{#ev:youtube|SA4xgZiqsLI}} {{#ev:youtube|4pnN5OnXaSc}} And this is the link to the secret playlist: [https://www.youtube.com/playlist?list=PLAR8Kc1ZLLKZjnKI_idX7Ik7mN0VORSm_ ALSV3 - Working With Other Characters] e9a652ad4f0f4aee3f23fd547d4185c022aaeb89 1716 1715 2020-03-01T17:28:10Z Assetdk 89 /* Standard ALS setup, and some very useful tips on changing many meshes!! */ wikitext text/x-wiki =UE4 Advanced Locomotion System= I finally got the animation retargeting working, still there are problems, but this should bring you a step further. ===What was the problem=== Clearly there is a bug in UE4! During the retargeting we have at least tree elements, the animation, the source skeleton and the target skeleton. (Add to this the retargeting manager stuff for each skeleton.) What happens - at least in theory - is that some bones are used/referred to in the animation, and for each of these bones UE4 must transfer the parameters 1:1, and the result is complied in the new animation. For some reason this went wrong; in some cases UE4 crash due to an array index runs over... and since I know a bit about programming, my guess it that this is a simple case of using the wrong index for the wrong skeleton! In this case it is rather easy to guess that the source skeleton (or perhaps the source animation) have more bones than the target skeleton... likewise, you can guess that things could go OK, if only the target skeleton has more bones than the source! ===Solution - or rater a crude fix!!=== Since I was keen on getting on; i simply added some fake virtual bones to the target skeleton! Enough bones so the "source index" would not be higher than the max of the target skeleton area! This is indeed a crude fix, as we can assume that the retargeting process will fail to find any use in those fake virtual bones. Fact is that you can now retarget the '''Advanced Locomotion System V4'''!! ==The next problems== There are still some problems! But these are of a more general character.... I tried to retarget one of the PARAGON characters. And as for the Makehuman/Mixamo characters only a subset of the system is working. IK can be made working, somewhat, following some of the steps shown in the tutorials below - but ALS V4 holds a lot of changes and we need a lot more virtual IK bones, a subject I don't enough about yet.... Since ALS V4 is a very strong product I hope that there will be a better UE4, and perhaps one of us could make one to share? I will share what I got, as soon as I have made it a bit better. Take a look at the older ALS tutorials for "odd" skeletons: {{#ev:youtube|kTrjEeoNi4w}} {{#ev:youtube|fK1LIqLu1GU}} ==Standard ALS setup, and some very useful tips on changing many meshes!!== I you are running UE4.23 you may be in "luck" - that is UE4.23 will download ALS V3 and then these tutorials will probably totally work for you! (However that will then not be useful for you, when you upgrade to >UE4.23, unless you can and want to migrate ALS V3..) {{#ev:youtube|SA4xgZiqsLI}} {{#ev:youtube|4pnN5OnXaSc}} b2872777052f605cfae39ba5c2502221c3e6195d 1715 1714 2020-03-01T17:24:55Z Assetdk 89 /* Standard ALS setup, and some very useful tips on changing many meshes!! */ wikitext text/x-wiki =UE4 Advanced Locomotion System= I finally got the animation retargeting working, still there are problems, but this should bring you a step further. ===What was the problem=== Clearly there is a bug in UE4! During the retargeting we have at least tree elements, the animation, the source skeleton and the target skeleton. (Add to this the retargeting manager stuff for each skeleton.) What happens - at least in theory - is that some bones are used/referred to in the animation, and for each of these bones UE4 must transfer the parameters 1:1, and the result is complied in the new animation. For some reason this went wrong; in some cases UE4 crash due to an array index runs over... and since I know a bit about programming, my guess it that this is a simple case of using the wrong index for the wrong skeleton! In this case it is rather easy to guess that the source skeleton (or perhaps the source animation) have more bones than the target skeleton... likewise, you can guess that things could go OK, if only the target skeleton has more bones than the source! ===Solution - or rater a crude fix!!=== Since I was keen on getting on; i simply added some fake virtual bones to the target skeleton! Enough bones so the "source index" would not be higher than the max of the target skeleton area! This is indeed a crude fix, as we can assume that the retargeting process will fail to find any use in those fake virtual bones. Fact is that you can now retarget the '''Advanced Locomotion System V4'''!! ==The next problems== There are still some problems! But these are of a more general character.... I tried to retarget one of the PARAGON characters. And as for the Makehuman/Mixamo characters only a subset of the system is working. IK can be made working, somewhat, following some of the steps shown in the tutorials below - but ALS V4 holds a lot of changes and we need a lot more virtual IK bones, a subject I don't enough about yet.... Since ALS V4 is a very strong product I hope that there will be a better UE4, and perhaps one of us could make one to share? I will share what I got, as soon as I have made it a bit better. Take a look at the older ALS tutorials for "odd" skeletons: {{#ev:youtube|kTrjEeoNi4w}} {{#ev:youtube|fK1LIqLu1GU}} ==Standard ALS setup, and some very useful tips on changing many meshes!!== {{#ev:youtube|SA4xgZiqsLI}} 4pnN5OnXaSc {{#ev:youtube|4pnN5OnXaSc}} 0115c86430db6472e385fb00d4585fa0f2609f1a 1714 1713 2020-03-01T17:19:08Z Assetdk 89 /* The next problems */ wikitext text/x-wiki =UE4 Advanced Locomotion System= I finally got the animation retargeting working, still there are problems, but this should bring you a step further. ===What was the problem=== Clearly there is a bug in UE4! During the retargeting we have at least tree elements, the animation, the source skeleton and the target skeleton. (Add to this the retargeting manager stuff for each skeleton.) What happens - at least in theory - is that some bones are used/referred to in the animation, and for each of these bones UE4 must transfer the parameters 1:1, and the result is complied in the new animation. For some reason this went wrong; in some cases UE4 crash due to an array index runs over... and since I know a bit about programming, my guess it that this is a simple case of using the wrong index for the wrong skeleton! In this case it is rather easy to guess that the source skeleton (or perhaps the source animation) have more bones than the target skeleton... likewise, you can guess that things could go OK, if only the target skeleton has more bones than the source! ===Solution - or rater a crude fix!!=== Since I was keen on getting on; i simply added some fake virtual bones to the target skeleton! Enough bones so the "source index" would not be higher than the max of the target skeleton area! This is indeed a crude fix, as we can assume that the retargeting process will fail to find any use in those fake virtual bones. Fact is that you can now retarget the '''Advanced Locomotion System V4'''!! ==The next problems== There are still some problems! But these are of a more general character.... I tried to retarget one of the PARAGON characters. And as for the Makehuman/Mixamo characters only a subset of the system is working. IK can be made working, somewhat, following some of the steps shown in the tutorials below - but ALS V4 holds a lot of changes and we need a lot more virtual IK bones, a subject I don't enough about yet.... Since ALS V4 is a very strong product I hope that there will be a better UE4, and perhaps one of us could make one to share? I will share what I got, as soon as I have made it a bit better. Take a look at the older ALS tutorials for "odd" skeletons: {{#ev:youtube|kTrjEeoNi4w}} {{#ev:youtube|fK1LIqLu1GU}} ==Standard ALS setup, and some very useful tips on changing many meshes!!== {{#ev:youtube|SA4xgZiqsLI}} a1704e5f8e0c4c52135d4db445a29fef0f283377 1713 1712 2020-03-01T17:15:49Z Assetdk 89 /* =What was the problem */ wikitext text/x-wiki =UE4 Advanced Locomotion System= I finally got the animation retargeting working, still there are problems, but this should bring you a step further. ===What was the problem=== Clearly there is a bug in UE4! During the retargeting we have at least tree elements, the animation, the source skeleton and the target skeleton. (Add to this the retargeting manager stuff for each skeleton.) What happens - at least in theory - is that some bones are used/referred to in the animation, and for each of these bones UE4 must transfer the parameters 1:1, and the result is complied in the new animation. For some reason this went wrong; in some cases UE4 crash due to an array index runs over... and since I know a bit about programming, my guess it that this is a simple case of using the wrong index for the wrong skeleton! In this case it is rather easy to guess that the source skeleton (or perhaps the source animation) have more bones than the target skeleton... likewise, you can guess that things could go OK, if only the target skeleton has more bones than the source! ===Solution - or rater a crude fix!!=== Since I was keen on getting on; i simply added some fake virtual bones to the target skeleton! Enough bones so the "source index" would not be higher than the max of the target skeleton area! This is indeed a crude fix, as we can assume that the retargeting process will fail to find any use in those fake virtual bones. Fact is that you can now retarget the '''Advanced Locomotion System V4'''!! ==The next problems== There are still some problems! But these are of a more general character.... I tried to retarget one of the PARAGON characters. And as for the Makehuman/Mixamo characters only a subset of the system is working. IK can be made working, somewhat, following some of the steps shown in the tutorials below - but ALS V4 holds a lot of changes and we need a lot more virtual IK bones, a subject I don't enough about yet.... Since ALS V4 is a very strong product I hope that there will be a better UE4, and perhaps one of us could make one to share? I will share what I got, as soon as I have made it a bit better. Take a look at the older ALS tutorials for "odd" skeletons: {{#ev:youtube|kTrjEeoNi4w}} 27bc2c181bcdc1a2b5c51984fd01b488c8b463e5 1712 1711 2020-03-01T17:13:18Z Assetdk 89 /* UE4 Advanced Locomotion System */ wikitext text/x-wiki =UE4 Advanced Locomotion System= I finally got the animation retargeting working, still there are problems, but this should bring you a step further. ===What was the problem== Clearly there is a bug in UE4! During the retargeting we have at least tree elements, the animation, the source skeleton and the target skeleton. (Add to this the retargeting manager stuff for each skeleton.) What happens - at least in theory - is that some bones are used/referred to in the animation, and for each of these bones UE4 must transfer the parameters 1:1, and the result is complied in the new animation. For some reason this went wrong; in some cases UE4 crash due to an array index runs over... and since I know a bit about programming, my guess it that this is a simple case of using the wrong index for the wrong skeleton! In this case it is rather easy to guess that the source skeleton (or perhaps the source animation) have more bones than the target skeleton... likewise, you can guess that things could go OK, if only the target skeleton has more bones than the source! ===Solution - or rater a crude fix!!=== Since I was keen on getting on; i simply added some fake virtual bones to the target skeleton! Enough bones so the "source index" would not be higher than the max of the target skeleton area! This is indeed a crude fix, as we can assume that the retargeting process will fail to find any use in those fake virtual bones. Fact is that you can now retarget the '''Advanced Locomotion System V4'''!! ==The next problems== There are still some problems! But these are of a more general character.... I tried to retarget one of the PARAGON characters. And as for the Makehuman/Mixamo characters only a subset of the system is working. IK can be made working, somewhat, following some of the steps shown in the tutorials below - but ALS V4 holds a lot of changes and we need a lot more virtual IK bones, a subject I don't enough about yet.... Since ALS V4 is a very strong product I hope that there will be a better UE4, and perhaps one of us could make one to share? I will share what I got, as soon as I have made it a bit better. Take a look at the older ALS tutorials for "odd" skeletons: {{#ev:youtube|kTrjEeoNi4w}} 6a83322a1cd63d88296902e410e7bbdf32c28a8d 1711 1710 2020-03-01T17:12:16Z Assetdk 89 /* UE4 Advanced Locomotion System */ wikitext text/x-wiki =UE4 Advanced Locomotion System= I finally got the animation retargeting working, still there are problems, but this should bring you a step further. ===What was the problem== Clearly there is a bug in UE4! During the retargeting we have at least tree elements, the animation, the source skeleton and the target skeleton. (Add to this the retargeting manager stuff for each skeleton.) What happens - at least in theory - is that some bones are used/referred to in the animation, and for each of these bones UE4 must transfer the parameters 1:1, and the result is complied in the new animation. For some reason this went wrong; in some cases UE4 crash due to an array index runs over... and since I know a bit about programming, my guess it that this is a simple case of using the wrong index for the wrong skeleton! In this case it is rather easy to guess that the source skeleton (or perhaps the source animation) have more bones than the target skeleton... likewise, you can guess that things could go OK, if only the target skeleton has more bones than the source! ===Solution - or rater a crude fix!!== Since I was keen on getting on; i simply added some fake virtual bones to the target skeleton! Enough bones so the "source index" would not be higher than the max of the target skeleton area! This is indeed a crude fix, as we can assume that the retargeting process will fail to find any use in those fake virtual bones. Fact is that you can now retarget the '''Advanced Locomotion System V4'''!! ==The next problems== There are still some problems! But these are of a more general character.... I tried to retarget one of the PARAGON characters. And as for the Makehuman/Mixamo characters only a subset of the system is working. IK can be made working, somewhat, following some of the steps shown in the tutorials below - but ALS V4 holds a lot of changes and we need a lot more virtual IK bones, a subject I don't enough about yet.... Since ALS V4 is a very strong product I hope that there will be a better UE4, and perhaps one of us could make one to share? I will share what I got, as soon as I have made it a bit better. Take a look at the older ALS tutorials for "odd" skeletons: {{#ev:youtube|kTrjEeoNi4w}} 697648fc9911807aa0da9fce5b2a919bc82005cd 1710 2020-03-01T17:10:21Z Assetdk 89 Created page with "=UE4 Advanced Locomotion System=" wikitext text/x-wiki =UE4 Advanced Locomotion System= 56c833da47c7c9216cf4ed39a5436ef440ca464b Documentation:Unreal Engine Vehicle Variety Pack 3000 606 1751 1747 2020-04-07T10:41:20Z Assetdk 89 /* Getting SK_Truck_Box into Blender and split it! */ wikitext text/x-wiki Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product/bbcb90a03f844edbb20c8b89ee16ea32 Vehicle Variety Pack]. However I wanted to get access to the car and to the interior of the box van... Since you need to use Blender for that, I think this gives us a better way of learning a bit about getting props, using Blender in combination with UE4. This is the tasks I intend to describe: * Getting SM_Truck_Box into Blender! and split the mesh into separate parts! * Saving the separate parts * Failed experiment, with morph targets * Pivot points... when going to UE4 * Save the work and import to UE4 * New blueprint for the Truck The end result should be that you can open back doors of the Truck, also you can open the left front door and you can roll down the left window. These are some screen shots of that: [[File:UE4-Truck-Result.png]] ==Getting SK_Truck_Box into Blender and split it!== Please note that I am NOT working with Blender everyday. I realize that there are better/easy ways of doing the selection/delete/cut process. If you want your final result to be perfect please run a fre tutorials on how to use the Edit mode/selection options etc. You should be able to install the package into UE4 and from there you go to Skeletons and export SK_Truck_Box. You can probably get even better results using SM_Truck_Box, but I did the SK_ version. Go to Blender 2.8, and import the skeleton in it's separate collection. Use the standard import setting for this. Save the .blend file in a separate folder! Duplicate this collection and start working on the The trick here is that you should now go to edit mode and select all parts that you want as a separate mesh in UE4. Please start with the from left window! This can be rather tricky, and it will be very tricky doing the front door. These are the shortcut you can use for selection: * Left-mouse+shift clicks selects (Vertex/Edge/Face) - the selection is highlighted * Ctrl-+ selects what is connected to the current selection, this is not always logic to me but it seldomly fails. * H-hey, hides your currently selection - when you have something hidden the H-key the visible selection to that. * Alt-H, unhide showing your current selection * Ctrl-Z will undo selections etc. (the result you see is not always logic) In the end you can jump between H and Alt-H to ensure that you have the full selection.... remember to save once in a while! When the window is selected correctly you should be able to do this: [[File:UE4-Truck-Window1.png]] Notice that the entire Mesh for the window is two layers, so you first select the outside layer then the layer. And take well care that you do not select some of the internals! Now this is the important part, you can now split-up the mesh like this: * Still in Edit-mode, use the Mesh-menu/Separate/Selection option... This will split up the mesh so you have the window in a separate part. Rename the Window part to window_left. * In the current collection you can now hide/see the window/Truck using the eye icons. * Duplicate the collection, and for the new collection delete all the parts that is not under the the window. [[File:UE4-Truck-Window2.png]] IMPORTANT: Rename the item in the hierarchy to Vehicle_ROOT, and export the entire thing as an FBX.... using the same [http://www.makehumancommunity.org/wiki/Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there#FBX_export_settings export settings] you used for your makehuman FBX - but scale should be changed form 0.1 to 1.0. '''This is a good time to save your .blend file!''' ==Failed experiment, with morph targets== The end result should be that you can open/close windows and doors. My first attempt was using morph-targets. Like whit the Makehuman characters this require that you do two truck collections and select/shif t-selec the two meshes and "join as shapes" - the selection process is much the same, but the results was very poor, as the doors do not animate to scale, they actually '''morph''', not very surprisingly! ==Pivot points... when going to UE4== When you import the Window you must realize two things: * Invent a name standard for your meshes and your files. You will have a lot of FBX files, and you need to keep a bit of track of what you did and how you imported all of your assets. * Your Window will not have the correct pivot point! The trick here is to position the mesh, in Blender, precisely you you can rotate the window with the door... In your first attempt, this is how it will look in UE4 - but you want the transform/rotation/size gizmo to sit like you see it to the right! [[File:UE4-Truck-Window3.png]] To do this you need to go to Blender and position your mesh close to position 0, 0, 0 - oddly enough, the pivot point in Blender has no effect on the one imported to UE4. However since we want the window to move '''with''' the door, you want the rotation point to sit to the left of the window. Tip: You can simply find the exact position when you have the left door positioned correctly to it's rotation point, you can then position the window "on top" of the door and save the two in separate FBX files. The process of getting the left front door selected is rather tricky - so I suggest you start with the windows (do both) and then move on to practice on the back-doors! When you get the hang of this it is just work-work-work! The Blender navigation, and selection, is not easy... ? You can save the same Collection for each part you separate out, then duplicate... and delete the stuff you do not need. In the end you will have one collection holding all the parts and several other collection holding the parts. Naturally when you are finished you duplicate the collection one "last" time and delete all the small parts.. so you have the Truck body in it's own collection. Remember: * Save your .blend file often, perhaps even in versions * Rename say, Vehicle_ROOT.010 to Vehicle_ROOT - for all of your FBX files. ==.... import to UE4== You will, at some point discover that not every thing works fine. You will, by now, know how to make the materials from textures - but you can also re-use those that comes with the package. Somehow the textures will fit correctly to all of your imported assets... I really don't fully understand textures and UV, but it works! The Vehicle models are top quality - but when you import them they look "jacket" - some thing like this: [[File:UE4-Truck-Window4.png]] There is a reason for this, and two solutions: * Under the wrench Icon you see a modifier, this was imported from UE4.... and you can either delete this modifier, before saving all the FBX files - or * Don't use ''Preserve smoothing groups'', when you import! I do not know if you will need the modifier at some point, so perhaps you should save everything in a separate .blend file? For some reason the mirrors are corrupted after import, not very important - but yet!! Now for the fun part!! ==Setup driving...== You will need to setup a few blueprints and some retargeting for this to work: * BP_BoxTruck you make a CHILD blueprint of this and you need to add meshes etc. as shown below! * AB_BoxTruck must be retarget to the new SK_Truck_Box skeleton, give it a new name! * You may also need to retarget the original Skeleton to the new one? When this has been done you can drive the Truck directly, as instructed for all the vehicles. Wheels should be turning and you can animate. Now for your modifications of the BP_BoxTruck blueprint, for each mesh you need a separate Skeletal mesh component (like when you make modular characters). In this case it looks like this: [[File:UE4-Truck-Window5.png]] Please note two thing! The window is placed under the front door. I found that that will work nicely and you do not need to worry about the transform/rotation. This will require that you saved both the door and the window correctly, with the correct pivot-point, as described above! The pivot must be correct for the rotation, but you can adjust the transformation as needed (in UE4). I have set up a few interaction Inputs, note that you can use the same key board key for different interactions. The space key is here used for Vehicle Handbreak, but for jump when in ThirdPerson! [[File:UE4-Truck-Window6.png]] I also have the E key sending the "Interact" InputAction. And that specific blueprint, under your BP_BoxTruck child blue print, should look something like this: [[File:UE4-Truck-Window7.png]] Please note that because the left window was attached '''under''' the left door, it will rotate with the door. If you try to rotate both (as when you connect the last SetRelativeRotation it will swing oddly/double... this is a standard door open BP, you can use it in many places - given that the pivot is correct! In this case the left front door opens when you hold E-key and it colse again when you let go of the E-key. You can also make variations over this, say I made the window go down, when using the V-key. I had to adjust the Y transform - as the window will not fit into the door the "animation" looks odd when seen from inside. Also a made the double back-door open/close with B-key, in this case there is a bool to check what you want to do and you can naturally do the same for the window/door. [[File:UE4-Truck-Window8.png]] =Makehuman!= The next step will be to add the character to the vehicle, that is he should be able to interact with the Truck - adding event overlap to the front/back doors, and some animations to climb/enter/exit in the correct ways - perhaps he can even interact with goods in the box, or an existing driver? I will get back on that... 8da9f374e63b9f090ea54b0f2ecd7c7b40f9189f 1747 1746 2020-03-09T22:00:17Z Assetdk 89 /* Setup driving... */ wikitext text/x-wiki Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product/bbcb90a03f844edbb20c8b89ee16ea32 Vehicle Variety Pack]. However I wanted to get access to the car and to the interior of the box van... Since you need to use Blender for that, I think this gives us a better way of learning a bit about getting props, using Blender in combination with UE4. This is the tasks I intend to describe: * Getting SM_Truck_Box into Blender! and split the mesh into separate parts! * Saving the separate parts * Failed experiment, with morph targets * Pivot points... when going to UE4 * Save the work and import to UE4 * New blueprint for the Truck The end result should be that you can open back doors of the Truck, also you can open the left front door and you can roll down the left window. These are some screen shots of that: [[File:UE4-Truck-Result.png]] ==Getting SK_Truck_Box into Blender and split it!== You should be able to install the package into UE4 and from there you go to Skeletons and export SK_Truck_Box. You can probably get even better results using SM_Truck_Box, but I did the SK_ version. Go to Blender 2.8, and import the skeleton in it's separate collection. Use the standard import setting for this. Save the .blend file in a separate folder! Duplicate this collection and start working on the The trick here is that you should now go to edit mode and select all parts that you want as a separate mesh in UE4. Please start with the from left window! This can be rather tricky, and it will be very tricky doing the front door. These are the shortcut you can use for selection: * Left-mouse+shift clicks selects (Vertex/Edge/Face) - the selection is highlighted * Ctrl-+ selects what is connected to the current selection, this is not always logic to me but it seldomly fails. * H-hey, hides your currently selection - when you have something hidden the H-key the visible selection to that. * Alt-H, unhide showing your current selection * Ctrl-Z will undo selections etc. (the result you see is not always logic) In the end you can jump between H and Alt-H to ensure that you have the full selection.... remember to save once in a while! When the window is selected correctly you should be able to do this: [[File:UE4-Truck-Window1.png]] Notice that the entire Mesh for the window is two layers, so you first select the outside layer then the layer. And take well care that you do not select some of the internals! Now this is the important part, you can now split-up the mesh like this: * Still in Edit-mode, use the Mesh-menu/Separate/Selection option... This will split up the mesh so you have the window in a separate part. Rename the Window part to window_left. * In the current collection you can now hide/see the window/Truck using the eye icons. * Duplicate the collection, and for the new collection delete all the parts that is not under the the window. [[File:UE4-Truck-Window2.png]] IMPORTANT: Rename the item in the hierarchy to Vehicle_ROOT, and export the entire thing as an FBX.... using the same [http://www.makehumancommunity.org/wiki/Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there#FBX_export_settings export settings] you used for your makehuman FBX - but scale should be changed form 0.1 to 1.0. '''This is a good time to save your .blend file!''' ==Failed experiment, with morph targets== The end result should be that you can open/close windows and doors. My first attempt was using morph-targets. Like whit the Makehuman characters this require that you do two truck collections and select/shif t-selec the two meshes and "join as shapes" - the selection process is much the same, but the results was very poor, as the doors do not animate to scale, they actually '''morph''', not very surprisingly! ==Pivot points... when going to UE4== When you import the Window you must realize two things: * Invent a name standard for your meshes and your files. You will have a lot of FBX files, and you need to keep a bit of track of what you did and how you imported all of your assets. * Your Window will not have the correct pivot point! The trick here is to position the mesh, in Blender, precisely you you can rotate the window with the door... In your first attempt, this is how it will look in UE4 - but you want the transform/rotation/size gizmo to sit like you see it to the right! [[File:UE4-Truck-Window3.png]] To do this you need to go to Blender and position your mesh close to position 0, 0, 0 - oddly enough, the pivot point in Blender has no effect on the one imported to UE4. However since we want the window to move '''with''' the door, you want the rotation point to sit to the left of the window. Tip: You can simply find the exact position when you have the left door positioned correctly to it's rotation point, you can then position the window "on top" of the door and save the two in separate FBX files. The process of getting the left front door selected is rather tricky - so I suggest you start with the windows (do both) and then move on to practice on the back-doors! When you get the hang of this it is just work-work-work! The Blender navigation, and selection, is not easy... ? You can save the same Collection for each part you separate out, then duplicate... and delete the stuff you do not need. In the end you will have one collection holding all the parts and several other collection holding the parts. Naturally when you are finished you duplicate the collection one "last" time and delete all the small parts.. so you have the Truck body in it's own collection. Remember: * Save your .blend file often, perhaps even in versions * Rename say, Vehicle_ROOT.010 to Vehicle_ROOT - for all of your FBX files. ==.... import to UE4== You will, at some point discover that not every thing works fine. You will, by now, know how to make the materials from textures - but you can also re-use those that comes with the package. Somehow the textures will fit correctly to all of your imported assets... I really don't fully understand textures and UV, but it works! The Vehicle models are top quality - but when you import them they look "jacket" - some thing like this: [[File:UE4-Truck-Window4.png]] There is a reason for this, and two solutions: * Under the wrench Icon you see a modifier, this was imported from UE4.... and you can either delete this modifier, before saving all the FBX files - or * Don't use ''Preserve smoothing groups'', when you import! I do not know if you will need the modifier at some point, so perhaps you should save everything in a separate .blend file? For some reason the mirrors are corrupted after import, not very important - but yet!! Now for the fun part!! ==Setup driving...== You will need to setup a few blueprints and some retargeting for this to work: * BP_BoxTruck you make a CHILD blueprint of this and you need to add meshes etc. as shown below! * AB_BoxTruck must be retarget to the new SK_Truck_Box skeleton, give it a new name! * You may also need to retarget the original Skeleton to the new one? When this has been done you can drive the Truck directly, as instructed for all the vehicles. Wheels should be turning and you can animate. Now for your modifications of the BP_BoxTruck blueprint, for each mesh you need a separate Skeletal mesh component (like when you make modular characters). In this case it looks like this: [[File:UE4-Truck-Window5.png]] Please note two thing! The window is placed under the front door. I found that that will work nicely and you do not need to worry about the transform/rotation. This will require that you saved both the door and the window correctly, with the correct pivot-point, as described above! The pivot must be correct for the rotation, but you can adjust the transformation as needed (in UE4). I have set up a few interaction Inputs, note that you can use the same key board key for different interactions. The space key is here used for Vehicle Handbreak, but for jump when in ThirdPerson! [[File:UE4-Truck-Window6.png]] I also have the E key sending the "Interact" InputAction. And that specific blueprint, under your BP_BoxTruck child blue print, should look something like this: [[File:UE4-Truck-Window7.png]] Please note that because the left window was attached '''under''' the left door, it will rotate with the door. If you try to rotate both (as when you connect the last SetRelativeRotation it will swing oddly/double... this is a standard door open BP, you can use it in many places - given that the pivot is correct! In this case the left front door opens when you hold E-key and it colse again when you let go of the E-key. You can also make variations over this, say I made the window go down, when using the V-key. I had to adjust the Y transform - as the window will not fit into the door the "animation" looks odd when seen from inside. Also a made the double back-door open/close with B-key, in this case there is a bool to check what you want to do and you can naturally do the same for the window/door. [[File:UE4-Truck-Window8.png]] =Makehuman!= The next step will be to add the character to the vehicle, that is he should be able to interact with the Truck - adding event overlap to the front/back doors, and some animations to climb/enter/exit in the correct ways - perhaps he can even interact with goods in the box, or an existing driver? I will get back on that... 9df42b53621e40232c0eb504a8fae6b9a5e9bfb6 1746 1743 2020-03-09T21:55:24Z Assetdk 89 /* Setup driving... */ wikitext text/x-wiki Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product/bbcb90a03f844edbb20c8b89ee16ea32 Vehicle Variety Pack]. However I wanted to get access to the car and to the interior of the box van... Since you need to use Blender for that, I think this gives us a better way of learning a bit about getting props, using Blender in combination with UE4. This is the tasks I intend to describe: * Getting SM_Truck_Box into Blender! and split the mesh into separate parts! * Saving the separate parts * Failed experiment, with morph targets * Pivot points... when going to UE4 * Save the work and import to UE4 * New blueprint for the Truck The end result should be that you can open back doors of the Truck, also you can open the left front door and you can roll down the left window. These are some screen shots of that: [[File:UE4-Truck-Result.png]] ==Getting SK_Truck_Box into Blender and split it!== You should be able to install the package into UE4 and from there you go to Skeletons and export SK_Truck_Box. You can probably get even better results using SM_Truck_Box, but I did the SK_ version. Go to Blender 2.8, and import the skeleton in it's separate collection. Use the standard import setting for this. Save the .blend file in a separate folder! Duplicate this collection and start working on the The trick here is that you should now go to edit mode and select all parts that you want as a separate mesh in UE4. Please start with the from left window! This can be rather tricky, and it will be very tricky doing the front door. These are the shortcut you can use for selection: * Left-mouse+shift clicks selects (Vertex/Edge/Face) - the selection is highlighted * Ctrl-+ selects what is connected to the current selection, this is not always logic to me but it seldomly fails. * H-hey, hides your currently selection - when you have something hidden the H-key the visible selection to that. * Alt-H, unhide showing your current selection * Ctrl-Z will undo selections etc. (the result you see is not always logic) In the end you can jump between H and Alt-H to ensure that you have the full selection.... remember to save once in a while! When the window is selected correctly you should be able to do this: [[File:UE4-Truck-Window1.png]] Notice that the entire Mesh for the window is two layers, so you first select the outside layer then the layer. And take well care that you do not select some of the internals! Now this is the important part, you can now split-up the mesh like this: * Still in Edit-mode, use the Mesh-menu/Separate/Selection option... This will split up the mesh so you have the window in a separate part. Rename the Window part to window_left. * In the current collection you can now hide/see the window/Truck using the eye icons. * Duplicate the collection, and for the new collection delete all the parts that is not under the the window. [[File:UE4-Truck-Window2.png]] IMPORTANT: Rename the item in the hierarchy to Vehicle_ROOT, and export the entire thing as an FBX.... using the same [http://www.makehumancommunity.org/wiki/Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there#FBX_export_settings export settings] you used for your makehuman FBX - but scale should be changed form 0.1 to 1.0. '''This is a good time to save your .blend file!''' ==Failed experiment, with morph targets== The end result should be that you can open/close windows and doors. My first attempt was using morph-targets. Like whit the Makehuman characters this require that you do two truck collections and select/shif t-selec the two meshes and "join as shapes" - the selection process is much the same, but the results was very poor, as the doors do not animate to scale, they actually '''morph''', not very surprisingly! ==Pivot points... when going to UE4== When you import the Window you must realize two things: * Invent a name standard for your meshes and your files. You will have a lot of FBX files, and you need to keep a bit of track of what you did and how you imported all of your assets. * Your Window will not have the correct pivot point! The trick here is to position the mesh, in Blender, precisely you you can rotate the window with the door... In your first attempt, this is how it will look in UE4 - but you want the transform/rotation/size gizmo to sit like you see it to the right! [[File:UE4-Truck-Window3.png]] To do this you need to go to Blender and position your mesh close to position 0, 0, 0 - oddly enough, the pivot point in Blender has no effect on the one imported to UE4. However since we want the window to move '''with''' the door, you want the rotation point to sit to the left of the window. Tip: You can simply find the exact position when you have the left door positioned correctly to it's rotation point, you can then position the window "on top" of the door and save the two in separate FBX files. The process of getting the left front door selected is rather tricky - so I suggest you start with the windows (do both) and then move on to practice on the back-doors! When you get the hang of this it is just work-work-work! The Blender navigation, and selection, is not easy... ? You can save the same Collection for each part you separate out, then duplicate... and delete the stuff you do not need. In the end you will have one collection holding all the parts and several other collection holding the parts. Naturally when you are finished you duplicate the collection one "last" time and delete all the small parts.. so you have the Truck body in it's own collection. Remember: * Save your .blend file often, perhaps even in versions * Rename say, Vehicle_ROOT.010 to Vehicle_ROOT - for all of your FBX files. ==.... import to UE4== You will, at some point discover that not every thing works fine. You will, by now, know how to make the materials from textures - but you can also re-use those that comes with the package. Somehow the textures will fit correctly to all of your imported assets... I really don't fully understand textures and UV, but it works! The Vehicle models are top quality - but when you import them they look "jacket" - some thing like this: [[File:UE4-Truck-Window4.png]] There is a reason for this, and two solutions: * Under the wrench Icon you see a modifier, this was imported from UE4.... and you can either delete this modifier, before saving all the FBX files - or * Don't use ''Preserve smoothing groups'', when you import! I do not know if you will need the modifier at some point, so perhaps you should save everything in a separate .blend file? For some reason the mirrors are corrupted after import, not very important - but yet!! Now for the fun part!! ==Setup driving...== You will need to setup a few blueprints and some retargeting for this to work: * BP_BoxTruck you make a CHILD blueprint of this and you need to add meshes etc. as shown below! * AB_BoxTruck must be retarget to the new SK_Truck_Box skeleton, give it a new name! * You may also need to retarget the original Skeleton to the new one? When this has been done you can drive the Truck directly, as instructed for all the vehicles. Wheels should be turning and you can animate. Now for your modifications of the BP_BoxTruck blueprint, for each mesh you need a separate Skeletal mesh component (like when you make modular characters). In this case it looks like this: [[File:UE4-Truck-Window5.png]] Please note two thing! The window is placed under the front door. I found that that will work nicely and you do not need to worry about the transform/rotation. This will require that you saved both the door and the window correctly, with the correct pivot-point, as described above! The pivot must be correct for the rotation, but you can adjust the transformation as needed (in UE4). I have set up a few interaction Inputs, note that you can use the same key board key for different interactions. The space key is here used for Vehicle Handbreak, but for jump when in ThirdPerson! [[File:UE4-Truck-Window6.png]] I also have the E key sending the "Interact" InputAction. And that specific blueprint, under your BP_BoxTruck child blue print, should look something like this: [[File:UE4-Truck-Window7.png]] Please note that because the left window was attached '''under''' the left door, it will rotate with the door. If you try to rotate both (as when you connect the last SetRelativeRotation it will swing oddly/double... this is a standard door open BP, you can use it in many places - given that the pivot is correct! In this case the left front door opens when you hold E-key and it colse again when you let go of the E-key. You can also make variations over this, say I made the window go down, when using the V-key. I had to adjust the Y transform - as the window will not fit into the door the "animation" looks odd when seen from inside. Also a made the double back-door open/close with B-key, in this case there is a bool to check what you want to do and you can naturally do the same for the window/door. [[File:UE4-Truck-Window8.png]] 29bb818df5c50f7dfc7bb23d5d7fcce09a6868be 1743 1741 2020-03-09T21:32:46Z Assetdk 89 /* Setup driving... */ wikitext text/x-wiki Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product/bbcb90a03f844edbb20c8b89ee16ea32 Vehicle Variety Pack]. However I wanted to get access to the car and to the interior of the box van... Since you need to use Blender for that, I think this gives us a better way of learning a bit about getting props, using Blender in combination with UE4. This is the tasks I intend to describe: * Getting SM_Truck_Box into Blender! and split the mesh into separate parts! * Saving the separate parts * Failed experiment, with morph targets * Pivot points... when going to UE4 * Save the work and import to UE4 * New blueprint for the Truck The end result should be that you can open back doors of the Truck, also you can open the left front door and you can roll down the left window. These are some screen shots of that: [[File:UE4-Truck-Result.png]] ==Getting SK_Truck_Box into Blender and split it!== You should be able to install the package into UE4 and from there you go to Skeletons and export SK_Truck_Box. You can probably get even better results using SM_Truck_Box, but I did the SK_ version. Go to Blender 2.8, and import the skeleton in it's separate collection. Use the standard import setting for this. Save the .blend file in a separate folder! Duplicate this collection and start working on the The trick here is that you should now go to edit mode and select all parts that you want as a separate mesh in UE4. Please start with the from left window! This can be rather tricky, and it will be very tricky doing the front door. These are the shortcut you can use for selection: * Left-mouse+shift clicks selects (Vertex/Edge/Face) - the selection is highlighted * Ctrl-+ selects what is connected to the current selection, this is not always logic to me but it seldomly fails. * H-hey, hides your currently selection - when you have something hidden the H-key the visible selection to that. * Alt-H, unhide showing your current selection * Ctrl-Z will undo selections etc. (the result you see is not always logic) In the end you can jump between H and Alt-H to ensure that you have the full selection.... remember to save once in a while! When the window is selected correctly you should be able to do this: [[File:UE4-Truck-Window1.png]] Notice that the entire Mesh for the window is two layers, so you first select the outside layer then the layer. And take well care that you do not select some of the internals! Now this is the important part, you can now split-up the mesh like this: * Still in Edit-mode, use the Mesh-menu/Separate/Selection option... This will split up the mesh so you have the window in a separate part. Rename the Window part to window_left. * In the current collection you can now hide/see the window/Truck using the eye icons. * Duplicate the collection, and for the new collection delete all the parts that is not under the the window. [[File:UE4-Truck-Window2.png]] IMPORTANT: Rename the item in the hierarchy to Vehicle_ROOT, and export the entire thing as an FBX.... using the same [http://www.makehumancommunity.org/wiki/Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there#FBX_export_settings export settings] you used for your makehuman FBX - but scale should be changed form 0.1 to 1.0. '''This is a good time to save your .blend file!''' ==Failed experiment, with morph targets== The end result should be that you can open/close windows and doors. My first attempt was using morph-targets. Like whit the Makehuman characters this require that you do two truck collections and select/shif t-selec the two meshes and "join as shapes" - the selection process is much the same, but the results was very poor, as the doors do not animate to scale, they actually '''morph''', not very surprisingly! ==Pivot points... when going to UE4== When you import the Window you must realize two things: * Invent a name standard for your meshes and your files. You will have a lot of FBX files, and you need to keep a bit of track of what you did and how you imported all of your assets. * Your Window will not have the correct pivot point! The trick here is to position the mesh, in Blender, precisely you you can rotate the window with the door... In your first attempt, this is how it will look in UE4 - but you want the transform/rotation/size gizmo to sit like you see it to the right! [[File:UE4-Truck-Window3.png]] To do this you need to go to Blender and position your mesh close to position 0, 0, 0 - oddly enough, the pivot point in Blender has no effect on the one imported to UE4. However since we want the window to move '''with''' the door, you want the rotation point to sit to the left of the window. Tip: You can simply find the exact position when you have the left door positioned correctly to it's rotation point, you can then position the window "on top" of the door and save the two in separate FBX files. The process of getting the left front door selected is rather tricky - so I suggest you start with the windows (do both) and then move on to practice on the back-doors! When you get the hang of this it is just work-work-work! The Blender navigation, and selection, is not easy... ? You can save the same Collection for each part you separate out, then duplicate... and delete the stuff you do not need. In the end you will have one collection holding all the parts and several other collection holding the parts. Naturally when you are finished you duplicate the collection one "last" time and delete all the small parts.. so you have the Truck body in it's own collection. Remember: * Save your .blend file often, perhaps even in versions * Rename say, Vehicle_ROOT.010 to Vehicle_ROOT - for all of your FBX files. ==.... import to UE4== You will, at some point discover that not every thing works fine. You will, by now, know how to make the materials from textures - but you can also re-use those that comes with the package. Somehow the textures will fit correctly to all of your imported assets... I really don't fully understand textures and UV, but it works! The Vehicle models are top quality - but when you import them they look "jacket" - some thing like this: [[File:UE4-Truck-Window4.png]] There is a reason for this, and two solutions: * Under the wrench Icon you see a modifier, this was imported from UE4.... and you can either delete this modifier, before saving all the FBX files - or * Don't use ''Preserve smoothing groups'', when you import! I do not know if you will need the modifier at some point, so perhaps you should save everything in a separate .blend file? For some reason the mirrors are corrupted after import, not very important - but yet!! Now for the fun part!! ==Setup driving...== You will need to setup a few blueprints and some retargeting for this to work: * BP_BoxTruck you make a CHILD blueprint of this and you need to add meshes etc. as shown below! * AB_BoxTruck must be retarget to the new SK_Truck_Box skeleton, give it a new name! * You may also need to retarget the original Skeleton to the new one? When this has been done you can drive the Truck directly, as instructed for all the vehicles. Wheels should be turning and you can animate. Now for your modifications of the BP_BoxTruck blueprint, for each mesh you need a separate Skeletal mesh component (like when you make modular characters). In this case it looks like this: [[File:UE4-Truck-Window5.png]] Please note two thing! The window is placed under the front door. I found that that will work nicely and you do not need to worry about the transform/rotation. This will require that you saved both the door and the window correctly, with the correct pivot-point, as described above! The pivot must be correct for the rotation, but you can adjust the transformation as needed (in UE4). I have set up a few interaction Inputs, note that you can use the same key board key for different interactions. The space key is here used for Vehicle Handbreak, but for jump when in ThirdPerson! [[File:UE4-Truck-Window6.png]] I also have the E key sending the "Interact" InputAction. And that specific blueprint, under your BP_BoxTruck child blue print, should look something like this: [[File:UE4-Truck-Window7.png]] 9e8af8b0837932e9fe40db4c83dfb8afbca27525 1741 1738 2020-03-09T21:24:24Z Assetdk 89 /* Setup driving... */ wikitext text/x-wiki Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product/bbcb90a03f844edbb20c8b89ee16ea32 Vehicle Variety Pack]. However I wanted to get access to the car and to the interior of the box van... Since you need to use Blender for that, I think this gives us a better way of learning a bit about getting props, using Blender in combination with UE4. This is the tasks I intend to describe: * Getting SM_Truck_Box into Blender! and split the mesh into separate parts! * Saving the separate parts * Failed experiment, with morph targets * Pivot points... when going to UE4 * Save the work and import to UE4 * New blueprint for the Truck The end result should be that you can open back doors of the Truck, also you can open the left front door and you can roll down the left window. These are some screen shots of that: [[File:UE4-Truck-Result.png]] ==Getting SK_Truck_Box into Blender and split it!== You should be able to install the package into UE4 and from there you go to Skeletons and export SK_Truck_Box. You can probably get even better results using SM_Truck_Box, but I did the SK_ version. Go to Blender 2.8, and import the skeleton in it's separate collection. Use the standard import setting for this. Save the .blend file in a separate folder! Duplicate this collection and start working on the The trick here is that you should now go to edit mode and select all parts that you want as a separate mesh in UE4. Please start with the from left window! This can be rather tricky, and it will be very tricky doing the front door. These are the shortcut you can use for selection: * Left-mouse+shift clicks selects (Vertex/Edge/Face) - the selection is highlighted * Ctrl-+ selects what is connected to the current selection, this is not always logic to me but it seldomly fails. * H-hey, hides your currently selection - when you have something hidden the H-key the visible selection to that. * Alt-H, unhide showing your current selection * Ctrl-Z will undo selections etc. (the result you see is not always logic) In the end you can jump between H and Alt-H to ensure that you have the full selection.... remember to save once in a while! When the window is selected correctly you should be able to do this: [[File:UE4-Truck-Window1.png]] Notice that the entire Mesh for the window is two layers, so you first select the outside layer then the layer. And take well care that you do not select some of the internals! Now this is the important part, you can now split-up the mesh like this: * Still in Edit-mode, use the Mesh-menu/Separate/Selection option... This will split up the mesh so you have the window in a separate part. Rename the Window part to window_left. * In the current collection you can now hide/see the window/Truck using the eye icons. * Duplicate the collection, and for the new collection delete all the parts that is not under the the window. [[File:UE4-Truck-Window2.png]] IMPORTANT: Rename the item in the hierarchy to Vehicle_ROOT, and export the entire thing as an FBX.... using the same [http://www.makehumancommunity.org/wiki/Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there#FBX_export_settings export settings] you used for your makehuman FBX - but scale should be changed form 0.1 to 1.0. '''This is a good time to save your .blend file!''' ==Failed experiment, with morph targets== The end result should be that you can open/close windows and doors. My first attempt was using morph-targets. Like whit the Makehuman characters this require that you do two truck collections and select/shif t-selec the two meshes and "join as shapes" - the selection process is much the same, but the results was very poor, as the doors do not animate to scale, they actually '''morph''', not very surprisingly! ==Pivot points... when going to UE4== When you import the Window you must realize two things: * Invent a name standard for your meshes and your files. You will have a lot of FBX files, and you need to keep a bit of track of what you did and how you imported all of your assets. * Your Window will not have the correct pivot point! The trick here is to position the mesh, in Blender, precisely you you can rotate the window with the door... In your first attempt, this is how it will look in UE4 - but you want the transform/rotation/size gizmo to sit like you see it to the right! [[File:UE4-Truck-Window3.png]] To do this you need to go to Blender and position your mesh close to position 0, 0, 0 - oddly enough, the pivot point in Blender has no effect on the one imported to UE4. However since we want the window to move '''with''' the door, you want the rotation point to sit to the left of the window. Tip: You can simply find the exact position when you have the left door positioned correctly to it's rotation point, you can then position the window "on top" of the door and save the two in separate FBX files. The process of getting the left front door selected is rather tricky - so I suggest you start with the windows (do both) and then move on to practice on the back-doors! When you get the hang of this it is just work-work-work! The Blender navigation, and selection, is not easy... ? You can save the same Collection for each part you separate out, then duplicate... and delete the stuff you do not need. In the end you will have one collection holding all the parts and several other collection holding the parts. Naturally when you are finished you duplicate the collection one "last" time and delete all the small parts.. so you have the Truck body in it's own collection. Remember: * Save your .blend file often, perhaps even in versions * Rename say, Vehicle_ROOT.010 to Vehicle_ROOT - for all of your FBX files. ==.... import to UE4== You will, at some point discover that not every thing works fine. You will, by now, know how to make the materials from textures - but you can also re-use those that comes with the package. Somehow the textures will fit correctly to all of your imported assets... I really don't fully understand textures and UV, but it works! The Vehicle models are top quality - but when you import them they look "jacket" - some thing like this: [[File:UE4-Truck-Window4.png]] There is a reason for this, and two solutions: * Under the wrench Icon you see a modifier, this was imported from UE4.... and you can either delete this modifier, before saving all the FBX files - or * Don't use ''Preserve smoothing groups'', when you import! I do not know if you will need the modifier at some point, so perhaps you should save everything in a separate .blend file? For some reason the mirrors are corrupted after import, not very important - but yet!! Now for the fun part!! ==Setup driving...== You will need to setup a few blueprints and some retargeting for this to work: * BP_BoxTruck can be duplicated and you need to add meshes etc. as shown below! * AB_BoxTruck must be retarget to the new SK_Truck_Box skeleton, give it a new name! * You may also need to retarget the original Skeleton to the new one? When this has been done you can drive the Truck directly, as instructed for all the vehicles. Wheels should be turning and you can animate. Now for your modifications of the BP_BoxTruck blueprint, for each mesh you need a separate Skeletal mesh component (like when you make modular characters). In this case it looks like this: [[File:UE4-Truck-Window5.png]] Please note two thing! The window is placed under the front door. I found that that will work nicely and you do not need to worry about the transform/rotation. This will require that you saved both the door and the window correctly, with the correct pivot-point, as described above! The pivot must be correct for the rotation, but you can adjust the transformation as needed (in UE4). I have set up a few interaction Inputs, note that you can use the same key board key for different interactions. The space key is here used for Vehicle Handbreak, but for jump when in ThirdPerson! [[File:UE4-Truck-Window6.png]] 4839093cad5baa8c03f30d7539b786f7b91198a1 1738 1736 2020-03-09T20:55:45Z Assetdk 89 /* Pivot points... when going to UE4 */ wikitext text/x-wiki Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product/bbcb90a03f844edbb20c8b89ee16ea32 Vehicle Variety Pack]. However I wanted to get access to the car and to the interior of the box van... Since you need to use Blender for that, I think this gives us a better way of learning a bit about getting props, using Blender in combination with UE4. This is the tasks I intend to describe: * Getting SM_Truck_Box into Blender! and split the mesh into separate parts! * Saving the separate parts * Failed experiment, with morph targets * Pivot points... when going to UE4 * Save the work and import to UE4 * New blueprint for the Truck The end result should be that you can open back doors of the Truck, also you can open the left front door and you can roll down the left window. These are some screen shots of that: [[File:UE4-Truck-Result.png]] ==Getting SK_Truck_Box into Blender and split it!== You should be able to install the package into UE4 and from there you go to Skeletons and export SK_Truck_Box. You can probably get even better results using SM_Truck_Box, but I did the SK_ version. Go to Blender 2.8, and import the skeleton in it's separate collection. Use the standard import setting for this. Save the .blend file in a separate folder! Duplicate this collection and start working on the The trick here is that you should now go to edit mode and select all parts that you want as a separate mesh in UE4. Please start with the from left window! This can be rather tricky, and it will be very tricky doing the front door. These are the shortcut you can use for selection: * Left-mouse+shift clicks selects (Vertex/Edge/Face) - the selection is highlighted * Ctrl-+ selects what is connected to the current selection, this is not always logic to me but it seldomly fails. * H-hey, hides your currently selection - when you have something hidden the H-key the visible selection to that. * Alt-H, unhide showing your current selection * Ctrl-Z will undo selections etc. (the result you see is not always logic) In the end you can jump between H and Alt-H to ensure that you have the full selection.... remember to save once in a while! When the window is selected correctly you should be able to do this: [[File:UE4-Truck-Window1.png]] Notice that the entire Mesh for the window is two layers, so you first select the outside layer then the layer. And take well care that you do not select some of the internals! Now this is the important part, you can now split-up the mesh like this: * Still in Edit-mode, use the Mesh-menu/Separate/Selection option... This will split up the mesh so you have the window in a separate part. Rename the Window part to window_left. * In the current collection you can now hide/see the window/Truck using the eye icons. * Duplicate the collection, and for the new collection delete all the parts that is not under the the window. [[File:UE4-Truck-Window2.png]] IMPORTANT: Rename the item in the hierarchy to Vehicle_ROOT, and export the entire thing as an FBX.... using the same [http://www.makehumancommunity.org/wiki/Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there#FBX_export_settings export settings] you used for your makehuman FBX - but scale should be changed form 0.1 to 1.0. '''This is a good time to save your .blend file!''' ==Failed experiment, with morph targets== The end result should be that you can open/close windows and doors. My first attempt was using morph-targets. Like whit the Makehuman characters this require that you do two truck collections and select/shif t-selec the two meshes and "join as shapes" - the selection process is much the same, but the results was very poor, as the doors do not animate to scale, they actually '''morph''', not very surprisingly! ==Pivot points... when going to UE4== When you import the Window you must realize two things: * Invent a name standard for your meshes and your files. You will have a lot of FBX files, and you need to keep a bit of track of what you did and how you imported all of your assets. * Your Window will not have the correct pivot point! The trick here is to position the mesh, in Blender, precisely you you can rotate the window with the door... In your first attempt, this is how it will look in UE4 - but you want the transform/rotation/size gizmo to sit like you see it to the right! [[File:UE4-Truck-Window3.png]] To do this you need to go to Blender and position your mesh close to position 0, 0, 0 - oddly enough, the pivot point in Blender has no effect on the one imported to UE4. However since we want the window to move '''with''' the door, you want the rotation point to sit to the left of the window. Tip: You can simply find the exact position when you have the left door positioned correctly to it's rotation point, you can then position the window "on top" of the door and save the two in separate FBX files. The process of getting the left front door selected is rather tricky - so I suggest you start with the windows (do both) and then move on to practice on the back-doors! When you get the hang of this it is just work-work-work! The Blender navigation, and selection, is not easy... ? You can save the same Collection for each part you separate out, then duplicate... and delete the stuff you do not need. In the end you will have one collection holding all the parts and several other collection holding the parts. Naturally when you are finished you duplicate the collection one "last" time and delete all the small parts.. so you have the Truck body in it's own collection. Remember: * Save your .blend file often, perhaps even in versions * Rename say, Vehicle_ROOT.010 to Vehicle_ROOT - for all of your FBX files. ==.... import to UE4== You will, at some point discover that not every thing works fine. You will, by now, know how to make the materials from textures - but you can also re-use those that comes with the package. Somehow the textures will fit correctly to all of your imported assets... I really don't fully understand textures and UV, but it works! The Vehicle models are top quality - but when you import them they look "jacket" - some thing like this: [[File:UE4-Truck-Window4.png]] There is a reason for this, and two solutions: * Under the wrench Icon you see a modifier, this was imported from UE4.... and you can either delete this modifier, before saving all the FBX files - or * Don't use ''Preserve smoothing groups'', when you import! I do not know if you will need the modifier at some point, so perhaps you should save everything in a separate .blend file? For some reason the mirrors are corrupted after import, not very important - but yet!! Now for the fun part!! ==Setup driving...== 961cc0522c4626b0798f161a3b99333914098c4c 1736 1735 2020-03-09T20:22:47Z Assetdk 89 /* Pivot points... when going to UE4 */ wikitext text/x-wiki Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product/bbcb90a03f844edbb20c8b89ee16ea32 Vehicle Variety Pack]. However I wanted to get access to the car and to the interior of the box van... Since you need to use Blender for that, I think this gives us a better way of learning a bit about getting props, using Blender in combination with UE4. This is the tasks I intend to describe: * Getting SM_Truck_Box into Blender! and split the mesh into separate parts! * Saving the separate parts * Failed experiment, with morph targets * Pivot points... when going to UE4 * Save the work and import to UE4 * New blueprint for the Truck The end result should be that you can open back doors of the Truck, also you can open the left front door and you can roll down the left window. These are some screen shots of that: [[File:UE4-Truck-Result.png]] ==Getting SK_Truck_Box into Blender and split it!== You should be able to install the package into UE4 and from there you go to Skeletons and export SK_Truck_Box. You can probably get even better results using SM_Truck_Box, but I did the SK_ version. Go to Blender 2.8, and import the skeleton in it's separate collection. Use the standard import setting for this. Save the .blend file in a separate folder! Duplicate this collection and start working on the The trick here is that you should now go to edit mode and select all parts that you want as a separate mesh in UE4. Please start with the from left window! This can be rather tricky, and it will be very tricky doing the front door. These are the shortcut you can use for selection: * Left-mouse+shift clicks selects (Vertex/Edge/Face) - the selection is highlighted * Ctrl-+ selects what is connected to the current selection, this is not always logic to me but it seldomly fails. * H-hey, hides your currently selection - when you have something hidden the H-key the visible selection to that. * Alt-H, unhide showing your current selection * Ctrl-Z will undo selections etc. (the result you see is not always logic) In the end you can jump between H and Alt-H to ensure that you have the full selection.... remember to save once in a while! When the window is selected correctly you should be able to do this: [[File:UE4-Truck-Window1.png]] Notice that the entire Mesh for the window is two layers, so you first select the outside layer then the layer. And take well care that you do not select some of the internals! Now this is the important part, you can now split-up the mesh like this: * Still in Edit-mode, use the Mesh-menu/Separate/Selection option... This will split up the mesh so you have the window in a separate part. Rename the Window part to window_left. * In the current collection you can now hide/see the window/Truck using the eye icons. * Duplicate the collection, and for the new collection delete all the parts that is not under the the window. [[File:UE4-Truck-Window2.png]] IMPORTANT: Rename the item in the hierarchy to Vehicle_ROOT, and export the entire thing as an FBX.... using the same [http://www.makehumancommunity.org/wiki/Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there#FBX_export_settings export settings] you used for your makehuman FBX - but scale should be changed form 0.1 to 1.0. '''This is a good time to save your .blend file!''' ==Failed experiment, with morph targets== The end result should be that you can open/close windows and doors. My first attempt was using morph-targets. Like whit the Makehuman characters this require that you do two truck collections and select/shif t-selec the two meshes and "join as shapes" - the selection process is much the same, but the results was very poor, as the doors do not animate to scale, they actually '''morph''', not very surprisingly! ==Pivot points... when going to UE4== When you import the Window you must realize two things: * Invent a name standard for your meshes and your files. You will have a lot of FBX files, and you need to keep a bit of track of what you did and how you imported all of your assets. * Your Window will not have the correct pivot point! The trick here is to position the mesh, in Blender, precisely you you can rotate the window with the door... In your first attempt, this is how it will look in UE4 - but you want the transform/rotation/size gizmo to sit like you see it to the right! [[File:UE4-Truck-Window3.png]] To do this you need to go to Blender and position your mesh close to position 0, 0, 0 - oddly enough, the pivot point in Blender has no effect on the one imported to UE4. However since we want the window to move '''with''' the door, you want the rotation point to sit to the left of the window. Tip: You can simply find the exact position when you have the left door positioned correctly to it's rotation point, you can then position the window "on top" of the door and save the two in separate FBX files. The process of getting the left front door selected is rather tricky - so I suggest you start with the windows (do both) and then move on to practice on the back-doors! When you get the hang of this it is just work-work-work! The Blender navigation, and selection, is not easy... ? You can save the same Collection for each part you separate out, then duplicate... and delete the stuff you do not need. In the end you will have one collection holding all the parts and several other collection holding the parts. Naturally when you are finished you duplicate the collection one "last" time and delete all the small parts.. so you have the Truck body in it's own collection. Remember: * Save your .blend file often, perhaps even in versions * Rename say, Vehicle_ROOT.010 to Vehicle_ROOT - for all of your FBX files. 09dee3e2c491d3edd7bf00b3766745d241a93e67 1735 1733 2020-03-09T20:20:58Z Assetdk 89 /* Pivot points... when going to UE4 */ wikitext text/x-wiki Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product/bbcb90a03f844edbb20c8b89ee16ea32 Vehicle Variety Pack]. However I wanted to get access to the car and to the interior of the box van... Since you need to use Blender for that, I think this gives us a better way of learning a bit about getting props, using Blender in combination with UE4. This is the tasks I intend to describe: * Getting SM_Truck_Box into Blender! and split the mesh into separate parts! * Saving the separate parts * Failed experiment, with morph targets * Pivot points... when going to UE4 * Save the work and import to UE4 * New blueprint for the Truck The end result should be that you can open back doors of the Truck, also you can open the left front door and you can roll down the left window. These are some screen shots of that: [[File:UE4-Truck-Result.png]] ==Getting SK_Truck_Box into Blender and split it!== You should be able to install the package into UE4 and from there you go to Skeletons and export SK_Truck_Box. You can probably get even better results using SM_Truck_Box, but I did the SK_ version. Go to Blender 2.8, and import the skeleton in it's separate collection. Use the standard import setting for this. Save the .blend file in a separate folder! Duplicate this collection and start working on the The trick here is that you should now go to edit mode and select all parts that you want as a separate mesh in UE4. Please start with the from left window! This can be rather tricky, and it will be very tricky doing the front door. These are the shortcut you can use for selection: * Left-mouse+shift clicks selects (Vertex/Edge/Face) - the selection is highlighted * Ctrl-+ selects what is connected to the current selection, this is not always logic to me but it seldomly fails. * H-hey, hides your currently selection - when you have something hidden the H-key the visible selection to that. * Alt-H, unhide showing your current selection * Ctrl-Z will undo selections etc. (the result you see is not always logic) In the end you can jump between H and Alt-H to ensure that you have the full selection.... remember to save once in a while! When the window is selected correctly you should be able to do this: [[File:UE4-Truck-Window1.png]] Notice that the entire Mesh for the window is two layers, so you first select the outside layer then the layer. And take well care that you do not select some of the internals! Now this is the important part, you can now split-up the mesh like this: * Still in Edit-mode, use the Mesh-menu/Separate/Selection option... This will split up the mesh so you have the window in a separate part. Rename the Window part to window_left. * In the current collection you can now hide/see the window/Truck using the eye icons. * Duplicate the collection, and for the new collection delete all the parts that is not under the the window. [[File:UE4-Truck-Window2.png]] IMPORTANT: Rename the item in the hierarchy to Vehicle_ROOT, and export the entire thing as an FBX.... using the same [http://www.makehumancommunity.org/wiki/Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there#FBX_export_settings export settings] you used for your makehuman FBX - but scale should be changed form 0.1 to 1.0. '''This is a good time to save your .blend file!''' ==Failed experiment, with morph targets== The end result should be that you can open/close windows and doors. My first attempt was using morph-targets. Like whit the Makehuman characters this require that you do two truck collections and select/shif t-selec the two meshes and "join as shapes" - the selection process is much the same, but the results was very poor, as the doors do not animate to scale, they actually '''morph''', not very surprisingly! ==Pivot points... when going to UE4== When you import the Window you must realize two things: * Invent a name standard for your meshes and your files. You will have a lot of FBX files, and you need to keep a bit of track of what you did and how you imported all of your assets. * Your Window will not have the correct pivot point! The trick here is to position the mesh, in Blender, precisely you you can rotate the window with the door... In your first attempt, this is how it will look in UE4 - but you want the transform/rotation/size gizmo to sit like you see it to the right! [[File:UE4-Truck-Window3.png]] To do this you need to go to Blender and position your mesh close to position 0, 0, 0 - oddly enough, the pivot point in Blender has no effect on the one imported to UE4. However since we want the window to move '''with''' the door, you want the rotation point to sit to the left of the window. Tip: You can simply find the exact position when you have the left door positioned correctly to it's rotation point, you can then position the window "on top" of the door and save the two in separate FBX files. The process of getting the left front door selected is rather tricky - so I suggest you start with the windows (do both) and then move on to practice on the back-doors! When you get the hang of this it is just work-work-work! The Blender navigation, and selection, is not easy... ? You can save the same Collection for each part you separate out, then duplicate... and delete the stuff you do not need. In the end you will have one collection holding all the parts and several other collection holding the parts. Naturally when you are finished you duplicate the collection one "last" time and delete all the small parts.. so you have the Truck body in it's own collection. 0065f0fd9bf9ed1615887e52ae6bc9a2ba71e5f0 1733 1731 2020-03-09T19:58:42Z Assetdk 89 /* Pivot points... when going to UE4 */ wikitext text/x-wiki Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product/bbcb90a03f844edbb20c8b89ee16ea32 Vehicle Variety Pack]. However I wanted to get access to the car and to the interior of the box van... Since you need to use Blender for that, I think this gives us a better way of learning a bit about getting props, using Blender in combination with UE4. This is the tasks I intend to describe: * Getting SM_Truck_Box into Blender! and split the mesh into separate parts! * Saving the separate parts * Failed experiment, with morph targets * Pivot points... when going to UE4 * Save the work and import to UE4 * New blueprint for the Truck The end result should be that you can open back doors of the Truck, also you can open the left front door and you can roll down the left window. These are some screen shots of that: [[File:UE4-Truck-Result.png]] ==Getting SK_Truck_Box into Blender and split it!== You should be able to install the package into UE4 and from there you go to Skeletons and export SK_Truck_Box. You can probably get even better results using SM_Truck_Box, but I did the SK_ version. Go to Blender 2.8, and import the skeleton in it's separate collection. Use the standard import setting for this. Save the .blend file in a separate folder! Duplicate this collection and start working on the The trick here is that you should now go to edit mode and select all parts that you want as a separate mesh in UE4. Please start with the from left window! This can be rather tricky, and it will be very tricky doing the front door. These are the shortcut you can use for selection: * Left-mouse+shift clicks selects (Vertex/Edge/Face) - the selection is highlighted * Ctrl-+ selects what is connected to the current selection, this is not always logic to me but it seldomly fails. * H-hey, hides your currently selection - when you have something hidden the H-key the visible selection to that. * Alt-H, unhide showing your current selection * Ctrl-Z will undo selections etc. (the result you see is not always logic) In the end you can jump between H and Alt-H to ensure that you have the full selection.... remember to save once in a while! When the window is selected correctly you should be able to do this: [[File:UE4-Truck-Window1.png]] Notice that the entire Mesh for the window is two layers, so you first select the outside layer then the layer. And take well care that you do not select some of the internals! Now this is the important part, you can now split-up the mesh like this: * Still in Edit-mode, use the Mesh-menu/Separate/Selection option... This will split up the mesh so you have the window in a separate part. Rename the Window part to window_left. * In the current collection you can now hide/see the window/Truck using the eye icons. * Duplicate the collection, and for the new collection delete all the parts that is not under the the window. [[File:UE4-Truck-Window2.png]] IMPORTANT: Rename the item in the hierarchy to Vehicle_ROOT, and export the entire thing as an FBX.... using the same [http://www.makehumancommunity.org/wiki/Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there#FBX_export_settings export settings] you used for your makehuman FBX - but scale should be changed form 0.1 to 1.0. '''This is a good time to save your .blend file!''' ==Failed experiment, with morph targets== The end result should be that you can open/close windows and doors. My first attempt was using morph-targets. Like whit the Makehuman characters this require that you do two truck collections and select/shif t-selec the two meshes and "join as shapes" - the selection process is much the same, but the results was very poor, as the doors do not animate to scale, they actually '''morph''', not very surprisingly! ==Pivot points... when going to UE4== When you import the Window you must realize two things: * Invent a name standard for your meshes and your files. You will have a lot of FBX files, and you need to keep a bit of track of what you did and how you imported all of your assets. * Your Window will not have the correct pivot point! The trick here is to position the mesh, in Blender, precisely you you can rotate the window with the door... This is how it will look in UE4 - in your first attempt: [[File:UE4-Truck-Window3.png]] 08196660603125132f150cb94b3f7113e4ff718e 1731 1730 2020-03-09T19:52:25Z Assetdk 89 wikitext text/x-wiki Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product/bbcb90a03f844edbb20c8b89ee16ea32 Vehicle Variety Pack]. However I wanted to get access to the car and to the interior of the box van... Since you need to use Blender for that, I think this gives us a better way of learning a bit about getting props, using Blender in combination with UE4. This is the tasks I intend to describe: * Getting SM_Truck_Box into Blender! and split the mesh into separate parts! * Saving the separate parts * Failed experiment, with morph targets * Pivot points... when going to UE4 * Save the work and import to UE4 * New blueprint for the Truck The end result should be that you can open back doors of the Truck, also you can open the left front door and you can roll down the left window. These are some screen shots of that: [[File:UE4-Truck-Result.png]] ==Getting SK_Truck_Box into Blender and split it!== You should be able to install the package into UE4 and from there you go to Skeletons and export SK_Truck_Box. You can probably get even better results using SM_Truck_Box, but I did the SK_ version. Go to Blender 2.8, and import the skeleton in it's separate collection. Use the standard import setting for this. Save the .blend file in a separate folder! Duplicate this collection and start working on the The trick here is that you should now go to edit mode and select all parts that you want as a separate mesh in UE4. Please start with the from left window! This can be rather tricky, and it will be very tricky doing the front door. These are the shortcut you can use for selection: * Left-mouse+shift clicks selects (Vertex/Edge/Face) - the selection is highlighted * Ctrl-+ selects what is connected to the current selection, this is not always logic to me but it seldomly fails. * H-hey, hides your currently selection - when you have something hidden the H-key the visible selection to that. * Alt-H, unhide showing your current selection * Ctrl-Z will undo selections etc. (the result you see is not always logic) In the end you can jump between H and Alt-H to ensure that you have the full selection.... remember to save once in a while! When the window is selected correctly you should be able to do this: [[File:UE4-Truck-Window1.png]] Notice that the entire Mesh for the window is two layers, so you first select the outside layer then the layer. And take well care that you do not select some of the internals! Now this is the important part, you can now split-up the mesh like this: * Still in Edit-mode, use the Mesh-menu/Separate/Selection option... This will split up the mesh so you have the window in a separate part. Rename the Window part to window_left. * In the current collection you can now hide/see the window/Truck using the eye icons. * Duplicate the collection, and for the new collection delete all the parts that is not under the the window. [[File:UE4-Truck-Window2.png]] IMPORTANT: Rename the item in the hierarchy to Vehicle_ROOT, and export the entire thing as an FBX.... using the same [http://www.makehumancommunity.org/wiki/Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there#FBX_export_settings export settings] you used for your makehuman FBX - but scale should be changed form 0.1 to 1.0. '''This is a good time to save your .blend file!''' ==Failed experiment, with morph targets== The end result should be that you can open/close windows and doors. My first attempt was using morph-targets. Like whit the Makehuman characters this require that you do two truck collections and select/shif t-selec the two meshes and "join as shapes" - the selection process is much the same, but the results was very poor, as the doors do not animate to scale, they actually '''morph''', not very surprisingly! ==Pivot points... when going to UE4== 94831df4e3df081643f25e48120e66f3980edc7c 1730 1729 2020-03-09T19:49:50Z Assetdk 89 /* Getting SK_Truck_Box into Blender and split it! */ wikitext text/x-wiki Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product/bbcb90a03f844edbb20c8b89ee16ea32 Vehicle Variety Pack]. However I wanted to get access to the car and to the interior of the box van... Since you need to use Blender for that, I think this gives us a better way of learning a bit about getting props, using Blender in combination with UE4. This is the tasks I intend to describe: * Getting SM_Truck_Box into Blender! and split the mesh into separate parts! * Failed experiment, with morph targets * Saving the separate parts * Pivot points... when going to UE4 * Save the work and import to UE4 * New blueprint for the Truck The end result should be that you can open back doors of the Truck, also you can open the left front door and you can roll down the left window. These are some screen shots of that: [[File:UE4-Truck-Result.png]] ==Getting SK_Truck_Box into Blender and split it!== You should be able to install the package into UE4 and from there you go to Skeletons and export SK_Truck_Box. You can probably get even better results using SM_Truck_Box, but I did the SK_ version. Go to Blender 2.8, and import the skeleton in it's separate collection. Use the standard import setting for this. Save the .blend file in a separate folder! Duplicate this collection and start working on the The trick here is that you should now go to edit mode and select all parts that you want as a separate mesh in UE4. Please start with the from left window! This can be rather tricky, and it will be very tricky doing the front door. These are the shortcut you can use for selection: * Left-mouse+shift clicks selects (Vertex/Edge/Face) - the selection is highlighted * Ctrl-+ selects what is connected to the current selection, this is not always logic to me but it seldomly fails. * H-hey, hides your currently selection - when you have something hidden the H-key the visible selection to that. * Alt-H, unhide showing your current selection * Ctrl-Z will undo selections etc. (the result you see is not always logic) In the end you can jump between H and Alt-H to ensure that you have the full selection.... remember to save once in a while! When the window is selected correctly you should be able to do this: [[File:UE4-Truck-Window1.png]] Notice that the entire Mesh for the window is two layers, so you first select the outside layer then the layer. And take well care that you do not select some of the internals! Now this is the important part, you can now split-up the mesh like this: * Still in Edit-mode, use the Mesh-menu/Separate/Selection option... This will split up the mesh so you have the window in a separate part. Rename the Window part to window_left. * In the current collection you can now hide/see the window/Truck using the eye icons. * Duplicate the collection, and for the new collection delete all the parts that is not under the the window. [[File:UE4-Truck-Window2.png]] IMPORTANT: Rename the item in the hierarchy to Vehicle_ROOT, and export the entire thing as an FBX.... using the same [http://www.makehumancommunity.org/wiki/Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there#FBX_export_settings export settings] you used for your makehuman FBX - but scale should be changed form 0.1 to 1.0. '''This is a good time to save your .blend file!''' ==Failed experiment, with morph targets== The end result should be that you can open/close windows and doors. My first attempt was using morph-targets. Like whit the Makehuman characters this require that you do two truck collections and select/shif t-selec the two meshes and "join as shapes" - the selection process is much the same, but the results was very poor, as the doors do not animate to scale, they actually '''morph''', not very surprisingly! 4738b4d93a59a516904b903b92027c995acba3bb 1729 1728 2020-03-09T19:43:30Z Assetdk 89 /* Getting SK_Truck_Box into Blender and split it! */ wikitext text/x-wiki Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product/bbcb90a03f844edbb20c8b89ee16ea32 Vehicle Variety Pack]. However I wanted to get access to the car and to the interior of the box van... Since you need to use Blender for that, I think this gives us a better way of learning a bit about getting props, using Blender in combination with UE4. This is the tasks I intend to describe: * Getting SM_Truck_Box into Blender! and split the mesh into separate parts! * Failed experiment, with morph targets * Saving the separate parts * Pivot points... when going to UE4 * Save the work and import to UE4 * New blueprint for the Truck The end result should be that you can open back doors of the Truck, also you can open the left front door and you can roll down the left window. These are some screen shots of that: [[File:UE4-Truck-Result.png]] ==Getting SK_Truck_Box into Blender and split it!== You should be able to install the package into UE4 and from there you go to Skeletons and export SK_Truck_Box. You can probably get even better results using SM_Truck_Box, but I did the SK_ version. Go to Blender 2.8, and import the skeleton in it's separate collection. Use the standard import setting for this. Save the .blend file in a separate folder! Duplicate this collection and start working on the The trick here is that you should now go to edit mode and select all parts that you want as a separate mesh in UE4. Please start with the from left window! This can be rather tricky, and it will be very tricky doing the front door. These are the shortcut you can use for selection: * Left-mouse+shift clicks selects (Vertex/Edge/Face) - the selection is highlighted * Ctrl-+ selects what is connected to the current selection, this is not always logic to me but it seldomly fails. * H-hey, hides your currently selection - when you have something hidden the H-key the visible selection to that. * Alt-H, unhide showing your current selection * Ctrl-Z will undo selections etc. (the result you see is not always logic) In the end you can jump between H and Alt-H to ensure that you have the full selection.... remember to save once in a while! When the window is selected correctly you should be able to do this: [[File:UE4-Truck-Window1.png]] Notice that the entire Mesh for the window is two layers, so you first select the outside layer then the layer. And take well care that you do not select some of the internals! Now this is the important part, you can now split-up the mesh like this: * Still in Edit-mode, use the Mesh-menu/Separate/Selection option... This will split up the mesh so you have the window in a separate part. Rename the Window part to window_left. * In the current collection you can now hide/see the window/Truck using the eye icons. * Duplicate the collection, and for the new collection delete all the parts that is not under the the window. [[File:UE4-Truck-Window2.png]] IMPORTANT: Rename the item in the hierarchy to Vehicle_ROOT, and export the entire thing as an FBX.... using the same [http://www.makehumancommunity.org/wiki/Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there#FBX_export_settings export settings] you used for your makehuman FBX - but scale should be changed form 0.1 to 1.0. '''This is a good time to save your .blend file!''' 17314aa1e844ad3d4bb5f8e64a404ccd8514ee42 1728 1727 2020-03-09T19:41:05Z Assetdk 89 /* Getting SK_Truck_Box into Blender! */ wikitext text/x-wiki Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product/bbcb90a03f844edbb20c8b89ee16ea32 Vehicle Variety Pack]. However I wanted to get access to the car and to the interior of the box van... Since you need to use Blender for that, I think this gives us a better way of learning a bit about getting props, using Blender in combination with UE4. This is the tasks I intend to describe: * Getting SM_Truck_Box into Blender! and split the mesh into separate parts! * Failed experiment, with morph targets * Saving the separate parts * Pivot points... when going to UE4 * Save the work and import to UE4 * New blueprint for the Truck The end result should be that you can open back doors of the Truck, also you can open the left front door and you can roll down the left window. These are some screen shots of that: [[File:UE4-Truck-Result.png]] ==Getting SK_Truck_Box into Blender and split it!== You should be able to install the package into UE4 and from there you go to Skeletons and export SK_Truck_Box. You can probably get even better results using SM_Truck_Box, but I did the SK_ version. Go to Blender 2.8, and import the skeleton in it's separate collection. Use the standard import setting for this. Save the .blend file in a separate folder! Duplicate this collection and start working on the The trick here is that you should now go to edit mode and select all parts that you want as a separate mesh in UE4. Please start with the from left window! This can be rather tricky, and it will be very tricky doing the front door. These are the shortcut you can use for selection: * Left-mouse+shift clicks selects (Vertex/Edge/Face) - the selection is highlighted * Ctrl-+ selects what is connected to the current selection, this is not always logic to me but it seldomly fails. * H-hey, hides your currently selection - when you have something hidden the H-key the visible selection to that. * Alt-H, unhide showing your current selection * Ctrl-Z will undo selections etc. (the result you see is not always logic) In the end you can jump between H and Alt-H to ensure that you have the full selection.... remember to save once in a while! When the window is selected correctly you should be able to do this: [[File:UE4-Truck-Window1.png]] Notice that the entire Mesh for the window is two layers, so you first select the outside layer then the layer. And take well care that you do not select some of the internals! Now this is the important part, you can now split-up the mesh like this: * Still in Edit-mode, use the Mesh-menu/Separate/Selection option... This will split up the mesh so you have the window in a separate part. Rename the Window part to window_left. * In the current collection you can now hide/see the window/Truck using the eye icons. * Duplicate the collection, and for the new collection delete all the parts that is not under the the window. [[File:UE4-Truck-Window2.png]] IMPORTANT: Rename the item in the hierarchy to Vehicle_ROOT, and export the entire thing as an FBX.... using the same [http://www.makehumancommunity.org/wiki/Documentation:Saving_models_for_Unreal_Engine_and_how_to_import_them_there#FBX_export_settings export settings] you used for your makehuman FBX - but scale should be changed form 0.1 to 1.0. 4e732504cd5b1eed969ecb3710c1fc3ce2ee2257 1727 1722 2020-03-09T19:34:23Z Assetdk 89 /* Getting SK_Truck_Box into Blender! */ wikitext text/x-wiki Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product/bbcb90a03f844edbb20c8b89ee16ea32 Vehicle Variety Pack]. However I wanted to get access to the car and to the interior of the box van... Since you need to use Blender for that, I think this gives us a better way of learning a bit about getting props, using Blender in combination with UE4. This is the tasks I intend to describe: * Getting SM_Truck_Box into Blender! and split the mesh into separate parts! * Failed experiment, with morph targets * Saving the separate parts * Pivot points... when going to UE4 * Save the work and import to UE4 * New blueprint for the Truck The end result should be that you can open back doors of the Truck, also you can open the left front door and you can roll down the left window. These are some screen shots of that: [[File:UE4-Truck-Result.png]] ==Getting SK_Truck_Box into Blender!== You should be able to install the package into UE4 and from there you go to Skeletons and export SK_Truck_Box. You can probably get even better results using SM_Truck_Box, but I did the SK_ version. Go to Blender 2.8, and import the skeleton in it's separate collection. Use the standard import setting for this. Save the .blend file in a separate folder! Duplicate this collection and start working on the The trick here is that you should now go to edit mode and select all parts that you want as a separate mesh in UE4. Please start with the from left window! This can be rather tricky, and it will be very tricky doing the front door. These are the shortcut you can use for selection: * Left-mouse+shift clicks selects (Vertex/Edge/Face) - the selection is highlighted * Ctrl-+ selects what is connected to the current selection, this is not always logic to me but it seldomly fails. * H-hey, hides your currently selection - when you have something hidden the H-key the visible selection to that. * Alt-H, unhide showing your current selection * Ctrl-Z will undo selections etc. (the result you see is not always logic) In the end you can jump between H and Alt-H to ensure that you have the full selection.... remember to save once in a while! When the window is selected correctly you should be able to do this: [[File:UE4-Truck-Window1.png]] Notice that the entire Mesh for the window is two layers, so you first select the outside layer then the layer. And take well care that you do not select some of the internals! Now this is the important part, you can now split-up the mesh like this: * Still in Edit-mode, use the Mesh-menu/Separate/Selection option... This will split up the mesh so you have the window in a separate part. Rename the Window part to window_left. * In the current collection you can now hide/see the window/Truck using the eye icons. * Duplicate the collection, and for the new collection delete all the parts that is not under the the window. [[File:UE4-Truck-Window2.png]] 82786a4d4090966982aa5549e929a8139d8776a6 1722 1721 2020-03-09T18:56:23Z Assetdk 89 wikitext text/x-wiki Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product/bbcb90a03f844edbb20c8b89ee16ea32 Vehicle Variety Pack]. However I wanted to get access to the car and to the interior of the box van... Since you need to use Blender for that, I think this gives us a better way of learning a bit about getting props, using Blender in combination with UE4. This is the tasks I intend to describe: * Getting SM_Truck_Box into Blender! and split the mesh into separate parts! * Failed experiment, with morph targets * Saving the separate parts * Pivot points... when going to UE4 * Save the work and import to UE4 * New blueprint for the Truck The end result should be that you can open back doors of the Truck, also you can open the left front door and you can roll down the left window. These are some screen shots of that: [[File:UE4-Truck-Result.png]] ==Getting SK_Truck_Box into Blender!== You should be able to install the package into UE4 and from there you go to Skeletons and export SK_Truck_Box. You can probably get even better results using SM_Truck_Box, but I did the SK_ version. Go to Blender 2.8, and import the skeleton in it's separate collection. Use the standard import setting for this. Save the .blend file in a separate folder! Duplicate this collection and start working on the The trick here is that you should now go to edit mode and select all parts that you want as a separate mesh in UE4. Please start with the from left window! This can be rather tricky, and it will be very tricky doing the front door. These are the shortcut you can use for selection: * Left-mouse+shift clicks selects (Vertex/Edge/Face) - the selection is highlighted * Ctrl-+ selects what is connected to the current selection, this is not always logic to me but it seldomly fails. * H-hey, hides your currently selection - when you have something hidden the H-key the visible selection to that. * Alt-H, unhide showing your current selection * Ctrl-Z will undo selections etc. (the result you see is not always logic) In the end you can swab between H and Alt-H to ensure that you have the full selection 7910bc42ce8fd1241224d911a2f260b5e3f3f2f9 1721 1720 2020-03-09T18:29:55Z Assetdk 89 wikitext text/x-wiki Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product/bbcb90a03f844edbb20c8b89ee16ea32 Vehicle Variety Pack]. However I wanted to get access to the car and to the interior of the box van... Since you need to use Blender for that, I think this gives us a better way of learning a bit about getting props, using Blender in combination with UE4. This is the tasks I intend to describe: * Getting SM_Truck_Box into Blender! * Split the mesh into separate parts * Failed experiment, with morph targets * Saving the separate parts * Pivot points... when going to UE4 * Save the work and import to UE4 * New blueprint for the Truck The end result should be that you can open back doors of the Truck, also you can open the left front door and you can roll down the left window. These are some screen shots of that: [[File:UE4-Truck-Result.png]] 2e554462b28d46bfce139a4a4dad55dda163c73e 1720 2020-03-09T18:28:15Z Assetdk 89 Created page with "Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product /bbcb90a03f844edbb20c8b89ee16ea32..." wikitext text/x-wiki Your character should have some kind of transportation - and UE4 comes with some help [https://www.unrealengine.com/marketplace/en-US/product /bbcb90a03f844edbb20c8b89ee16ea32 Vehicle Variety Pack]. However I wanted to get access to the car and to the interior of the box van... Since you need to use Blender for that, I think this gives us a better way of learning a bit about getting props, using Blender in combination with UE4. This is the tasks I intend to describe: * Getting SM_Truck_Box into Blender! * Split the mesh into separate parts * Failed experiment, with morph targets * Saving the separate parts * Pivot points... when going to UE4 * Save the work and import to UE4 * New blueprint for the Truck The end result should be that you can open back doors of the Truck, also you can open the left front door and you can roll down the left window. These are some screen shots of that: [[File:UE4-Truck-Result.png]] 2cb38d155f4d5bf1c7eeaae6258a5405651ba0a4 Documentation:Unreal MHC 3000 705 2080 2079 2021-05-11T09:15:42Z Assetdk 89 wikitext text/x-wiki Once you have the character inside Unreal you want to utilize the shape keys to customize your character. I am working on a generic solution that will allow you to do just that, this is the first preview! ::'''Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine!''' ==Parameter Setup and Parameter Functions== In order to make the customization work you need to make a table containing all the parameters that can be adjusted. This is a bit complicated, but you need to do this once only.. The parameters are imported into Unreal and from there the customization components should handle the rest! The parameter setup is done in a CSV file - I use a google sheet for this, but you can use any tool that works for you and Unreal. The parameters/functions can be listed like this: * Shape key grouping * Customize option * Randomize * Randomize grouping * Randomize exclusive grouping * Clamp min/max * Display name * Tool tip * Comment The exclusive grouping can be used at group level, so you can group shape keys that does not mix well - say one major body shape will corrupt an other shape. You will be able to exclude/clamp the other shapes to prevent this from happening. =MHC - UE4 Generic Character customization for MakeHuman, and other characters= I am making a Generic Customization package that can be used for MakeHuman. This is an overview of the functionality, introducing the components that are available in the package. ==Introduction== If you follow the [[Documentation:Saving models for Unreal Engine and how to import them there|instructions]] on how to import your MakeHuman characters to Unreal there is still a lot of work to do. In general you will need a generic blueprint to "assemble" your character and the cloth element, also you need a basic clothing system, and you need some basic interface to work with the "morph targets". Some of the morph targets will affect the basic shape of the character, while others can handle the general expressions. The prototype for this can be seen below, in this you can see the shape keys as well as the buttons where you can change the base-tint parameter. [[File:MH UE4 MaterialCustom 1.png|400px]] The basic parts leads to two different components for your character blueprint one for customizing the character shape and a system for cloth, hair and other modular attachments. Also the system should be able to handle different character types, say you may have several "base characters", characters of different genders etc. This page contains a general introduction to the MHC components, breaking down what you need to know to understand and setup the system with your own characters. ==Package components - GenCustomize_Comp== This is what the Blueprint for the MH generic character looks like, currently. [[File:MHC_GenericMH_BP-V1.png|300px]] This first version of MHC only contains the '''GenCustomize_Comp''', but the one that i going out will not yet contain the '''GenInventory_Comp'''. (The GenInventory_Comp will come with a few Widgets new and it will allow your character to pickup "items" and "cloth". But in the current version you will not yet be able to set that up.) In addition to these components there are two interfaces - the Interact interface will enable item pickup and other interactions, while the Customize interface will allow the customization - like setting the morph targets and base tint color. (Others will follow). [[File:MHC_GenericMH_Comp-V1.png|300px]] Special to the customization is that you must provide/build a table holding the skeleton mesh specific information for morph targets. This will allow you to setup the customization specific to your MakeHuman character. (Also you need a specific material if you want to enable the color tint.) If your base characters holds different morph targets your "Morph Table" must contain that specific skeleton reference, more details in the technical section on that topic: [[File:MHC_GenericMH_Cust-MT.png|800px]] You can do this in two ways, either you drag/drop the BP into the level, or you can make a subclass of it - add the morph table to either of these. Also there is a debug option, to be used for your own code... or for that in the customize blueprints. [[File:MHC GenericMH BPMT-V1.png|400px]] be5f0ecaba641cd278f97b10ac132e41c74f1b19 2079 2076 2021-05-11T09:14:24Z Assetdk 89 wikitext text/x-wiki Once you have the character inside Unreal you want to utilize the shape keys to customize your character. I am working on a generic solution that will allow you to do just that, this is the first preview! Please take a look at this page: [[Documentation:MH4UE|MH4UE]] - to get an overview of things you can use to get your Makehuman characters into Unreal Engine! ==Parameter Setup and Parameter Functions== In order to make the customization work you need to make a table containing all the parameters that can be adjusted. This is a bit complicated, but you need to do this once only.. The parameters are imported into Unreal and from there the customization components should handle the rest! The parameter setup is done in a CSV file - I use a google sheet for this, but you can use any tool that works for you and Unreal. The parameters/functions can be listed like this: * Shape key grouping * Customize option * Randomize * Randomize grouping * Randomize exclusive grouping * Clamp min/max * Display name * Tool tip * Comment The exclusive grouping can be used at group level, so you can group shape keys that does not mix well - say one major body shape will corrupt an other shape. You will be able to exclude/clamp the other shapes to prevent this from happening. =MHC - UE4 Generic Character customization for MakeHuman, and other characters= I am making a Generic Customization package that can be used for MakeHuman. This is an overview of the functionality, introducing the components that are available in the package. ==Introduction== If you follow the [[Documentation:Saving models for Unreal Engine and how to import them there|instructions]] on how to import your MakeHuman characters to Unreal there is still a lot of work to do. In general you will need a generic blueprint to "assemble" your character and the cloth element, also you need a basic clothing system, and you need some basic interface to work with the "morph targets". Some of the morph targets will affect the basic shape of the character, while others can handle the general expressions. The prototype for this can be seen below, in this you can see the shape keys as well as the buttons where you can change the base-tint parameter. [[File:MH UE4 MaterialCustom 1.png|400px]] The basic parts leads to two different components for your character blueprint one for customizing the character shape and a system for cloth, hair and other modular attachments. Also the system should be able to handle different character types, say you may have several "base characters", characters of different genders etc. This page contains a general introduction to the MHC components, breaking down what you need to know to understand and setup the system with your own characters. ==Package components - GenCustomize_Comp== This is what the Blueprint for the MH generic character looks like, currently. [[File:MHC_GenericMH_BP-V1.png|300px]] This first version of MHC only contains the '''GenCustomize_Comp''', but the one that i going out will not yet contain the '''GenInventory_Comp'''. (The GenInventory_Comp will come with a few Widgets new and it will allow your character to pickup "items" and "cloth". But in the current version you will not yet be able to set that up.) In addition to these components there are two interfaces - the Interact interface will enable item pickup and other interactions, while the Customize interface will allow the customization - like setting the morph targets and base tint color. (Others will follow). [[File:MHC_GenericMH_Comp-V1.png|300px]] Special to the customization is that you must provide/build a table holding the skeleton mesh specific information for morph targets. This will allow you to setup the customization specific to your MakeHuman character. (Also you need a specific material if you want to enable the color tint.) If your base characters holds different morph targets your "Morph Table" must contain that specific skeleton reference, more details in the technical section on that topic: [[File:MHC_GenericMH_Cust-MT.png|800px]] You can do this in two ways, either you drag/drop the BP into the level, or you can make a subclass of it - add the morph table to either of these. Also there is a debug option, to be used for your own code... or for that in the customize blueprints. [[File:MHC GenericMH BPMT-V1.png|400px]] 61d3483cfaf019ea56149cddd72cae936e2f2399 2076 2075 2021-03-31T16:13:41Z Assetdk 89 /* Package components - GenCustomize_Comp */ wikitext text/x-wiki Once you have the character inside Unreal you want to utilize the shape keys to customize your character. I ma working on a generic solution that will allow you to do just that, this is the first preview! ==Parameter Setup and Parameter Functions== In order to make the customization work you need to make a table containing all the parameters that can be adjusted. This is a bit complicated, but you need to do this once only.. The parameters are imported into Unreal and from there the customization components should handle the rest! The parameter setup is done in a CSV file - I use a google sheet for this, but you can use any tool that works for you and Unreal. The parameters/functions can be listed like this: * Shape key grouping * Customize option * Randomize * Randomize grouping * Randomize exclusive grouping * Clamp min/max * Display name * Tool tip * Comment The exclusive grouping can be used at group level, so you can group shape keys that does not mix well - say one major body shape will corrupt an other shape. You will be able to exclude/clamp the other shapes to prevent this from happening. =MHC - UE4 Generic Character customization for MakeHuman, and other characters= I am making a Generic Customization package that can be used for MakeHuman. This is an overview of the functionality, introducing the components that are available in the package. ==Introduction== If you follow the [[Documentation:Saving models for Unreal Engine and how to import them there|instructions]] on how to import your MakeHuman characters to Unreal there is still a lot of work to do. In general you will need a generic blueprint to "assemble" your character and the cloth element, also you need a basic clothing system, and you need some basic interface to work with the "morph targets". Some of the morph targets will affect the basic shape of the character, while others can handle the general expressions. The prototype for this can be seen below, in this you can see the shape keys as well as the buttons where you can change the base-tint parameter. [[File:MH UE4 MaterialCustom 1.png|400px]] The basic parts leads to two different components for your character blueprint one for customizing the character shape and a system for cloth, hair and other modular attachments. Also the system should be able to handle different character types, say you may have several "base characters", characters of different genders etc. This page contains a general introduction to the MHC components, breaking down what you need to know to understand and setup the system with your own characters. ==Package components - GenCustomize_Comp== This is what the Blueprint for the MH generic character looks like, currently. [[File:MHC_GenericMH_BP-V1.png|300px]] This first version of MHC only contains the '''GenCustomize_Comp''', but the one that i going out will not yet contain the '''GenInventory_Comp'''. (The GenInventory_Comp will come with a few Widgets new and it will allow your character to pickup "items" and "cloth". But in the current version you will not yet be able to set that up.) In addition to these components there are two interfaces - the Interact interface will enable item pickup and other interactions, while the Customize interface will allow the customization - like setting the morph targets and base tint color. (Others will follow). [[File:MHC_GenericMH_Comp-V1.png|300px]] Special to the customization is that you must provide/build a table holding the skeleton mesh specific information for morph targets. This will allow you to setup the customization specific to your MakeHuman character. (Also you need a specific material if you want to enable the color tint.) If your base characters holds different morph targets your "Morph Table" must contain that specific skeleton reference, more details in the technical section on that topic: [[File:MHC_GenericMH_Cust-MT.png|800px]] You can do this in two ways, either you drag/drop the BP into the level, or you can make a subclass of it - add the morph table to either of these. Also there is a debug option, to be used for your own code... or for that in the customize blueprints. [[File:MHC GenericMH BPMT-V1.png|400px]] b0dc5a5c02c8cc44110ae66e66fc5099c806ab8c 2075 2073 2021-03-31T16:13:07Z Assetdk 89 /* Package components - GenCustomize_Comp */ wikitext text/x-wiki Once you have the character inside Unreal you want to utilize the shape keys to customize your character. I ma working on a generic solution that will allow you to do just that, this is the first preview! ==Parameter Setup and Parameter Functions== In order to make the customization work you need to make a table containing all the parameters that can be adjusted. This is a bit complicated, but you need to do this once only.. The parameters are imported into Unreal and from there the customization components should handle the rest! The parameter setup is done in a CSV file - I use a google sheet for this, but you can use any tool that works for you and Unreal. The parameters/functions can be listed like this: * Shape key grouping * Customize option * Randomize * Randomize grouping * Randomize exclusive grouping * Clamp min/max * Display name * Tool tip * Comment The exclusive grouping can be used at group level, so you can group shape keys that does not mix well - say one major body shape will corrupt an other shape. You will be able to exclude/clamp the other shapes to prevent this from happening. =MHC - UE4 Generic Character customization for MakeHuman, and other characters= I am making a Generic Customization package that can be used for MakeHuman. This is an overview of the functionality, introducing the components that are available in the package. ==Introduction== If you follow the [[Documentation:Saving models for Unreal Engine and how to import them there|instructions]] on how to import your MakeHuman characters to Unreal there is still a lot of work to do. In general you will need a generic blueprint to "assemble" your character and the cloth element, also you need a basic clothing system, and you need some basic interface to work with the "morph targets". Some of the morph targets will affect the basic shape of the character, while others can handle the general expressions. The prototype for this can be seen below, in this you can see the shape keys as well as the buttons where you can change the base-tint parameter. [[File:MH UE4 MaterialCustom 1.png|400px]] The basic parts leads to two different components for your character blueprint one for customizing the character shape and a system for cloth, hair and other modular attachments. Also the system should be able to handle different character types, say you may have several "base characters", characters of different genders etc. This page contains a general introduction to the MHC components, breaking down what you need to know to understand and setup the system with your own characters. ==Package components - GenCustomize_Comp== This is what the Blueprint for the MH generic character looks like, currently. [[File:MHC_GenericMH_BP-V1.png|300px]] This first version of MHC only contains the '''GenCustomize_Comp''', but the one that i going out will not yet contain the '''GenInventory_Comp'''. (The GenInventory_Comp will come with a few Widgets new and it will allow your character to pickup "items" and "cloth". But in the current version you will not yet be able to set that up.) In addition to these components there are two interfaces - the Interact interface will enable item pickup and other interactions, while the Customize interface will allow the customization - like setting the morph targets and base tint color. (Others will follow). [[File:MHC_GenericMH_Comp-V1.png|300px]] Special to the customization is that you must provide/build a table holding the skeleton mesh specific information for morph targets. This will allow you to setup the customization specific to your MakeHuman character. (Also you need a specific material if you want to enable the color tint.) If your base characters holds different morph targets your "Morph Table" must contain that specific skeleton reference, more details in the technical section on that topic: [[File:MHC_GenericMH_Cust-MT.png|800px]] You can do this in two ways, either you drag/drop the BP into the level, or you can make a subclass of it - add the morph table to either of these. Also there is a debug option, to be used for your own code... or for that in the customize blueprints. [[File:MHC GenericMH BPMT-V1.png|800px]] 958af898d78a5e24acc3b7658fcb6ce896ae151f 2073 2071 2021-03-31T13:39:54Z Assetdk 89 /* Package components - GenCustomize_Comp */ wikitext text/x-wiki Once you have the character inside Unreal you want to utilize the shape keys to customize your character. I ma working on a generic solution that will allow you to do just that, this is the first preview! ==Parameter Setup and Parameter Functions== In order to make the customization work you need to make a table containing all the parameters that can be adjusted. This is a bit complicated, but you need to do this once only.. The parameters are imported into Unreal and from there the customization components should handle the rest! The parameter setup is done in a CSV file - I use a google sheet for this, but you can use any tool that works for you and Unreal. The parameters/functions can be listed like this: * Shape key grouping * Customize option * Randomize * Randomize grouping * Randomize exclusive grouping * Clamp min/max * Display name * Tool tip * Comment The exclusive grouping can be used at group level, so you can group shape keys that does not mix well - say one major body shape will corrupt an other shape. You will be able to exclude/clamp the other shapes to prevent this from happening. =MHC - UE4 Generic Character customization for MakeHuman, and other characters= I am making a Generic Customization package that can be used for MakeHuman. This is an overview of the functionality, introducing the components that are available in the package. ==Introduction== If you follow the [[Documentation:Saving models for Unreal Engine and how to import them there|instructions]] on how to import your MakeHuman characters to Unreal there is still a lot of work to do. In general you will need a generic blueprint to "assemble" your character and the cloth element, also you need a basic clothing system, and you need some basic interface to work with the "morph targets". Some of the morph targets will affect the basic shape of the character, while others can handle the general expressions. The prototype for this can be seen below, in this you can see the shape keys as well as the buttons where you can change the base-tint parameter. [[File:MH UE4 MaterialCustom 1.png|400px]] The basic parts leads to two different components for your character blueprint one for customizing the character shape and a system for cloth, hair and other modular attachments. Also the system should be able to handle different character types, say you may have several "base characters", characters of different genders etc. This page contains a general introduction to the MHC components, breaking down what you need to know to understand and setup the system with your own characters. ==Package components - GenCustomize_Comp== This is what the Blueprint for the MH generic character looks like, currently. [[File:MHC_GenericMH_BP-V1.png|300px]] This first version of MHC only contains the '''GenCustomize_Comp''', but the one that i going out will not yet contain the '''GenInventory_Comp'''. (The GenInventory_Comp will come with a few Widgets new and it will allow your character to pickup "items" and "cloth". But in the current version you will not yet be able to set that up.) In addition to these components there are two interfaces - the Interact interface will enable item pickup and other interactions, while the Customize interface will allow the customization - like setting the morph targets and base tint color. (Others will follow). [[File:MHC_GenericMH_Comp-V1.png|300px]] Special to the customization is that you must provide/build a table holding the skeleton mesh specific information for morph targets. This will allow you to setup the customization specific to your MakeHuman character. (Also you need a specific material if you want to enable the color tint.) If your base characters holds different morph targets your "Morph Table" must contain that specific skeleton reference, more details in the technical section on that topic: [[File:MHC_GenericMH_Cust-MT.png|800px]] d5beefd6516a24228a6e7948599dad6f50a3c562 2071 2069 2021-03-31T13:22:50Z Assetdk 89 /* Package components - GenCharacter */ wikitext text/x-wiki Once you have the character inside Unreal you want to utilize the shape keys to customize your character. I ma working on a generic solution that will allow you to do just that, this is the first preview! ==Parameter Setup and Parameter Functions== In order to make the customization work you need to make a table containing all the parameters that can be adjusted. This is a bit complicated, but you need to do this once only.. The parameters are imported into Unreal and from there the customization components should handle the rest! The parameter setup is done in a CSV file - I use a google sheet for this, but you can use any tool that works for you and Unreal. The parameters/functions can be listed like this: * Shape key grouping * Customize option * Randomize * Randomize grouping * Randomize exclusive grouping * Clamp min/max * Display name * Tool tip * Comment The exclusive grouping can be used at group level, so you can group shape keys that does not mix well - say one major body shape will corrupt an other shape. You will be able to exclude/clamp the other shapes to prevent this from happening. =MHC - UE4 Generic Character customization for MakeHuman, and other characters= I am making a Generic Customization package that can be used for MakeHuman. This is an overview of the functionality, introducing the components that are available in the package. ==Introduction== If you follow the [[Documentation:Saving models for Unreal Engine and how to import them there|instructions]] on how to import your MakeHuman characters to Unreal there is still a lot of work to do. In general you will need a generic blueprint to "assemble" your character and the cloth element, also you need a basic clothing system, and you need some basic interface to work with the "morph targets". Some of the morph targets will affect the basic shape of the character, while others can handle the general expressions. The prototype for this can be seen below, in this you can see the shape keys as well as the buttons where you can change the base-tint parameter. [[File:MH UE4 MaterialCustom 1.png|400px]] The basic parts leads to two different components for your character blueprint one for customizing the character shape and a system for cloth, hair and other modular attachments. Also the system should be able to handle different character types, say you may have several "base characters", characters of different genders etc. This page contains a general introduction to the MHC components, breaking down what you need to know to understand and setup the system with your own characters. ==Package components - GenCustomize_Comp== This is what the Blueprint for the MH generic character looks like, currently. [[File:MHC_GenericMH_BP-V1.png|300px]] This first version of MHC only contains the '''GenCustomize_Comp''', but the one that i going out will not yet contain the '''GenInventory_Comp'''. (The GenInventory_Comp will come with a few Widgets new and it will allow your character to pickup "items" and "cloth". But in the current version you will not yet be able to set that up.) In addition to these components there are two interfaces - the Interact interface will enable item pickup and other interactions, while the Customize interface will allow the customization - like setting the morph targets and base tint color. (Others will follow). [[File:MHC_GenericMH_Comp-V1.png|300px]] 14ec40f8c7ae0e2b1eab138de1209f3803fd1ebf 2069 2068 2021-03-31T12:54:22Z Assetdk 89 /* Introduction */ wikitext text/x-wiki Once you have the character inside Unreal you want to utilize the shape keys to customize your character. I ma working on a generic solution that will allow you to do just that, this is the first preview! ==Parameter Setup and Parameter Functions== In order to make the customization work you need to make a table containing all the parameters that can be adjusted. This is a bit complicated, but you need to do this once only.. The parameters are imported into Unreal and from there the customization components should handle the rest! The parameter setup is done in a CSV file - I use a google sheet for this, but you can use any tool that works for you and Unreal. The parameters/functions can be listed like this: * Shape key grouping * Customize option * Randomize * Randomize grouping * Randomize exclusive grouping * Clamp min/max * Display name * Tool tip * Comment The exclusive grouping can be used at group level, so you can group shape keys that does not mix well - say one major body shape will corrupt an other shape. You will be able to exclude/clamp the other shapes to prevent this from happening. =MHC - UE4 Generic Character customization for MakeHuman, and other characters= I am making a Generic Customization package that can be used for MakeHuman. This is an overview of the functionality, introducing the components that are available in the package. ==Introduction== If you follow the [[Documentation:Saving models for Unreal Engine and how to import them there|instructions]] on how to import your MakeHuman characters to Unreal there is still a lot of work to do. In general you will need a generic blueprint to "assemble" your character and the cloth element, also you need a basic clothing system, and you need some basic interface to work with the "morph targets". Some of the morph targets will affect the basic shape of the character, while others can handle the general expressions. The prototype for this can be seen below, in this you can see the shape keys as well as the buttons where you can change the base-tint parameter. [[File:MH UE4 MaterialCustom 1.png|400px]] The basic parts leads to two different components for your character blueprint one for customizing the character shape and a system for cloth, hair and other modular attachments. Also the system should be able to handle different character types, say you may have several "base characters", characters of different genders etc. This page contains a general introduction to the MHC components, breaking down what you need to know to understand and setup the system with your own characters. ==Package components - GenCharacter== This is what the Blueprint for the MH generic character looks like, currently. [[File:MHC_GenericMH_BP-V1.png|300px]] This first version of MHC only contains the '''GenCustomize_Comp''', but the one that i going out will not yet contain the '''GenInventory_Comp'''. 326ef15694525a65ebbcfcad1689976796e83cbf 2068 2067 2021-03-31T12:53:51Z Assetdk 89 /* Customization */ wikitext text/x-wiki Once you have the character inside Unreal you want to utilize the shape keys to customize your character. I ma working on a generic solution that will allow you to do just that, this is the first preview! ==Parameter Setup and Parameter Functions== In order to make the customization work you need to make a table containing all the parameters that can be adjusted. This is a bit complicated, but you need to do this once only.. The parameters are imported into Unreal and from there the customization components should handle the rest! The parameter setup is done in a CSV file - I use a google sheet for this, but you can use any tool that works for you and Unreal. The parameters/functions can be listed like this: * Shape key grouping * Customize option * Randomize * Randomize grouping * Randomize exclusive grouping * Clamp min/max * Display name * Tool tip * Comment The exclusive grouping can be used at group level, so you can group shape keys that does not mix well - say one major body shape will corrupt an other shape. You will be able to exclude/clamp the other shapes to prevent this from happening. =MHC - UE4 Generic Character customization for MakeHuman, and other characters= I am making a Generic Customization package that can be used for MakeHuman. This is an overview of the functionality, introducing the components that are available in the package. ==Introduction== If you follow the [[Documentation:Saving models for Unreal Engine and how to import them there|instructions]] on how to import your MakeHuman characters to Unreal there is still a lot of work to do. In general you will need a generic blueprint to "assemble" your character and the cloth element, also you need a basic clothing system, and you need some basic interface to work with the "morph targets". Some of the morph targets will affect the basic shape of the character, while others can handle the general expressions. The basic parts leads to two different components for your character blueprint one for customizing the character shape and a system for cloth, hair and other modular attachments. Also the system should be able to handle different character types, say you may have several "base characters", characters of different genders etc. This page contains a general introduction to the MHC components, breaking down what you need to know to understand and setup the system with your own characters. ==Package components - GenCharacter== This is what the Blueprint for the MH generic character looks like, currently. [[File:MHC_GenericMH_BP-V1.png|300px]] This first version of MHC only contains the '''GenCustomize_Comp''', but the one that i going out will not yet contain the '''GenInventory_Comp'''. 81f3fc3bdc053c7f8f974defa5eef41fe261728f 2067 2066 2021-03-31T12:53:16Z Assetdk 89 /* Package components - GenCharacter */ wikitext text/x-wiki Once you have the character inside Unreal you want to utilize the shape keys to customize your character. I ma working on a generic solution that will allow you to do just that, this is the first preview! ==Parameter Setup and Parameter Functions== In order to make the customization work you need to make a table containing all the parameters that can be adjusted. This is a bit complicated, but you need to do this once only.. The parameters are imported into Unreal and from there the customization components should handle the rest! The parameter setup is done in a CSV file - I use a google sheet for this, but you can use any tool that works for you and Unreal. The parameters/functions can be listed like this: * Shape key grouping * Customize option * Randomize * Randomize grouping * Randomize exclusive grouping * Clamp min/max * Display name * Tool tip * Comment The exclusive grouping can be used at group level, so you can group shape keys that does not mix well - say one major body shape will corrupt an other shape. You will be able to exclude/clamp the other shapes to prevent this from happening. ==Customization== The prototype for this can be seen below, in this you can see the shape keys as well as the buttons where you can change the base-tint parameter. [[File:MH UE4 MaterialCustom 1.png|500px]] =MHC - UE4 Generic Character customization for MakeHuman, and other characters= I am making a Generic Customization package that can be used for MakeHuman. This is an overview of the functionality, introducing the components that are available in the package. ==Introduction== If you follow the [[Documentation:Saving models for Unreal Engine and how to import them there|instructions]] on how to import your MakeHuman characters to Unreal there is still a lot of work to do. In general you will need a generic blueprint to "assemble" your character and the cloth element, also you need a basic clothing system, and you need some basic interface to work with the "morph targets". Some of the morph targets will affect the basic shape of the character, while others can handle the general expressions. The basic parts leads to two different components for your character blueprint one for customizing the character shape and a system for cloth, hair and other modular attachments. Also the system should be able to handle different character types, say you may have several "base characters", characters of different genders etc. This page contains a general introduction to the MHC components, breaking down what you need to know to understand and setup the system with your own characters. ==Package components - GenCharacter== This is what the Blueprint for the MH generic character looks like, currently. [[File:MHC_GenericMH_BP-V1.png|300px]] This first version of MHC only contains the '''GenCustomize_Comp''', but the one that i going out will not yet contain the '''GenInventory_Comp'''. 89dc7db085bb38044811e826ed85b04f26dc6882 2066 2063 2021-03-31T12:52:56Z Assetdk 89 /* Customization */ wikitext text/x-wiki Once you have the character inside Unreal you want to utilize the shape keys to customize your character. I ma working on a generic solution that will allow you to do just that, this is the first preview! ==Parameter Setup and Parameter Functions== In order to make the customization work you need to make a table containing all the parameters that can be adjusted. This is a bit complicated, but you need to do this once only.. The parameters are imported into Unreal and from there the customization components should handle the rest! The parameter setup is done in a CSV file - I use a google sheet for this, but you can use any tool that works for you and Unreal. The parameters/functions can be listed like this: * Shape key grouping * Customize option * Randomize * Randomize grouping * Randomize exclusive grouping * Clamp min/max * Display name * Tool tip * Comment The exclusive grouping can be used at group level, so you can group shape keys that does not mix well - say one major body shape will corrupt an other shape. You will be able to exclude/clamp the other shapes to prevent this from happening. ==Customization== The prototype for this can be seen below, in this you can see the shape keys as well as the buttons where you can change the base-tint parameter. [[File:MH UE4 MaterialCustom 1.png|500px]] =MHC - UE4 Generic Character customization for MakeHuman, and other characters= I am making a Generic Customization package that can be used for MakeHuman. This is an overview of the functionality, introducing the components that are available in the package. ==Introduction== If you follow the [[Documentation:Saving models for Unreal Engine and how to import them there|instructions]] on how to import your MakeHuman characters to Unreal there is still a lot of work to do. In general you will need a generic blueprint to "assemble" your character and the cloth element, also you need a basic clothing system, and you need some basic interface to work with the "morph targets". Some of the morph targets will affect the basic shape of the character, while others can handle the general expressions. The basic parts leads to two different components for your character blueprint one for customizing the character shape and a system for cloth, hair and other modular attachments. Also the system should be able to handle different character types, say you may have several "base characters", characters of different genders etc. This page contains a general introduction to the MHC components, breaking down what you need to know to understand and setup the system with your own characters. ==Package components - GenCharacter== This is what the Blueprint for the MH generic character looks like, currently. [[File:MHC_GenericMH_BP-V1.png|500px]] This first version of MHC only contains the '''GenCustomize_Comp''', but the one that i going out will not yet contain the '''GenInventory_Comp'''. 8160c0ec95658e0dd8c96427821f879ab2edfc63 2063 2042 2021-03-14T19:13:44Z Assetdk 89 /* Customization */ wikitext text/x-wiki Once you have the character inside Unreal you want to utilize the shape keys to customize your character. I ma working on a generic solution that will allow you to do just that, this is the first preview! ==Parameter Setup and Parameter Functions== In order to make the customization work you need to make a table containing all the parameters that can be adjusted. This is a bit complicated, but you need to do this once only.. The parameters are imported into Unreal and from there the customization components should handle the rest! The parameter setup is done in a CSV file - I use a google sheet for this, but you can use any tool that works for you and Unreal. The parameters/functions can be listed like this: * Shape key grouping * Customize option * Randomize * Randomize grouping * Randomize exclusive grouping * Clamp min/max * Display name * Tool tip * Comment The exclusive grouping can be used at group level, so you can group shape keys that does not mix well - say one major body shape will corrupt an other shape. You will be able to exclude/clamp the other shapes to prevent this from happening. ==Customization== The prototype for this can be seen below, in this you can see the shape keys as well as the buttons where you can change the base-tint parameter. [[File:MH UE4 MaterialCustom 1.png|700px]] fe94b8f2492dca382dcf3080df81e29e76811ae6 2042 2041 2021-03-07T16:22:04Z Assetdk 89 /* Parameter Setup and Parameter Functions */ wikitext text/x-wiki Once you have the character inside Unreal you want to utilize the shape keys to customize your character. I ma working on a generic solution that will allow you to do just that, this is the first preview! ==Parameter Setup and Parameter Functions== In order to make the customization work you need to make a table containing all the parameters that can be adjusted. This is a bit complicated, but you need to do this once only.. The parameters are imported into Unreal and from there the customization components should handle the rest! The parameter setup is done in a CSV file - I use a google sheet for this, but you can use any tool that works for you and Unreal. The parameters/functions can be listed like this: * Shape key grouping * Customize option * Randomize * Randomize grouping * Randomize exclusive grouping * Clamp min/max * Display name * Tool tip * Comment The exclusive grouping can be used at group level, so you can group shape keys that does not mix well - say one major body shape will corrupt an other shape. You will be able to exclude/clamp the other shapes to prevent this from happening. ==Customization== The prototype for this can be seen below, in this you can see the shape keys as well as the buttons where you can change the base-tint parameter. [[File:MH UE4 MaterialCustom 1.png]] d2b116648bcf9f9ad10781f07974505688cffbad 2041 2039 2021-02-21T10:49:25Z Assetdk 89 /* Customization= */ wikitext text/x-wiki Once you have the character inside Unreal you want to utilize the shape keys to customize your character. I ma working on a generic solution that will allow you to do just that, this is the first preview! ==Parameter Setup and Parameter Functions== In order to make the customization work you need to make a table containing all the parameters that can be adjusted. This is a bit complicated, but you need to do this once only.. The parameters are imported into Unreal and from there the customization components should handle the rest! The parameter setup is done in a CSV file - I use a google sheet for this, but you can use any tool that works for you and Unreal. The parameters/functions can be listed like this: * Shape key groping * Customize option * Randomize * Randomize grouping * Randomize exclusive grouping * Clamp min/max * Display name * Tool tip * Comment The exclusive grouping can be used at group level, so you can group shape keys that does not mix well - say one major body shape will corrupt an other shape. You will be able to exclude/clamp the other shapes to prevent this from happening. ==Customization== The prototype for this can be seen below, in this you can see the shape keys as well as the buttons where you can change the base-tint parameter. [[File:MH UE4 MaterialCustom 1.png]] c5f40523f1311990408cfe8992fd5a9245a843f7 2039 2021-02-21T10:24:49Z Assetdk 89 Created page with "Once you have the character inside Unreal you want to utilize the shape keys to customize your character. I ma working on a generic solution that will allow you to do just t..." wikitext text/x-wiki Once you have the character inside Unreal you want to utilize the shape keys to customize your character. I ma working on a generic solution that will allow you to do just that, this is the first preview! ===Customization==== The skin can now be modified using a simple interface in the game. The prototype for this can be seen below, in this you can see the shape keys as well as the buttons where you can change the base-tint parameter. [[File:MH UE4 MaterialCustom 1.png]] 96feb88e4c3dceed12c07d03b6dfc5543d19a79c Documentation:What is MakeHuman? 3000 222 737 736 2016-05-20T12:46:42Z Joepal 14 wikitext text/x-wiki MakeHuman is an open source (AGPL3) tool designed to simplify the creation of virtual humans using a Graphical User Interface, also commonly referred to as a GUI. This is a specialized branch of the more general subject of 3D modelling. The MakeHuman Team is focused on this specific branch of the broader subject in order to achieve the best possible level of quality and ease of use in that area. The ultimate goal is to be able to quickly produce a wide array of realistic virtual humans with only a few clicks of the mouse and be able to render or export them for use in other projects. [[File:MH&Purp NQ.jpg|center]] Humans are created through the manipulation of controls that allow for the blending of different human attributes to create unique 3D human characters. The controls are intended to provide the user with a simple way to create characters that give expression to the widest possible range of human forms. The controllable attributes are broken into two groups: macro and detail. The macro targets deal with overall human characteristics like gender, age, height, weight and ethnicity. The detail targets allow for the character to be further refined by focusing on the low level details of such things as the eye's shape or finger's length. The MakeHuman project strives to provide a complete tool that allows for the management of all things needed to create realistic virtual humans. This includes some tools that have not yet been created or are in the early stages of development for things like poses, animation cycles, managing facial expressions, hair and clothes. With the exception of modelling, most of these tools follow a "point and click" approach by using the MakeHuman's Library. Via the MakeHuman library, users preview and load poses, animation cycles, facial expressions, hair, shoes and clothes onto their character. MakeHuman also offers tools for exporting virtual humans to other software (such as the Blender 3D modeling suite) where further refinements can be made. MakeHuman is developed by a community of programmers, artists, academics and enthusiasts interested in 3D computer models of human beings. f331ea52316df77df85733eb8f1abc0b149c631a 736 735 2016-05-20T12:43:42Z Joepal 14 wikitext text/x-wiki MakeHuman is an open source (AGPL3) tool designed to simplify the creation of virtual humans using a Graphical User Interface, also commonly referred to as a GUI. This is a specialized branch of the more general subject of 3D modelling. The MakeHuman Team is focused on this specific branch of the broader subject in order to achieve the best possible level of quality and ease of use in that area. The ultimate goal is to be able to quickly produce a wide array of realistic virtual humans with only a few clicks of the mouse and be able to render or export them for use in other projects. [[File:MH&Purp NQ.jpg|center]] Humans are created through the manipulation of controls that allow for the blending of different human attributes to create unique 3D human characters. The controls are intended to provide the user with a simple way to create characters that give expression to the widest possible range of human forms. The controllable attributes are broken into two groups: macro and detail. The macro targets deal with overall human characteristics like gender, age, height, weight and ethnicity. The detail targets allow for the character to be further refined by focusing on the low level details of such things as the eye's shape or finger's length. The MakeHuman project strives to provide a complete tool that allows for the management of all things needed to create realistic virtual humans. This includes some tools that have not yet been created or are in the early stages of development for things like poses, animation cycles, managing facial expressions, hair and clothes. With the exception of modelling, most of these tools follow a "point and click" approach by using the MakeHuman™'s Library. Via the MakeHuman™ Library, users preview and load poses, animation cycles, facial expressions, hair, shoes and clothes onto their character. MakeHuman™ also offers tools for exporting virtual humans to other software (such as the Blender 3D modeling suite) where further refinements can be made. MakeHuman is developed by a community of programmers, artists, academics and enthusiasts interested in 3D computer models of human beings. af5a29ae1280a9ea2fe819d405c594ad37059381 735 676 2016-05-20T12:41:33Z Joepal 14 wikitext text/x-wiki MakeHuman (MH) is Open Source software (AGPL3.0) for creating lightweight, realistic 3D models of the human form. It is designed to be easy to use and flexible. The models are based upon real data for ethnicity, sex and body type and can produce an almost limitless range of human and human-like forms. The forms can be posed and rendered in the software itself or exported into other softwares for further manipulation. It is developed by a community of programmers, artists, academics and enthusiasts interested in 3D computer models of human beings. MakeHuman is used to create a 3D mesh with optimized topology representing human beings with a user-controlled mix of characteristics including race, sex, size, muscularity and other features. The models thus created are integrated into one of two typical pipelines or workflows. In the first one, MakeHuman is integrated in a professional pipeline, where the A-posed mesh is exported into a full-featured 3D CGI system such as Blender, Maya, XSI, C4D, Zbrush etc.. in order to be included in complex scenes and renderings, or used for games. In the second pipeline the mesh is posed and clothed directly in MakeHuman, then rendered with an external engine, for 2D art or quick demo reel of a character. 225159c53f832ba4f232a55ce918fea067ae71fa 676 2016-05-20T08:00:14Z Joepal 14 Created page with "MakeHuman (MH) is Open Source software (AGPL3.0) for creating lightweight, realistic 3D models of the human form. It is designed to be easy to use and flexible. The models are..." wikitext text/x-wiki MakeHuman (MH) is Open Source software (AGPL3.0) for creating lightweight, realistic 3D models of the human form. It is designed to be easy to use and flexible. The models are based upon real data for ethnicity, sex and body type and can produce an almost limitless range of human and human-like forms. The forms can be posed and rendered in the software itself or exported into other softwares for further manipulation. It is developed by a community of programmers, artists, academics and enthusiasts interested in 3D computer models of human beings. MakeHuman is used to create a 3D mesh with optimized topology representing human beings with a user-controlled mix of characteristics including race, sex, size, muscularity and other features. The models thus created are integrated into one of two typical pipelines or workflows. In the first one, MakeHuman is integrated in a professional pipeline, where the A-posed mesh is exported into a full-featured 3D CGI system such as Blender, Maya, XSI, C4D, Zbrush etc.. in order to be included in complex scenes and renderings, or used for games. In the second pipeline the mesh is posed and clothed directly in MakeHuman, then rendered with an external engine, for 2D art or quick demo reel of a character. This section contains high-level articles that describe the purpose and features of the MakeHuman software. * Features-- describes the technical features of the program * Evolution towards a Universal Model Topology: the HoMunculus-- gives an interesting background history of the development of the MakeHuman model The MakeHuman User Documentation includes articles for installing the software and using it 'out of the box' as well as extending and/or configuring MH for your own purposes. Beginners will want to begin with the Installation sections for their computer systems and the GUI and Modelling section for using the program. 3a2e638d10f4e88cb85b4b0ef98ba4c56040de42 Documentation:What is an asset? 3000 255 771 2016-05-24T11:46:41Z Joepal 14 Created page with "MakeHuman conceptually consist of two parts: Code (the program as such) and graphical assets. An asset is generally anything that is visible on or in regards to the human mod..." wikitext text/x-wiki MakeHuman conceptually consist of two parts: Code (the program as such) and graphical assets. An asset is generally anything that is visible on or in regards to the human model, for example: * Target: A body morph, in practice a slider you drag inside the MakeHuman GUI * Clothes: Various clothing you hang on the toon * Hair: Hairstyles * Skin: Textures you apply to the body * Pose: A pose (for example "Sitting") you can put the toon in There are more asset types than these, but they are the most obvious ones. bcf11bd93267a73561974390d9e6f2c345008bef Documentation:Zoom, pan and rotate using the orbital camera 3000 229 1106 781 2016-07-05T17:16:03Z Aranuvir 17 wikitext text/x-wiki Starting with MH 1.0 there is a new orbital camera system that replaces the old still camera. This new camera addresses the issues where the old still camera made it hard to focus on body parts, for example hands. In the new system the human never moves. Rather, the camera travels on an imaginary sphere surrrounding the human. The user "mouse picks" a focal point on the human by right clicking, and zooms in and out by dragging. This allows the user to easily rotate around this point to inspect it from all sides. == Right-click zoom picking == The default zoom button has been changed to the right mouse button and the use of the mouse wheel is deprecated. [[File:mh_interface_cam.png]] Right clicking now serves two purposes, it picks the center of focus based on the location of the cursor when it is positioned over the human, and it lets you zoom in or out by dragging the mouse. Right clicking on the background and not on the human simply makes it zoom in or out straight ahead. == Auto-zoom == Another advantage of the orbital camera is that it will adapt the viewing distance based on the height of the human. [[File:mh_grid_interface2.png]] The camera will attempt to keep the current focus point in the center of the screen and maintain the same amount of visibility, independent of whether you are modeling a 1 year old child or a 2.5 m tall giant. == Panning == The panning function of the camera has been moved to the middle mouse button (which we suspect is not available to all users) to indicate its reduced importance. Panning will be limited based on camera zoom and will even be completely locked when the camera is zoomed back so that the entire human is visible. The reasoning for this is that panning in the context of MakeHuman is only useful to focus on a feature of the human mesh, not for moving the human around in the scene. In fact we discourage excessive use of the panning feature, and encourage you to use the right click zoom picking instead. Panning is only recommended for small corrections to the framing, as it is quite tricky to position the camera center yourself (you will notice this if you try rotating the camera after having panned over a larger distance, it might not rotate around the center you expected). == Grid == The grid helps with getting a better idea of the proportions of the human, and it provides a point of reference in the world when the camera is moved around. [[File:mh_grid_interface.png]] There are two detail levels which are activated when the camera is zoomed close enough. The grid adapts to the 'units' setting, which allows for metric and imperial units. The metric grid has subgrids each 2 cm and a main grid at 10 cm (1 dm) intervals, while the imperial grid has subgrids per inch, and a main grid with 1 foot as size. 940d478008e92470a52cc231a1cd13446fcfdd5a 781 686 2016-05-24T12:07:05Z Joepal 14 wikitext text/x-wiki Starting with MH 1.0 there is a new orbital camera system that replaces the old still camera. This new camera addresses the issues where the old still camera made it hard to focus on body parts, for example hands. In the new system the human never moves. Rather, the camera travels on an imaginary sphere surrrounding the human. The user "mouse picks" a focal point on the human by right clicking, and zooms in and out by dragging. This allows the user to easily rotate around this point to inspect it from all sides. == Right-click zoom picking == The default zoom button has been changed to the right mouse button and the use of the mouse wheel is deprecated. !IMAGE!Pictures/mh_interface_cam.png!/IMAGE! Right clicking now serves two purposes, it picks the center of focus based on the location of the cursor when it is positioned over the human, and it lets you zoom in or out by dragging the mouse. Right clicking on the background and not on the human simply makes it zoom in or out straight ahead. == Auto-zoom == Another advantage of the orbital camera is that it will adapt the viewing distance based on the height of the human. !IMAGE!Pictures/mh_grid_interface2.png!/IMAGE! The camera will attempt to keep the current focus point in the center of the screen and maintain the same amount of visibility, independent of whether you are modeling a 1 year old child or a 2.5 m tall giant. == Panning == The panning function of the camera has been moved to the middle mouse button (which we suspect is not available to all users) to indicate its reduced importance. Panning will be limited based on camera zoom and will even be completely locked when the camera is zoomed back so that the entire human is visible. The reasoning for this is that panning in the context of MakeHuman is only useful to focus on a feature of the human mesh, not for moving the human around in the scene. In fact we discourage excessive use of the panning feature, and encourage you to use the right click zoom picking instead. Panning is only recommended for small corrections to the framing, as it is quite tricky to position the camera center yourself (you will notice this if you try rotating the camera after having panned over a larger distance, it might not rotate around the center you expected). == Grid == The grid helps with getting a better idea of the proportions of the human, and it provides a point of reference in the world when the camera is moved around. !IMAGE!Pictures/mh_grid_interface.png!/IMAGE! There are two detail levels which are activated when the camera is zoomed close enough. The grid adapts to the 'units' setting, which allows for metric and imperial units. The metric grid has subgrids each 2 cm and a main grid at 10 cm (1 dm) intervals, while the imperial grid has subgrids per inch, and a main grid with 1 foot as size. e2b682b93b6a47a40bff2ac8608e8117c21d9950 686 2016-05-20T08:37:32Z Joepal 14 Created page with "Starting with MH 1.0 there is a new orbital camera system that replaces the old still camera. This new camera addresses the issues where the old still camera made it hard to f..." wikitext text/x-wiki Starting with MH 1.0 there is a new orbital camera system that replaces the old still camera. This new camera addresses the issues where the old still camera made it hard to focus on body parts, for example hands. In the new system the human never moves. Rather, the camera travels on an imaginary sphere surrrounding the human. The user "mouse picks" a focal point on the human by right clicking, and zooms in and out by dragging. This allows the user to easily rotate around this point to inspect it from all sides. ==== Right-click zoom picking ==== The default zoom button has been changed to the right mouse button and the use of the mouse wheel is depricated. !IMAGE!Pictures/mh_interface_cam.png!/IMAGE! Right clicking now serves two purposes, it picks the center of focus based on the location of the cursor when it is positioned over the human, and it lets you zoom in or out by dragging the mouse. Right clicking on the background and not on the human simply makes it zoom in or out straight ahead. ==== Auto-zoom ==== Another advantage of the orbital camera is that it will adapt the viewing distance based on the height of the human. !IMAGE!Pictures/mh_grid_interface2.png!/IMAGE! The camera will attempt to keep the current focus point in the center of the screen and maintain the same amount of visibility, independent of whether you are modeling a 1 year old child or a 2.5 m tall giant. ==== Panning ==== The panning function of the camera has been moved to the middle mouse button (which we suspect is not available to all users) to indicate its reduced importance. Panning will be limited based on camera zoom and will even be completely locked when the camera is zoomed back so that the entire human is visible. The reasoning for this is that panning in the context of MakeHuman is only useful to focus on a feature of the human mesh, not for moving the human around in the scene. In fact we discourage excessive use of the panning feature, and encourage you to use the right click zoom picking instead. Panning is only recommended for small corrections to the framing, as it is quite tricky to position the camera center yourself (you will notice this if you try rotating the camera after having panned over a larger distance, it might not rotate around the center you expected). ==== Grid ==== The grid helps with getting a better idea of the proportions of the human, and it provides a point of reference in the world when the camera is moved around. !IMAGE!Pictures/mh_grid_interface.png!/IMAGE! There are two detail levels which are activated when the camera is zoomed close enough. The grid adapts to the 'units' setting, which allows for metric and imperial units. The metric grid has subgrids each 2 cm and a main grid at 10 cm (1 dm) intervals, while the imperial grid has subgrids per inch, and a main grid with 1 foot as size. 7e67bca0ebb60d4ca59794106d0a2ef55f0bcd0d Documentation Talk:Development infrastructure 3001 720 2123 2122 2021-07-16T09:49:17Z Fortuna 107 It seems the page is outdated and missleading. wikitext text/x-wiki It seems the page is outdated and missleading. I found a new repository at https://github.com/makehumancommunity/makehuman --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 09:49, 16 July 2021 (UTC) b9655337db1200230774aecff38e65d21f9da2af 2122 2121 2021-07-16T09:48:08Z Fortuna 107 It seems the page is outdated and missleading. wikitext text/x-wiki It seems the page is outdated and missleading. I found a new repository at https://github.com/makehumancommunity/makehuman --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 09:48, 16 July 2021 (UTC) d8a4276cc6d7cda43773ad33cd52e980e2c1012b 2121 2021-07-16T09:47:47Z Fortuna 107 It seems the page is outdated and missleading. wikitext text/x-wiki It seems the page is outdated and missleading. I found a new repository at https://github.com/makehumancommunity/makehuman --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 09:47, 16 July 2021 (UTC) 4568c2710481e91adc3e4f6db84f2f6c47c78ec9 Documentation Talk:Exports and file formats 3001 256 784 783 2016-05-24T21:03:10Z Joepal 14 wikitext text/x-wiki Note that there is considerable overlap between this section and what I have already done in the workflows section. Perhaps they can be combined? SEE http://www.makehumancommunity.org/wiki/MakeHuman_Workflows Particularly for the 3DSMax and Maya sections there is stuff populated that is not available here yet. Perhaps it is of use? http://www.makehumancommunity.org/wiki/MakeHuman_Workflows#Moving_Assets_into_Autodesk_Maya http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax Joel: Yes, I thought I had written about that in the comments I wrote in [[Documentation:Planning on how to restructure the documentation]], but it seems I must've missed saving that section. I think we should move the workflows articles largely as-is so that they instead end up as parts of the documentation. Those, the terminology and possibly the video tutorials. 0aa96aaf56538da086f4eae8e5c87b71b6ccbd69 783 2016-05-24T15:03:23Z Robbaer 12 Some assets for this section are really already in existance and could be tweaked or imporved instead of rewritten from scratch? wikitext text/x-wiki Note that there is considerable overlap between this section and what I have already done in the workflows section. Perhaps they can be combined? SEE http://www.makehumancommunity.org/wiki/MakeHuman_Workflows Particularly for the 3DSMax and Maya sections there is stuff populated that is not available here yet. Perhaps it is of use? http://www.makehumancommunity.org/wiki/MakeHuman_Workflows#Moving_Assets_into_Autodesk_Maya http://www.makehumancommunity.org/wiki/Moving_Assets_into_Autodesk_3DSMax 78740662d94bbfcc37df704416a8a5dff72dda9e Documentation Talk:Index 3001 145 485 484 2015-08-29T09:38:47Z Fairytail 16 /* Formatting */ wikitext text/x-wiki == Suggested Use == : Please see Help:Talk pages for how to edit talk pages. Robbaer has commented on his talk page that a common look and feel would make this wiki better. Should we use this talk page to discuss ideas for general editing policies? == Policy Discussion == : Formatting pages - images on left, text on right, or vice versa. : Oh, and I prefer to indent discussions from the start. : Please sign talk page edits [[User:Fairytail|Fairytail]] ([[User talk:Fairytail|talk]]) 23:00, 15 August 2015 (CEST) == Formatting == : I've tidied up the formatting. Please use <nowiki><br /></nowiki> tags within lists to get a new line, otherwise the formatting breaks. Also, please be aware of spaces within tags, otherwise subpages will start with an underscore. [[User:Fairytail|Fairytail]] ([[User talk:Fairytail|talk]]) 10:37, 29 August 2015 (CEST) :: For a simple way to see the status of a section, i've taken joepal's formatting, and extended it, using a green color for completed sections (#E6EEE6), grey for in progress (#EEEEEE), and red for (#EEE6E6) for sections to be done. Begin a section with<pre>{| cellspacing="11" style="width:100%;"|-style="vertical-align:top;"| style="width:33%;background-color: #E6E6E6; padding:.5em;"|</pre> and close it with <pre>|}</pre>[[User:Fairytail|Fairytail]] ([[User talk:Fairytail|talk]]) 11:38, 29 August 2015 (CEST) dc4d479a798b7c4312abbea0f4a6271df61a33fb 484 474 2015-08-29T09:38:23Z Fairytail 16 /* Formatting */ wikitext text/x-wiki == Suggested Use == : Please see Help:Talk pages for how to edit talk pages. Robbaer has commented on his talk page that a common look and feel would make this wiki better. Should we use this talk page to discuss ideas for general editing policies? == Policy Discussion == : Formatting pages - images on left, text on right, or vice versa. : Oh, and I prefer to indent discussions from the start. : Please sign talk page edits [[User:Fairytail|Fairytail]] ([[User talk:Fairytail|talk]]) 23:00, 15 August 2015 (CEST) == Formatting == : I've tidied up the formatting. Please use <nowiki><br /></nowiki> tags within lists to get a new line, otherwise the formatting breaks. Also, please be aware of spaces within tags, otherwise subpages will start with an underscore. [[User:Fairytail|Fairytail]] ([[User talk:Fairytail|talk]]) 10:37, 29 August 2015 (CEST) :: For a simple way to see the status of a section, i've taken joepal's formatting, and extended it, using a green color for completed sections (#E6EEE6), grey for in progress (#EEEEEE), and red for (#EEE6E6) for sections to be done. Begin a section with<pre>{| cellspacing="11" style="width:100%;"|-style="vertical-align:top;"| style="width:33%;background-color: #E6E6E6; padding:.5em;"|</pre> and close it with <pre>|}</pre> a6c7043e04c7d93e3ae006a1c950cd4db48e0e05 474 407 2015-08-29T08:38:10Z Fairytail 16 wikitext text/x-wiki == Suggested Use == : Please see Help:Talk pages for how to edit talk pages. Robbaer has commented on his talk page that a common look and feel would make this wiki better. Should we use this talk page to discuss ideas for general editing policies? == Policy Discussion == : Formatting pages - images on left, text on right, or vice versa. : Oh, and I prefer to indent discussions from the start. : Please sign talk page edits [[User:Fairytail|Fairytail]] ([[User talk:Fairytail|talk]]) 23:00, 15 August 2015 (CEST) == Formatting == : I've tidied up the formatting. Please use <nowiki><br /></nowiki> tags within lists to get a new line, otherwise the formatting breaks. Also, please be aware of spaces within tags, otherwise subpages will start with an underscore. [[User:Fairytail|Fairytail]] ([[User talk:Fairytail|talk]]) 10:37, 29 August 2015 (CEST) 751ae680f9af0e94c9c0a71efc45b6d5239d67ae 407 381 2015-08-15T21:02:43Z Fairytail 16 Should we use this talk page to discuss ideas for general editing policies. wikitext text/x-wiki == Suggested Use == : Please see Help:Talk pages for how to edit talk pages. Robbaer has commented on his talk page that a common look and feel would make this wiki better. Should we use this talk page to discuss ideas for general editing policies? == Policy Discussion == : Formatting pages - images on left, text on right, or vice versa. : Oh, and I prefer to indent discussions from the start. : Please sign talk page edits [[User:Fairytail|Fairytail]] ([[User talk:Fairytail|talk]]) 23:00, 15 August 2015 (CEST) 7ff16a47abba2cf1d76bc9ddd3193ccb32224fc9 381 2015-08-13T11:31:02Z Joepal 14 Created page with "Talk page." wikitext text/x-wiki Talk page. 690fb75a475d44437467a8457b137eeb863d7416 Documentation Talk:MHBlenderTools: MakeTarget 3001 162 405 2015-08-15T20:24:50Z Fairytail 16 Created page with "== Editing MHBlenderTools: MakeTarget == : This is a work in progress. ~~~~" wikitext text/x-wiki == Editing MHBlenderTools: MakeTarget == : This is a work in progress. [[User:Fairytail|Fairytail]] ([[User talk:Fairytail|talk]]) 22:24, 15 August 2015 (CEST) 35308daa10e9eb5eaad952ac8757842014ca8a29 Documentation Talk:OpenGL Notes 3001 569 1535 2018-12-01T09:51:27Z Robbaer 12 Created page with "I am pretty sure makehuman only uses orthographic mode not perspective mode." wikitext text/x-wiki I am pretty sure makehuman only uses orthographic mode not perspective mode. a570aa50923100062fdd7b1290507daed798e80f Documentation Talk:Saving models for Unreal Engine and how to import them there 3001 583 2120 2035 2021-07-11T10:54:32Z Fortuna 107 Armature bone name correction wikitext text/x-wiki == Eye materials == Different configuration: Set Blend Mode to Masked, Connect A toOpacity Mask, add Roughness Parameter and set it to 0.15. The difference can be seen in the following picture. Left side masked with specular highlights and right translucent where specular can't be applied: [[File:eyes_maskedspecular_vs_translucent.jpg]] Material details: [[File:Ue4-26-eye-material.JPG]] --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 07:46, 26 January 2021 (UTC) Thanks a lot this ha been added to the page. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 20 February 2021 (UTC) == Teeth materials == Different configuration: Set Blend Mode to Masked, Connect A toOpacity Mask, add Roughness Parameter and set it to 0.3 Material configuration: [[File:Ue4-26-teeth-material.jpg]] --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 08:45, 26 January 2021 (UTC) == main_root bone == Instead of main_root the node should be named Armature. Source: https://answers.unrealengine.com/questions/725257/tutorial-how-to-remove-extra-root-bone-from-blende.html --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 10:54, 11 July 2021 (UTC) dbc65a3c7afb43c0c5849d43218ca4716c6c4981 2035 2005 2021-02-20T08:10:09Z Assetdk 89 /* Eye materials */ wikitext text/x-wiki == Eye materials == Different configuration: Set Blend Mode to Masked, Connect A toOpacity Mask, add Roughness Parameter and set it to 0.15. The difference can be seen in the following picture. Left side masked with specular highlights and right translucent where specular can't be applied: [[File:eyes_maskedspecular_vs_translucent.jpg]] Material details: [[File:Ue4-26-eye-material.JPG]] --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 07:46, 26 January 2021 (UTC) Thanks a lot this ha been added to the page. --[[User:Assetdk|Assetdk]] ([[User talk:Assetdk|talk]]) 08:09, 20 February 2021 (UTC) == Teeth materials == Different configuration: Set Blend Mode to Masked, Connect A toOpacity Mask, add Roughness Parameter and set it to 0.3 Material configuration: [[File:Ue4-26-teeth-material.jpg]] --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 08:45, 26 January 2021 (UTC) 1829bcad8bbe58e9830f3433304b754ea29e95db 2005 2004 2021-01-26T08:52:37Z Fortuna 107 /* Eye materials */ wikitext text/x-wiki == Eye materials == Different configuration: Set Blend Mode to Masked, Connect A toOpacity Mask, add Roughness Parameter and set it to 0.15. The difference can be seen in the following picture. Left side masked with specular highlights and right translucent where specular can't be applied: [[File:eyes_maskedspecular_vs_translucent.jpg]] Material details: [[File:Ue4-26-eye-material.JPG]] --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 07:46, 26 January 2021 (UTC) == Teeth materials == Different configuration: Set Blend Mode to Masked, Connect A toOpacity Mask, add Roughness Parameter and set it to 0.3 Material configuration: [[File:Ue4-26-teeth-material.jpg]] --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 08:45, 26 January 2021 (UTC) 9186bf7e5639a5ca45a0148b137b2ec4c4c93a61 2004 2003 2021-01-26T08:46:24Z Fortuna 107 /* Teeth materials */ wikitext text/x-wiki == Eye materials == Different configuration: Set Blend Mode to Masked, Connect A toOpacity Mask, add Roughness Parameter and set it to 0.1 The difference can be seen in the following picture. Left side masked with specular highlights and right translucent where specular can't be applied: [[File:eyes_maskedspecular_vs_translucent.jpg]] Material details: [[File:Ue4-26-eye-material.JPG]] --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 07:46, 26 January 2021 (UTC) == Teeth materials == Different configuration: Set Blend Mode to Masked, Connect A toOpacity Mask, add Roughness Parameter and set it to 0.3 Material configuration: [[File:Ue4-26-teeth-material.jpg]] --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 08:45, 26 January 2021 (UTC) bb92521f42b2c07083ef096101e1432b6f1b8fc5 2003 1999 2021-01-26T08:46:04Z Fortuna 107 Teeth materials details for UE4.26 added. wikitext text/x-wiki == Eye materials == Different configuration: Set Blend Mode to Masked, Connect A toOpacity Mask, add Roughness Parameter and set it to 0.1 The difference can be seen in the following picture. Left side masked with specular highlights and right translucent where specular can't be applied: [[File:eyes_maskedspecular_vs_translucent.jpg]] Material details: [[File:Ue4-26-eye-material.JPG]] --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 07:46, 26 January 2021 (UTC) == Teeth materials == Different configuration: Set Blend Mode to Masked, Connect A toOpacity Mask, add Roughness Parameter and set it to 0.4 Material configuration: [[File:Ue4-26-teeth-material.jpg]] --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 08:45, 26 January 2021 (UTC) bbf59eb38f28012298073e6271984d742a2acd86 1999 1988 2021-01-26T07:47:28Z Fortuna 107 Eye material details added. wikitext text/x-wiki == Eye materials == Different configuration: Set Blend Mode to Masked, Connect A toOpacity Mask, add Roughness Parameter and set it to 0.1 The difference can be seen in the following picture. Left side masked with specular highlights and right translucent where specular can't be applied: [[File:eyes_maskedspecular_vs_translucent.jpg]] Material details: [[File:Ue4-26-eye-material.JPG]] --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 07:46, 26 January 2021 (UTC) == Teeth materials == Different configuration: Set Blend Mode to Masked, Connect A toOpacity Mask, add Roughness Parameter and set it to 0.4 --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 06:27, 19 January 2021 (UTC) e34de15113cea4872189e588199aa1ddd2394c73 1988 1986 2021-01-19T06:49:39Z Fortuna 107 Example image wikitext text/x-wiki == Eye materials == Different configuration: Set Blend Mode to Masked, Connect A toOpacity Mask, add Roughness Parameter and set it to 0.1 The difference can be seen in the following picture. Left side masked with specular highlights and right translucent where specular can't be applied: [[File:eyes_maskedspecular_vs_translucent.jpg]] --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 06:27, 19 January 2021 (UTC) == Teeth materials == Different configuration: Set Blend Mode to Masked, Connect A toOpacity Mask, add Roughness Parameter and set it to 0.4 --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 06:27, 19 January 2021 (UTC) cbd13034826b3fcaff77abb561642003fd181f35 1986 1635 2021-01-19T06:27:18Z Fortuna 107 Eye and teeth material suggestion wikitext text/x-wiki == Eye materials == Different configuration: Set Blend Mode to Masked, Connect A toOpacity Mask, add Roughness Parameter and set it to 0.1 --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 06:27, 19 January 2021 (UTC) == Teeth materials == Different configuration: Set Blend Mode to Masked, Connect A toOpacity Mask, add Roughness Parameter and set it to 0.4 --[[User:Fortuna|Fortuna]] ([[User talk:Fortuna|talk]]) 06:27, 19 January 2021 (UTC) b4697bf86270ab32c0770d6f6d9e23dcd80831d6 1635 2020-02-17T18:26:24Z Assetdk 89 Created page with "Please add your comments here or add your own sections and links on the "main page"." wikitext text/x-wiki Please add your comments here or add your own sections and links on the "main page". 7ea2d1af0050b95ebde9002728b434ffc549ee7f FAQ:Can I create a commercial closed source game with models generated by MakeHuman? 3002 40 99 2015-07-10T09:57:53Z Joepal 14 Created page with "See [[FAQ:Can I sell models created with MakeHuman?]]" wikitext text/x-wiki See [[FAQ:Can I sell models created with MakeHuman?]] 35088bf10f86e19f333ed46226c0167aae08c761 FAQ:Can I export an asset from Blender and get it back into MakeHuman? 3002 519 1381 1380 2017-03-27T21:02:09Z Robbaer 12 wikitext text/x-wiki Short answer: No, not for typical workflows. The .mhx2 format, so far, has only one exporter (and it is for MakeHuman) and only one importer (and it is for Blender). You can go from MakeHuman to Blender, but not back again to MakeHuman with .mhx2. You can save what you do in Blender, of course, as .blend files, but MakeHuman can not read these either. If you want to use the .blend file on another computer, consider using the [ File | External data | pack all into .blend ] menu in Blender so that your textures follow you automatically to the second computer. If you want to go from MakeHuman to Blender for the animator, then get feedback from her (the animator), and then make changes specified by the animator, you should save the MakeHuman file as both an .mhm file which saves what you have in the MakeHuman interface, and as .mhx2 which can be read by Blender. You can start from where you left off with the .mhm, make the changes specified by the animator, and then create a NEW .mhx2 for her. You cannot take changes the animator has made in Blender and get them back into MakeHuman. Not possible with any file format. That is not how MakeHuman works. It is not a regular 3D modeling program. It is the initial program in a workflow chain. Once you have moved to Blender (or Max or Maya) you are stuck there. The one other thing you might want to do is make clothes that you can put on different characters in MakeHuman. This you CAN get back into MakeHuman with some work, but the format is NOT .mhx2. You use the MakeClothes plugin in Blender to produce the clothes, and they are saved from that plugin in a form that can be used directly by MakeHuman. There is documentation on the MakeClothes plugin here, and there are many user contributed assets made with it on the community assets page. See http://www.makehumancommunity.org/conte ... ssets.html for these assets. See this documentation for making your own assets: http://www.makehumancommunity.org/wiki/ ... new_assets http://www.makehumancommunity.org/wiki/ ... _tutorials 654b9f08aa715c0e8aaa2f14f64979482284c17b 1380 2017-03-27T21:01:19Z Robbaer 12 MakeHuman sits upstream of Blender in most workflows, and Blender files can not be directly imported into MakeHuman in any format. wikitext text/x-wiki Short answer: No. The .mhx2 format, so far, has only one exporter (and it is for MakeHuman) and only one importer (and it is for Blender). You can go from MakeHuman to Blender, but not back again to MakeHuman with .mhx2. You can save what you do in Blender, of course, as .blend files, but MakeHuman can not read these either. If you want to use the .blend file on another computer, consider using the [ File | External data | pack all into .blend ] menu in Blender so that your textures follow you automatically to the second computer. If you want to go from MakeHuman to Blender for the animator, then get feedback from her (the animator), and then make changes specified by the animator, you should save the MakeHuman file as both an .mhm file which saves what you have in the MakeHuman interface, and as .mhx2 which can be read by Blender. You can start from where you left off with the .mhm, make the changes specified by the animator, and then create a NEW .mhx2 for her. You cannot take changes the animator has made in Blender and get them back into MakeHuman. Not possible with any file format. That is not how MakeHuman works. It is not a regular 3D modeling program. It is the initial program in a workflow chain. Once you have moved to Blender (or Max or Maya) you are stuck there. The one other thing you might want to do is make clothes that you can put on different characters in MakeHuman. This you CAN get back into MakeHuman with some work, but the format is NOT .mhx2. You use the MakeClothes plugin in Blender to produce the clothes, and they are saved from that plugin in a form that can be used directly by MakeHuman. There is documentation on the MakeClothes plugin here, and there are many user contributed assets made with it on the community assets page. See http://www.makehumancommunity.org/conte ... ssets.html for these assets. See this documentation for making your own assets: http://www.makehumancommunity.org/wiki/ ... new_assets http://www.makehumancommunity.org/wiki/ ... _tutorials ee491bf1d2084a5cb83d685f89cd843a883f3f23 FAQ:Can I sell models created with MakeHuman? 3002 39 2077 1432 2021-04-16T13:47:27Z Joepal 14 wikitext text/x-wiki Yes. From the license section that applies to the exported models: You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission. The exported models end up being licensed [https://creativecommons.org/publicdomain/zero/1.0/ CC0 (Creative Commons Zero)]. This is basically the most liberal license in the world, and for all practical purposes it places no restrictions on the licensee. The full license text is available at https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md == Other formulations of the same question == As it has proven somewhat difficult for new users to understand that CC0 means you can do whatever you want with the export, here are some other formulations of the same question: '''Can I use exported models in a closed-source game?''' Yes '''Can I use exported models in video productions?''' Yes '''Can I modify exported models?''' Yes '''Can I re-use and/or sell parts of the export, such as textures?''' Yes '''Do I have to say where I got the exported model from?''' No (but also read [[FAQ:What do I need to do when I use a CC-BY asset?]]) '''Do I have to pay anything to use the exported model in a commercial setting?''' No '''Do I need a separate commercial license in order to use exported models in a commercial setting?''' No 2e8f82d03778431423e2f81d38a00e2e9834aca3 1432 1416 2017-08-20T08:57:12Z Joepal 14 wikitext text/x-wiki Yes. From the license section that applies to the exported models: You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission. With all normal usage of MakeHuman (i.e using the GUI in any way you can think of), the exported models end up being licensed [https://creativecommons.org/publicdomain/zero/1.0/ CC0 (Creative Commons Zero)]. This is basically the most liberal license in the world, and for all practical purposes it places no restrictions on the licensee. For a more thorough explanation of the license setup, please read http://www.makehuman.org/license_explanation.php (the full license text is available at http://www.makehuman.org/license.php) == Other formulations of the same question == As it has proven somewhat difficult for new users to understand that CC0 means you can do whatever you want with the export, here are some other formulations of the same question: '''Can I use exported models in a closed-source game?''' Yes '''Can I use exported models in video productions?''' Yes '''Can I modify exported models?''' Yes '''Can I re-use and/or sell parts of the export, such as textures?''' Yes '''Do I have to say where I got the exported model from?''' No (but also read [[FAQ:What do I need to do when I use a CC-BY asset?]]) '''Do I have to pay anything to use the exported model in a commercial setting?''' No '''Do I need a separate commercial license in order to use exported models in a commercial setting?''' No 2f88a4181a01dcaf9e371243b59ca4a956f385f9 1416 1016 2017-08-20T07:52:15Z Joepal 14 wikitext text/x-wiki Yes. From the license section that applies to the exported models: You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission. With all normal usage of MakeHuman (i.e using the GUI in any way you can think of), the exported models end up being licensed [https://creativecommons.org/publicdomain/zero/1.0/ CC0 (Creative Commons Zero)]. This is basically the most liberal license in the world, and for all practical purposes it places no restrictions on the licensee. For a more thorough explanation of the license setup, please read http://www.makehuman.org/license_explanation.php (the full license text is available at http://www.makehuman.org/license.php) == Other formulations of the same question == As it has proven somewhat difficult for new users to understand that CC0 means you can do whatever you want with the export, here are some other formulations of the same question: '''Can I use exported models in a closed-source game?''' Yes '''Can I use exported models in video productions?''' Yes '''Can I modify exported models?''' Yes '''Can I re-use and/or sell parts of the export, such as textures?''' Yes '''Do I have to say where I got the exported model from?''' No (but also read [[FAQ:What do I need to do when I use a CC-BY asset?]]) '''Do I have to pay anything to use the exported model in a commercial setting?''' No '''Do I need a separate commercial license in order to use exported models in a commercial setting?''' No 641b8393e6d3bb14fdf8b8ce5e3f8c17fbbc2ce4 1016 1015 2016-06-28T06:36:22Z Joepal 14 wikitext text/x-wiki Yes. From the license section that applies to the exported models: You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission. With all normal usage of MakeHuman (i.e using the GUI in any way you can think of), the exported models end up being licensed [https://creativecommons.org/publicdomain/zero/1.0/ CC0 (Creative Commons Zero)]. This is basically the most liberal license in the world, and for all practical purposes it places no restrictions on the licensee. For a more thorough explanation of the license setup, please read http://www.makehuman.org/license_explanation.php (the full license text is available at http://www.makehuman.org/license.php) 2855ef5577a25f7c81cf39ac615dad7570398956 1015 98 2016-06-28T06:04:37Z Joepal 14 wikitext text/x-wiki Yes. From the license section that applies to the exported models: You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission. With all normal usage of MakeHuman (i.e basically using the GUI in any way you can think of), the exported models end up being licensed [https://creativecommons.org/publicdomain/zero/1.0/ CC0 (Creative Commons Zero)]. This is basically the most liberal license in the world, and for all practical purposes it places no restrictions on the licensee. For a more thorough explanation of the license setup, please read http://www.makehuman.org/license_explanation.php (the full license text is available at http://www.makehuman.org/license.php) 2216e8384ab218fcd2ff56d6ddf1640fae561501 98 2015-07-10T09:57:06Z Joepal 14 Created page with "Yes. By respecting a set of simple conditions you can export our models under CC0 (the most liberal license in the world). For a more thorough explanation, please read http:/..." wikitext text/x-wiki Yes. By respecting a set of simple conditions you can export our models under CC0 (the most liberal license in the world). For a more thorough explanation, please read http://www.makehuman.org/license_explanation.php (the full license text is available at http://www.makehuman.org/license.php) d83ed835ca140d6191b2cd0eb3588aec97c74527 FAQ:Can I use the stable version and the nightly build at the same time? 3002 531 1408 1407 2017-07-13T11:04:41Z Joepal 14 wikitext text/x-wiki Yes. Care has been taken to separate the home directories so that they do not interfere with each other. In practice, everything related to the nightly build will be placed in HOME/makehuman/v1py3 where as the stable release will place stuff under HOME/makehuman/v1. The downside is that assets downloaded for the stable version will not show up in the nightly and vice versa. If you copy stuff between the directories please take care to ''not copy the NPZ files''. These are generated the first time the asset is loaded, and are incompatible between the code versions. 355d08925c7504c6169942bf900edd987d58e859 1407 2017-07-13T11:03:42Z Joepal 14 Created page with "Yes. Care has been taken to separate the home directories so that they do not interfere with each other. In practice, everything related to the nightly build will be placed..." wikitext text/x-wiki Yes. Care has been taken to separate the home directories so that they do not interfere with each other. In practice, everything related to the nightly build will be placed in HOME/makehuman/v1py3 where as the stable release will place stuff under HOME/makehuman/v1. The downside is that assets downloaded for the stable version will not show up in the nightly and vice versa. If you copy stuff between the directories please take care to **not copy the NPZ files**. These are generated the first time the asset is loaded, and are incompatible between the code versions. 721c3771d702667011576563264115b9f6b2b51a FAQ:Do you have some quick tips on how to make a nice image with a makehuman toon? 3002 484 1181 2016-09-06T15:35:28Z Joepal 14 Created page with "Making a nice 3d image takes skill. There is no way around it: You'll need to know what to do, and be good at it. However, there are also some basic pointers which may be he..." wikitext text/x-wiki Making a nice 3d image takes skill. There is no way around it: You'll need to know what to do, and be good at it. However, there are also some basic pointers which may be helpful when starting out. * Consider using a specific proxy for male/female (it particularly helps with the clavicle in female) * Set the "default no toes" skeleton in MH before exporting * Export/import using MHX2 * When importing using MHX2, override presets and set rig to "exported MHX". This way you get good weight painting *and* IK. * Use the cycles rendering mode in blender * Enable at least two subdivisions on the body at render time * Use lots of light with at least one narrow direct light source to provide interesting shadows, and plenty of indirectly bounced light in order to make things not too sharp * Do not use light capping or filter glossy. Using these shortens render times significantly, but it also removes crispness from the final render. * Increase light bouncing to the preset "full global illumination" * Consider mixing in SSS in the skin texture. Follow a tutorial from youtube to get a decent node setup * Read https://support.solidangle.com/display/NodeRef/skin to understand what else can be done for skins * For materials on clothes and surroundings, consider using PBR rather than the normal diffuse-glossy-fresnel mix. See https://www.blenderguru.com/tutorials/pbr-shader-tutorial-pt1/ for an intro. There are plenty of plugins/materials to download, so you don't have to design them yourself. * If you got lots and lots of patience, consider using particle hair. See http://www.blendernation.com/2016/08/09/blender-cycles-hair-tutorial/ * Most of what is true for photo composition is also true for making a good 3d still image, see http://www.techradar.com/how-to/photography-video-capture/cameras/10-rules-of-photo-composition-and-why-they-work-1320770 907ef3d66344fd480c7327556ffa02653a0f2953 FAQ:Does "alpha" mean it is dangerous to use? 3002 575 1605 2019-09-21T08:59:25Z Joepal 14 Created page with "No. Not in the case of MakeHuman at least. "Alpha", "Beta" and "Release candidate" are just labels. In the case of MakeHuman: * Alpha: there are unfinished features that we..." wikitext text/x-wiki No. Not in the case of MakeHuman at least. "Alpha", "Beta" and "Release candidate" are just labels. In the case of MakeHuman: * Alpha: there are unfinished features that we know we want to put in, or something we know we want to fix * Beta: everything has been added to our knowledge, but we want to polish things a bit * Release candidate: to our knowledge, everything is finished, but we want to test more Traditionally, the alpha for the next upcoming makehuman release has been ''more stable'' than the last stable release. At the point of writing this, MakeHuman is in the alpha stage for 1.2.0. Minus two points, MakeHuman Community alpha 3 is in most ways a better user experience than MakeHuman 1.1.1. The two things that are missing are: * The FBX export has problem with rigs * On some graphics cards, MakeHuman refuses to start So, in summary: If MakeHuman 1.2.0 alpha 3 starts on your graphics card and you have no immediate need of FBX exports, then there's no reason to stick to 1.1.1 for fear of instabilities. 1.2.0 is fully backwards compatible with 1.1.1. 8512a406086c5ab7803d1f512975ac6c9be38dfa FAQ:Eyes are rendered completely white (or black) in blender 3002 207 1590 548 2019-04-14T08:21:56Z Polylearn 80 Add new links for cycles material converter plugins wikitext text/x-wiki == The problem == [[File:Alphachannel1.png|thumb|left]] If you have made an import via Collada, you will soon find that some textures are not working properly. Specifically, eyes will look odd. The problem is that Collada blender import isn't bright enough to recognize that textures can have transparency. This needs to be fixed up manually after import. This guide is only relevant for Collada. If you use [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange MHX2] for example, these things are handled automatically. The resolution is somewhat different depending on whether you use Blender Internal or Cycles. <br clear=all> == Blender internal == If you made the import while in Blender Internal mode, the materials are set up largely correct. All that needs to be done is to enable the transparency. Select the mesh (for example the eyes) which is misbehaving, and go to the materials tab. Here enable transparency and move the alpha slider to 0. [[File:Alphachannel2.png|thumb|left]] <br clear=all> In the texture tab mark that the texture should influence the transparency of the material [[File:Alphachannel3.png|thumb|left]] <br clear=all> == Cycles == In cycles, you probably have larger problems, since the Blender Collada importer seem to have no concept at all of nodes-based materials. So you will have to set up the materials manually. It is usually a better idea to import in blender internal mode and then switch to cycles, with or without using something like [http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/System/Convert_Materials_to_Cycles the Convert Materials to Cycles] plugin. This was superseded in 2016 by the [https://developer.blender.org/T48642 Material Utils Addon] but the last update of the original converter plugin can be found in [https://developer.blender.org/diffusion/BAC/browse/master/materials_cycles_converter.py;3f433bbe91fdbb65feebdccc5b868a8df5be50a5?view= this rBAC commit]. In any which way, a reasonable basic setup for the eye texture would look like this with nodes: [[File:Alphachannel5.png]] <br clear=all> You might want to add glossy shaders etc, but with this setup at least the texture will look ok. == Results == Having done the above, the eyebrows and eyes (which are the usual suspects) will start to behave in renders: [[File:Alphachannel6.png|thumb|left|400px]] 75db36ac869eef07451553ec32991fc662308e57 548 2015-11-01T12:15:44Z Joepal 14 Created page with "== The problem == [[File:Alphachannel1.png|thumb|left]] If you have made an import via Collada, you will soon find that some textures are not working properly. Specifically,..." wikitext text/x-wiki == The problem == [[File:Alphachannel1.png|thumb|left]] If you have made an import via Collada, you will soon find that some textures are not working properly. Specifically, eyes will look odd. The problem is that Collada blender import isn't bright enough to recognize that textures can have transparency. This needs to be fixed up manually after import. This guide is only relevant for Collada. If you use [https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange MHX2] for example, these things are handled automatically. The resolution is somewhat different depending on whether you use Blender Internal or Cycles. <br clear=all> == Blender internal == If you made the import while in Blender Internal mode, the materials are set up largely correct. All that needs to be done is to enable the transparency. Select the mesh (for example the eyes) which is misbehaving, and go to the materials tab. Here enable transparency and move the alpha slider to 0. [[File:Alphachannel2.png|thumb|left]] <br clear=all> In the texture tab mark that the texture should influence the transparency of the material [[File:Alphachannel3.png|thumb|left]] <br clear=all> == Cycles == In cycles, you probably have larger problems, since the Blender Collada importer seem to have no concept at all of nodes-based materials. So you will have to set up the materials manually. It is usually a better idea to import in blender internal mode and then switch to cycles, with or without using something like [http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/System/Convert_Materials_to_Cycles the Convert Materials to Cycles] plugin. In any which way, a reasonable basic setup for the eye texture would look like this with nodes: [[File:Alphachannel5.png]] <br clear=all> You might want to add glossy shaders etc, but with this setup at least the texture will look ok. == Results == Having done the above, the eyebrows and eyes (which are the usual suspects) will start to behave in renders: [[File:Alphachannel6.png|thumb|left|400px]] bde1efd22e08fa68880c1d8e190e686b0ea7f175 FAQ:How can I build MakeHuman from source? 3002 38 1603 1295 2019-09-15T15:56:25Z Joepal 14 wikitext text/x-wiki You don't. Makehuman is a pure python application and does not need to be built. However, if you want to run makehuman directly from a source download, you will need to install some dependencies. Please see [[FAQ: How can I run the same code as the nightly build from source?]] 574ea9285492f391cb874202639a2f291e5c44cc 1295 503 2017-02-01T08:05:49Z Aranuvir 17 wikitext text/x-wiki You don't. Makehuman is a pure python application and does not need to be built. However, if you want to run makehuman directly from a source download, you will need to install some dependencies. Please see [[Documentation:Running_MakeHuman_from_source|Running MakeHuman from Source]] 34552984a220cd70fda34796004c5452372f78a4 503 97 2015-08-30T08:29:22Z Joepal 14 wikitext text/x-wiki You don't. Makehuman is a pure python application and does not need to be built. However, if you want to run makehuman directly from a source download, you will need to install some dependencies. Please see [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] 16d4dc2bddb1bf17a9dd5e3ff3fdbfcc70f9b257 97 2015-07-10T09:53:14Z Joepal 14 Created page with "You don't. Makehuman is a pure python application and does not need to be built. However, if you want to run makehuman directly from a source download, you will need to insta..." wikitext text/x-wiki You don't. Makehuman is a pure python application and does not need to be built. However, if you want to run makehuman directly from a source download, you will need to install some dependencies. Please see the relevant documentation page at: BROKEN LINK AFTER MOVE TO WIKI, UPDATE WITH CORRECT DOC REFERENCE 4c4cf2e09fd8bb3c327adf84ddb809542bcac12c FAQ:How can I create a thumbnail file? 3002 515 1293 2017-01-25T14:33:39Z Aranuvir 17 Created page with "Thumbnail files for assets, are PNG-files that are renamed from ''filename.png'' to ''filename.thumb''. The default resolution is 128x128, though another resolution should wor..." wikitext text/x-wiki Thumbnail files for assets, are PNG-files that are renamed from ''filename.png'' to ''filename.thumb''. The default resolution is 128x128, though another resolution should work, too. Of course, the thumbnail file must be in the same folder as the asset and must be named equally to the asset (except the filename extension). The filenames are case sensitive ('''F'''ilename.thumb and '''f'''ilename.thumb will refer to different files and e.g. '''F'''ilename.thumb will not work with '''f'''ilename.mhclo). You can use the built-in renderer of MakeHuman to create a thumbnail of your asset, set the resolution to 128x128 and save the image as PNG. Than use your preferred file manager to rename and move your newly created thumbnail file. 20d866ce50cc846a4ee14e69d3a78ad084f1158e FAQ:How can I create clothes? 3002 65 1842 863 2020-07-26T11:04:48Z Punkduck 38 wikitext text/x-wiki To download the Tools, navigate to [http://www.makehumancommunity.org/content/plugins.html plugins page] Download MakeClothes 2 at least. With version MakeHuman Version 1.2.0, best is to also download MakeSkin and MakeHuman plugin for blender. (for MakeHuman plugin for blender, the MakeHuman plugins MHAPI and Socket are needed) The documentation of new MakeClothes is still under construction: [[Documentation:ClothesV2]]. There will be some additional information about techniques is near future. As long as these are not available, there are also some useful hints in the old documentation, that can be found from the [http://www.makehumancommunity.org/wiki/Documentation:Collection_of_old_documents documentation index]. Otherwise, following the video tutorials at [[Video:Blender_tools]] will probably be the best bet to get up to speed. d29146d33e68564fc637b8d3353e1d41e7207dbf 863 862 2016-05-26T13:16:33Z Joepal 14 wikitext text/x-wiki Clothes are created with the MakeClothes tool, which is a part of the BlenderTools, see [[ Documentation:Getting_and_installing_BlenderTools|getting and installing BlenderTools ]]. The documentation on MakeClothes is a bit outdated, but can be found at [[Documentation:clothes]]. There are also some useful tutorials that can be found from the [http://www.makehumancommunity.org/wiki/Documentation:Index#In-depth_tutorials:_MakeClothes documentation index]. Otherwise, following the video tutorials at [[Video:Blender_tools]] will probably be the best bet to get up to speed. 0397fe13b9b0c54caa71aeb7a0272b21087a122a 862 520 2016-05-26T13:15:53Z Joepal 14 wikitext text/x-wiki Clothes are created with the MakeClothes tool, which is a part of the BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]. The documentation on MakeClothes is a bit outdated, but can be found at [[Documentation:clothes]]. There are also some useful tutorials that can be found from the [http://www.makehumancommunity.org/wiki/Documentation:Index#In-depth_tutorials:_MakeClothes documentation index]. Otherwise, following the video tutorials at [[Video:Blender_tools]] will probably be the best bet to get up to speed. 98b00efc6c57d095a4cd0c40e6676979481ca8d9 520 323 2015-09-04T17:29:52Z Fairytail 16 wikitext text/x-wiki Clothes are created with the MakeClothes tool, which is a part of the BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]. The documentation on MakeClothes is a bit outdated, but can (when it's ported) be found at [[Documentation:MHBlenderTools:MakeClothes]]. For now, following the video tutorials at [[Video:Blender_tools]] will probably be the best bet to get up to speed. 22733f7dcf08447e2eca326795fe58b96c621c47 323 164 2015-07-30T10:26:43Z Joepal 14 wikitext text/x-wiki Clothes are created with the MakeClothes tool, which is a part of the BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]. The documentation on MakeClothes is a bit outdated, but can (when it's ported) be found at [[Documentation:MHBlenderTools:_MakeClothes]]. For now, following the video tutorials at [[Video:Blender_tools]] will probably be the best bet to get up to speed. 9b3d9110ace836771b4b648d3dcc8d819bad1993 164 2015-07-25T06:52:03Z Joepal 14 Created page with "Clothes are created with the MakeClothes too, which is a part of the BlenderTools, see Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and..." wikitext text/x-wiki Clothes are created with the MakeClothes too, which is a part of the BlenderTools, see [[ Documentation:MHBlenderTools: Download and installation|MHBlenderTools: Download and installation ]]. The documentation on MakeClothes is a bit outdated, but can (when it's ported) be found at [[Documentation:MHBlenderTools:_MakeClothes]]. For now, following the video tutorials at [[Video:Blender_tools]] will probably be the best bet to get up to speed. dc1d9551bf92e8d4765286125268fbc90a0be8c4 FAQ:How can I create extra bodyparts? 3002 393 1011 1010 2016-06-08T12:11:57Z Joepal 14 wikitext text/x-wiki If you wish to add extra body parts (wings, genitalia, horns...) you have three options: * Deform the base mesh. In practice, you are making a new target, see [[FAQ:How can I create targets?]]. For small modifications, this is the most portable options, but it becomes nonviable for large body parts. * Make a proxy which has the body part. See [[FAQ:How can I create proxies or alternative topologies?]]. For modifications that requires larger mesh densities in some areas, but which still follow the basic shape of the base mesh, this is the best option. This is the recommended approach for, for example, genitalia. The upside of this is that you don't get any seams between the body part and the main body. * Add the body part as if it was a piece of clothing, see [[FAQ:How can I create clothes?]]. Body parts that are essentially separate from the body (think angel wings) would probably benefit from being done this way. The downside is that you will most likely get visible seams/transitions between the extra body part and the main body. In the latter two cases, it might become interesting to work with rigid vertex groups. These are discussed in [[Documentation:Controlling_the_result_with_vertex_groups]] f2467555b767b03313f6297a88b658ea3a70ce0e 1010 1009 2016-06-08T10:06:42Z Joepal 14 wikitext text/x-wiki If you wish to add extra body parts (wings, genitalia, horns...) you have three options: * Deform the base mesh. In practice, you are making a new target, see [[FAQ:How can I create targets?]]. For small modifications, this is the most portable options, but it becomes nonviable for large body parts. * Make a proxy which has the body part. See [[FAQ:How can I create proxies or alternative topologies?]]. For modifications that requires larger mesh densities in some areas, but which still follow the basic shape of the base mesh, this is the best option. This is the recommended approach for, for example, genitalia. * Add the body part as if it was a piece of clothing, see [[FAQ:How can I create clothes?]]. Body parts that are essentially separate from the body (think angel wings) would probably benefit from being done this way. In the latter two cases, it might become interesting to work with rigid vertex groups. These are discussed in [[Documentation:Controlling_the_result_with_vertex_groups]] 1ad3623b28d2acdc8ab9e8d09522af0e4ffb2d07 1009 2016-06-08T08:30:08Z Joepal 14 Created page with "If you wish to add extra body parts (wings, genitalia, horns...) you have three options: * Deform the base mesh. In practice, you are making a new target, see FAQ:How can I..." wikitext text/x-wiki If you wish to add extra body parts (wings, genitalia, horns...) you have three options: * Deform the base mesh. In practice, you are making a new target, see [[FAQ:How can I create targets?]] * Make a proxy which has the body part. See [[FAQ:How can I create proxies or alternative topologies?]] * Add the body part as if it was a piece of clothing, see [[FAQ:How can I create clothes?]] In the latter two cases, it might become interesting to work with rigid vertex groups. These are discussed in [[Documentation:Controlling_the_result_with_vertex_groups]] 64ce0b67283de98e727727e0e7396b13158ad953 FAQ:How can I create hair? 3002 66 167 166 2015-07-25T06:53:33Z Joepal 14 wikitext text/x-wiki Technically, hair is a form of clothes. The only difference is you place it in the "hair" directory instead of the "clothes" directory. See [[FAQ:How can I create clothes?]] bac1010e963c9c52bc879349080b61721064cb37 166 2015-07-25T06:53:17Z Joepal 14 Created page with "Technically, hair is a form of clothes. The only difference is you place it in the "hair" directory instead of the "clothes" directory. See [[AQ:How can I create clothes?]]" wikitext text/x-wiki Technically, hair is a form of clothes. The only difference is you place it in the "hair" directory instead of the "clothes" directory. See [[AQ:How can I create clothes?]] f77b579df570517b9eec063baba6e063cbfb1c9d FAQ:How can I create poses? 3002 394 1012 2016-06-08T12:20:06Z Joepal 14 Created page with "A pose is a BVH file. This is a standard format which is supported by most 3d editors. In general the work flow is this: * Assign the "default" skeleton to a toon in MH * E..." wikitext text/x-wiki A pose is a BVH file. This is a standard format which is supported by most 3d editors. In general the work flow is this: * Assign the "default" skeleton to a toon in MH * Export it * Import in your favorite 3d editor * Move around some bones * Export the pose as a BVH file (be sure to only export one frame, in blender the default is to export the whole frame range) * Save the BVH file in v1/data/poses At the time of writing this, [http://bugtracker.makehumancommunity.org/issues/1032 there is a problem] with the collada export which makes it unsuitable for the above workflow. Blender users will want to export using MHX2 and import without any overrides. 195e77ca5634f7b1cbc7a66c118ca1fac9c8fb6b FAQ:How can I create proxies or alternative topologies? 3002 124 322 2015-07-30T10:26:16Z Joepal 14 Created page with "Technically, proxies are pretty much the same things as clothes: They share file format and production pipeline. To create a proxy, model it as full body clothing. See FAQ:..." wikitext text/x-wiki Technically, proxies are pretty much the same things as clothes: They share file format and production pipeline. To create a proxy, model it as full body clothing. See [[FAQ:How can I create clothes?]]. Once you have produced the "clothes" through MakeClothes, move the subdir that was created from "data/clothes/[my new item]" to "data/proxymeshes/[my new item]". Then rename the "[my new item].mhclo" file to "[my new item].proxy". As a special notice: If you want existing skin textures to work with your proxy, you need to UV unwrap so that it fits upon an existing skin texture image. f30d978fe85de1c6f7c9ef61a0c31fcaa7f61c4f FAQ:How can I create skin textures? 3002 146 1127 385 2016-07-14T21:56:13Z Joepal 14 wikitext text/x-wiki A skin texture is basically a normal image, usually a PNG file with large dimensions (in the span between 1024x1024 and 8192x8192), with a simple text file descriptor (see MHMAT section below). To demonstrate which regions end up where on the body, there is a special skin [http://www.makehumancommunity.org/skin/annotated_skin.html "Annotated Skin"] in the skin repository. The easiest way to start with a skin is probably to download this and paint on top of it. == Texture painting in blender == For a full tutorial on this see [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] If you want to paint directly on a body, you are probably best off doing this in blender. For various reasons, it's slightly easier/efficient to texture paint in "blender render" mode rather than in cycles mode. First, load a makehuman body. If you have MakeTarget and/or MakeClothes installed, just click the "load human" button. It's also perfectly viable to simply use a toon you exported from MakeHuman. Then create a material and assign a texture to it. In the default view you should now be able to switch to "texture paint" mode and draw on the body. == Making a MHMAT file for the skin == To use the skin in makehuman you will also need a "MHMAT" file. This is a simple text file: name my_cool_skin diffuseColor 0.5 0.5 0.5 tag somekeywordthatfitsyou diffuseTexture MyCoolSkin.png Set "name" to what you want to call it in the lists inside makehuman. "diffuseColor" you can just copy (it's the color for skins that don't have a diffuse texture). "tag" is a keyword used for filtering inside MakeHuman if there are many skins, use whatever keyword you want. "diffuseTexture" is the important part. This is the filename of the image file with the texture. The path is relative to the location of the MHMAT file, so to avoid path problems, just place them in the same directory. Save the mhmat file as whatever but with the ".mhmat" extension. If you skin texture is called "MyCoolSkin.png", it might make sense to save the MHMAT file as "MyCoolSkin.mhmat". Place the mhmat and the image texture in the "skins" directory under data (see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]). Next time you open MakeHuman you should now be able to choose the new skin on the skins tab. 9f71684cc7717328d49d9e1f8425f851a27c40f5 385 2015-08-14T14:50:55Z Joepal 14 Created page with "A skin texture is basically a normal image, usually a PNG file with large dimensions (in the span between 1024x1024 and 8192x8192), with a simple text file descriptor (see MHM..." wikitext text/x-wiki A skin texture is basically a normal image, usually a PNG file with large dimensions (in the span between 1024x1024 and 8192x8192), with a simple text file descriptor (see MHMAT section below). To demonstrate which regions end up where on the body, there is a special skin "Annotated Skin" in the skin repository. The easiest way to start with a skin is probably to download this and paint on top of it. == Texture painting in blender == For a full tutorial on this see [[Documentation:Texture painting a skin in blender|Tutorial: Texture painting a skin in blender]] If you want to paint directly on a body, you are probably best off doing this in blender. For various reasons, it's slightly easier/efficient to texture paint in "blender render" mode rather than in cycles mode. First, load a makehuman body. If you have MakeTarget and/or MakeClothes installed, just click the "load human" button. It's also perfectly viable to simply use a toon you exported from MakeHuman. Then create a material and assign a texture to it. In the default view you should now be able to switch to "texture paint" mode and draw on the body. == Making a MHMAT file for the skin == To use the skin in makehuman you will also need a "MHMAT" file. This is a simple text file: name my_cool_skin diffuseColor 0.5 0.5 0.5 tag somekeywordthatfitsyou diffuseTexture MyCoolSkin.png Set "name" to what you want to call it in the lists inside makehuman. "diffuseColor" you can just copy (it's the color for skins that don't have a diffuse texture). "tag" is a keyword used for filtering inside MakeHuman if there are many skins, use whatever keyword you want. "diffuseTexture" is the important part. This is the filename of the image file with the texture. The path is relative to the location of the MHMAT file, so to avoid path problems, just place them in the same directory. Save the mhmat file as whatever but with the ".mhmat" extension. If you skin texture is called "MyCoolSkin.png", it might make sense to save the MHMAT file as "MyCoolSkin.mhmat". Place the mhmat and the image texture in the "skins" directory under data (see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]). Next time you open MakeHuman you should now be able to choose the new skin on the skins tab. e00e7958ac68687c9f15c94e3afe10bd623da550 FAQ:How can I create targets? 3002 64 163 2015-07-25T06:48:51Z Joepal 14 Created page with "Targets are created with the MakeTarget tool, see main article at [[Documentation:MHBlenderTools:_MakeTarget]]. This is a youtube video which might be useful too: {{#ev:yout..." wikitext text/x-wiki Targets are created with the MakeTarget tool, see main article at [[Documentation:MHBlenderTools:_MakeTarget]]. This is a youtube video which might be useful too: {{#ev:youtube|X13k7H3dNHo}} 9e9119f7f74311b2824343ef01772f4f1f6be8b8 FAQ:How can I download assets for MakeHuman? 3002 718 2114 2021-05-19T05:36:33Z Joepal 14 Created page with "There are two main methods of downloading assets == Using the asset downloader == This is the recommended method. However, this method only works for 1.2.0 and later. It wil..." wikitext text/x-wiki There are two main methods of downloading assets == Using the asset downloader == This is the recommended method. However, this method only works for 1.2.0 and later. It will not work on 1.1.0. [[File:Asset_downloader.png]] In MakeHuman, go to the community -> download assets tab. The first time you open this tab you will be informed that you need to click the synchronize button to get information about which assets exist. Once having done so, you can search for assets, select them and download them with the download button. A downloaded asset will be immediately available once you switch to, for example, the clothes tab. == Downloading manually == Before using this method, see [[FAQ: I can't download from the user repos, all files are saved as HTML]] The basic procedure for how to download assets manually can be seen in [[FAQ: I downloaded third party clothes. How do I install them?]] 946c2466a01de2b7c2c2e172b50a94f3f0576e90 FAQ:How can I run MakeHuman from a BitBucket source clone? 3002 196 1596 1595 2019-05-10T10:40:44Z Wolgade 26 wikitext text/x-wiki == MH 1.1 (stable) == Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (i.e. you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest changes instead of having to download and unzip a big binary each time a change has been made. (This requires the usage of Mercurial) MakeHuman code is pure Python based. To run MakeHuman from source you need to install the following dependencies: Python 2.7, NumPy, PyOpenGl and PyQt for Qt4. The link to the source code is in the download section. You can either get the code as a zip-file or download it with the version control tool Mercurial. The full procedure with platform specific notes is documented in [[Documentation:Running_MakeHuman_from_source|Running MakeHuman from Source]]. == MH 1.2 (unstable) == If you're looking for the source code of the upcoming MakeHuman 1.2.0 go to [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to get started on this page. 0b00bd6ff72a2ccb55eb44bdeade5c190c2034df 1595 1321 2019-05-10T10:40:16Z Wolgade 26 Clarified versions wikitext text/x-wiki == MH 1.1 (stable) == Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (i.e. you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest changes instead of having to download and unzip a big binary each time a change has been made. (This requires the usage of Mercurial) MakeHuman code is pure Python based. To run MakeHuman from source you need to install the following dependencies: Python 2.7, NumPy, PyOpenGl and PyQt for Qt4. The link to the source code is in the download section. You can either get the code as a zip-file or download it with the version control tool Mercurial. The full procedure with platform specific notes is documented in [[Documentation:Running_MakeHuman_from_source|Running MakeHuman from Source]]. == MH 1.2 (unstable) == If you're looking for the source code of the upcoming MakeHuman 1.2.0 go to [https://github.com/makehumancommunity/makehuman https://github.com/makehumancommunity/makehuman]. You'll also find basic instructions on how to get started on this page. c339e60c3af6982b2d9f11d49716d05d877734bd 1321 994 2017-02-18T00:16:36Z Aranuvir 17 wikitext text/x-wiki Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (i.e. you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest changes instead of having to download and unzip a big binary each time a change has been made. (This requires the usage of Mercurial) MakeHuman code is pure Python based. To run MakeHuman from source you need to install the following dependencies: Python 2.7, NumPy, PyOpenGl and PyQt for Qt4. The link to the source code is in the download section. You can either get the code as a zip-file or download it with the version control tool Mercurial. The full procedure with platform specific notes is documented in [[Documentation:Running_MakeHuman_from_source|Running MakeHuman from Source]]. 4ea30ec83b4724e771c9739f673dccb0e54a398c 994 993 2016-05-31T08:41:02Z Joepal 14 wikitext text/x-wiki Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (i.e. you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest changes instead of having to download and unzip a big binary each time a change has been made. The full procedure with platform specific notes is documented in [[Documentation:Running_MakeHuman_from_source|Running MakeHuman from Source]]. a575cc783e67bcc6960ecaadd06b157084435597 993 631 2016-05-31T08:40:49Z Joepal 14 wikitext text/x-wiki Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (i.e. you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest changes instead of having to download and unzip a big binary each time a change has been made. The full procedure with platform specific notes is documented in [[Documentation:Running_MakeHuman_from_source|Running MakeHuman from Source]. 3c95cfd9342a4792a113ffbd3bb20943e468a093 631 536 2016-04-17T13:04:17Z Joepal 14 wikitext text/x-wiki Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (i.e. you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest changes instead of having to download and unzip a big binary each time a change has been made. The source code is hosted on BitBucket and as version control system Mercurial is used. (see https://mercurial.selenic.com/). Downloading from BitBucket will pull a '''nightly build''' ([[FAQ:What is a nightly build?]]). == General steps for installation == These are the steps which are needed in general * Install dependencies * Get a mercurial client (it's what's needed for downloading the source code). On Windows it's best to get TortoiseHg (see http://tortoisehg.bitbucket.org/download/index.html). On Linux you should find mercurial in your package manager. * Download the source code * Run the script for downloading assets == General steps for updating == Once the installation has been made, these are the steps which is needed to get up to date with the latest version * Run mercurial pull + mercurial update * Run the script for downloading assets * Find and remove old pyc-files == Linux == The easiest platform for doing all this is linux. This is what you do for installation: sudo apt-get install python2.7 python-numpy python-opengl python-qt4 python-qt4-gl mercurial hg clone <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> cd makehuman hg update -C stable # or "1.0.2" or "default" or whatever branch you want to run cd makehuman python download_assets.py To update: cd makehuman hg pull && hg update -C cd makehuman python download_assets.py ./cleanpyc.sh ./cleannpz.sh python compile_models.py python compile_proxies.py python compile_targets.py To start makehuman: cd makehuman/makehuman python makehuman.py == Windows == On windows you need to install the dependencies manually. However, in order to ease this process, there is a zip file with all that is needed, see http://files.jwp.se/makehuman.html . Another option is to install Python 2.7 from the WinPython project (see http://sourceforge.net/projects/winpython/files/WinPython_2.7/). It is recommended to use the 32bit version of WinPython. To install: * Install everything in the zip file above. There is a readme in the file with instructions. * Create a directory "makehuman" (or whatever you want to call it). * Right-click the directory and choose tortoisehg ... clone * Paste <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> in the text box for source * Open your directory and the "makehuman" subdir which is now inside it * Double-click "download_assets.py" To update: * Right-click the directory and choose tortoisehg ... update * Open your directory and the "makehuman" subdir which is inside it * Double-click "download_assets.py" To run: * Open your directory and the "makehuman" subdir which is inside it * Double-click "makehuman.py" == Mac == Unfortunately no-one of the devs run Mac. You will have to figure out the procedure on your own given the above. If you have managed to make an installation this way, pasting the procedure here would be a good deed. == Tutorial video == There is a tutorial video on how to make a "full" installation of MakeHuman and related tools on windows. This is up to date apart from the location of the zip file which is mentioned above. {{#ev:youtube|3CCHGX-6Mtk}} daade86374a1fac114392b42916688a58ddfcf67 536 535 2015-10-10T12:46:35Z Aranuvir 17 wikitext text/x-wiki Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (i.e. you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest changes instead of having to download and unzip a big binary each time a change has been made. The source code is hosted on BitBucket and as version control system Mercurial is used. (see https://mercurial.selenic.com/). Downloading from BitBucket will pull a '''nightly build''' ([[FAQ:What is a nightly build?]]). == General steps for installation == These are the steps which are needed in general * Install dependencies * Get a mercurial client (it's what's needed for downloading the source code). On Windows it's best to get TortoiseHg (see http://tortoisehg.bitbucket.org/download/index.html). On Linux you should find mercurial in your package manager. * Download the source code * Run the script for downloading assets == General steps for updating == Once the installation has been made, these are the steps which is needed to get up to date with the latest version * Run mercurial pull + mercurial update * Run the script for downloading assets * Find and remove old pyc-files == Linux == The easiest platform for doing all this is linux. This is what you do for installation: sudo apt-get install python2.7 python-numpy python-opengl python-qt4 python-qt4-gl mercurial hg clone <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> cd makehuman/makehuman python download_assets.py To update: cd makehuman hg pull && hg update -C cd makehuman python download_assets.py ./cleanpyc.sh ./cleannpz.sh python compile_models.py python compile_proxies.py python compile_targets.py To start makehuman: cd makehuman/makehuman python makehuman.py == Windows == On windows you need to install the dependencies manually. However, in order to ease this process, there is a zip file with all that is needed, see http://files.jwp.se/makehuman.html . Another option is to install Python 2.7 from the WinPython project (see http://sourceforge.net/projects/winpython/files/WinPython_2.7/). It is recommended to use the 32bit version of WinPython. To install: * Install everything in the zip file above. There is a readme in the file with instructions. * Create a directory "makehuman" (or whatever you want to call it). * Right-click the directory and choose tortoisehg ... clone * Paste <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> in the text box for source * Open your directory and the "makehuman" subdir which is now inside it * Double-click "download_assets.py" To update: * Right-click the directory and choose tortoisehg ... update * Open your directory and the "makehuman" subdir which is inside it * Double-click "download_assets.py" To run: * Open your directory and the "makehuman" subdir which is inside it * Double-click "makehuman.py" == Mac == Unfortunately no-one of the devs run Mac. You will have to figure out the procedure on your own given the above. If you have managed to make an installation this way, pasting the procedure here would be a good deed. == Tutorial video == There is a tutorial video on how to make a "full" installation of MakeHuman and related tools on windows. This is up to date apart from the location of the zip file which is mentioned above. {{#ev:youtube|3CCHGX-6Mtk}} c0ae259f5a6ca868fbeb0aaf60448a6be535dc91 535 525 2015-10-10T12:45:29Z Aranuvir 17 wikitext text/x-wiki Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (i.e. you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest changes instead of having to download and unzip a big binary each time a change has been made. The source code is hosted on BitBucket and as version control system Mercurial is used. (see https://mercurial.selenic.com/). Downloading from BitBucket will pull a '''nightly build''' ([[FAQ:What is a nightly build?]]). == General steps for installation == These are the steps which are needed in general * Install dependencies * Get a mercurial client (it's what's needed for downloading the source code). On Windows it's best to get TortoiseHg (see http://tortoisehg.bitbucket.org/download/index.html). On Linux you should find mercurial in your package manager. * Download the source code * Run the script for downloading assets == General steps for updating == Once the installation has been made, these are the steps which is needed to get up to date with the latest version * Run mercurial pull + mercurial update * Run the script for downloading assets * Find and remove old pyc-files == Linux == The easiest platform for doing all this is linux. This is what you do for installation: sudo apt-get install python2.7 python-numpy python-opengl python-qt4 python-qt4-gl mercurial hg clone <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> cd makehuman/makehuman python download_assets.py To update: cd makehuman hg pull && hg update -C cd makehuman python download_assets.py ./cleanpyc.sh ./cleannpz.sh python compile_models.py python compile_proxies.py python compile_targets.py To start makehuman: cd makehuman/makehuman python makehuman.py == Windows == On windows you need to install the dependencies manually. However, in order to ease this process, there is a zip file with all that is needed, see http://files.jwp.se/makehuman.html . Another option is to install Python 2.7 from the WinPython project (see http://sourceforge.net/projects/winpython/files/WinPython_2.7/). It is recommended to use the 32bit version of WinPython. To install: * Install everything in the zip file above. There is a readme in the file with instructions. * Create a directory "makehuman" (or whatever you want to call it). * Right-click the directory and choose tortoisehg ... clone * Paste <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> in the text box for source * Open your directory and the "makehuman" subdir which is now inside it * Double-click "download_assets.py" To update: * Right-click the directory and choose tortoisehg ... update * Open your directory and the "makehuman" subdir which is inside it * Double-click "download_assets.py" To run: * Open your directory and the "makehuman" subdir which is inside it * Double-click "makehuman.py" == Mac == Unfortunately no-one of the devs run Mac. You will have to figure out the procedure on your own given the above. If you have managed to make an installation this way, pasting the procedure here would be a good deed. == Tutorial video == There is a tutorial video on how to make a "full" installation of MakeHuman and related tools on windows. This is up to date apart from the location of the zip file which is mentioned above. {{#ev:youtube|3CCHGX-6Mtk}} 33ddaf4aeaed73848d9a04ab069763b57112f76d 525 524 2015-09-04T19:04:15Z Aranuvir 17 wikitext text/x-wiki Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (i.e. you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest changes instead of having to download and unzip a big binary each time a change has been made. The source code is hosted on BitBucket and as version control system Mercurial is used. (see https://mercurial.selenic.com/). Downloading from BitBucket will pull a '''nightly build''' ([[FAQ:What is a nightly build?]]). == General steps for installation == These are the steps which are needed in general * Install dependencies * Get a mercurial client (it's what's needed for downloading the source code). On Windows it's best to get TortoiseHg (see http://tortoisehg.bitbucket.org/download/index.html). On Linux you should find mercurial in your package manager. * Download the source code * Run the script for downloading assets == General steps for updating == Once the installation has been made, these are the steps which is needed to get up to date with the latest version * Run mercurial pull + mercurial update * Run the script for downloading assets * Find and remove old pyc-files == Linux == The easiest platform for doing all this is linux. This is what you do for installation: sudo apt-get install python2.7 python-numpy python-opengl python-qt4 python-qt4-gl mercurial hg clone <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> cd makehuman/makehuman python download_assets.py To update: cd makehuman hg pull && hg update -C cd makehuman python download_assets.py ./cleanpyc.sh ./cleannpz.sh python compile_models.py python compile_proxies.py python compile_targets.py To start makehuman: cd makehuman/makehuman python makehuman.py == Windows == On windows you need to install the dependencies manually. However, in order to ease this process, there is a zip file with all that is needed, see http://files.jwp.se/makehuman.html . Another option is to install Python 2.7 from the WinPython project (see http://sourceforge.net/projects/winpython/files/WinPython_2.7/). Depending on your system, you can either use the 32bit or 64bit version of WinPython. To install: * Install everything in the zip file above. There is a readme in the file with instructions. * Create a directory "makehuman" (or whatever you want to call it). * Right-click the directory and choose tortoisehg ... clone * Paste <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> in the text box for source * Open your directory and the "makehuman" subdir which is now inside it * Double-click "download_assets.py" To update: * Right-click the directory and choose tortoisehg ... update * Open your directory and the "makehuman" subdir which is inside it * Double-click "download_assets.py" To run: * Open your directory and the "makehuman" subdir which is inside it * Double-click "makehuman.py" == Mac == Unfortunately no-one of the devs run Mac. You will have to figure out the procedure on your own given the above. If you have managed to make an installation this way, pasting the procedure here would be a good deed. == Tutorial video == There is a tutorial video on how to make a "full" installation of MakeHuman and related tools on windows. This is up to date apart from the location of the zip file which is mentioned above. {{#ev:youtube|3CCHGX-6Mtk}} dc1cd6b929bbf5ad00549226025c579422313757 524 523 2015-09-04T18:47:19Z Aranuvir 17 /* General steps for installation */ wikitext text/x-wiki Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (ie you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest changes instead of having to download and unzip a big binary each time a change has been made. == General steps for installation == These are the steps which are needed in general * Install dependencies * Get a mercurial client (it's what's needed for downloading the source code). On Windows it's best to get TortoiseHg (see http://tortoisehg.bitbucket.org/download/index.html). On Linux you should find mercurial in your package manager. * Download the source code * Run the script for downloading assets == General steps for updating == Once the installation has been made, these are the steps which is needed to get up to date with the latest version * Run mercurial pull + mercurial update * Run the script for downloading assets == Linux == The easiest platform for doing all this is linux. This is what you do for installation: sudo apt-get install python2.7 python-numpy python-opengl python-qt4 python-qt4-gl mercurial hg clone <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> cd makehuman/makehuman python download_assets.py To update: cd makehuman hg pull && hg update -C cd makehuman python download_assets.py ./cleanpyc.sh ./cleannpz.sh python compile_models.py python compile_proxies.py python compile_targets.py To start makehuman: cd makehuman/makehuman python makehuman.py == Windows == On windows you need to install the dependencies manually. However, in order to ease this process, there is a zip file with all that is needed, see http://files.jwp.se/makehuman.html . Another option is to install Python 2.7 from the WinPython project (see http://sourceforge.net/projects/winpython/files/WinPython_2.7/). Depending on your system, you can either use the 32bit or 64bit version of WinPython. To install: * Install everything in the zip file above. There is a readme in the file with instructions. * Create a directory "makehuman" (or whatever you want to call it). * Right-click the directory and choose tortoisehg ... clone * Paste <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> in the text box for source * Open your directory and the "makehuman" subdir which is now inside it * Double-click "download_assets.py" To update: * Right-click the directory and choose tortoisehg ... update * Open your directory and the "makehuman" subdir which is inside it * Double-click "download_assets.py" To run: * Open your directory and the "makehuman" subdir which is inside it * Double-click "makehuman.py" == Mac == Unfortunately no-one of the devs run Mac. You will have to figure out the procedure on your own given the above. If you have managed to make an installation this way, pasting the procedure here would be a good deed. == Tutorial video == There is a tutorial video on how to make a "full" installation of MakeHuman and related tools on windows. This is up to date apart from the location of the zip file which is mentioned above. {{#ev:youtube|3CCHGX-6Mtk}} f7f72fc223fd08ed8448f6fd54a89b1da53f34c0 523 521 2015-09-04T18:28:06Z Aranuvir 17 /* Windows */ wikitext text/x-wiki Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (ie you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest changes instead of having to download and unzip a big binary each time a change has been made. == General steps for installation == These are the steps which are needed in general * Install dependencies * Get a mercurial client (it's what's needed for downloading the source code) * Download the source code * Run the script for downloading assets == General steps for updating == Once the installation has been made, these are the steps which is needed to get up to date with the latest version * Run mercurial pull + mercurial update * Run the script for downloading assets == Linux == The easiest platform for doing all this is linux. This is what you do for installation: sudo apt-get install python2.7 python-numpy python-opengl python-qt4 python-qt4-gl mercurial hg clone <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> cd makehuman/makehuman python download_assets.py To update: cd makehuman hg pull && hg update -C cd makehuman python download_assets.py ./cleanpyc.sh ./cleannpz.sh python compile_models.py python compile_proxies.py python compile_targets.py To start makehuman: cd makehuman/makehuman python makehuman.py == Windows == On windows you need to install the dependencies manually. However, in order to ease this process, there is a zip file with all that is needed, see http://files.jwp.se/makehuman.html . Another option is to install Python 2.7 from the WinPython project (see http://sourceforge.net/projects/winpython/files/WinPython_2.7/). Depending on your system, you can either use the 32bit or 64bit version of WinPython. To install: * Install everything in the zip file above. There is a readme in the file with instructions. * Create a directory "makehuman" (or whatever you want to call it). * Right-click the directory and choose tortoisehg ... clone * Paste <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> in the text box for source * Open your directory and the "makehuman" subdir which is now inside it * Double-click "download_assets.py" To update: * Right-click the directory and choose tortoisehg ... update * Open your directory and the "makehuman" subdir which is inside it * Double-click "download_assets.py" To run: * Open your directory and the "makehuman" subdir which is inside it * Double-click "makehuman.py" == Mac == Unfortunately no-one of the devs run Mac. You will have to figure out the procedure on your own given the above. If you have managed to make an installation this way, pasting the procedure here would be a good deed. == Tutorial video == There is a tutorial video on how to make a "full" installation of MakeHuman and related tools on windows. This is up to date apart from the location of the zip file which is mentioned above. {{#ev:youtube|3CCHGX-6Mtk}} 0dfb2feeaca5ada7b8a556cc12d23d37880596b0 521 509 2015-09-04T18:05:20Z Aranuvir 17 wikitext text/x-wiki Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (ie you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest changes instead of having to download and unzip a big binary each time a change has been made. == General steps for installation == These are the steps which are needed in general * Install dependencies * Get a mercurial client (it's what's needed for downloading the source code) * Download the source code * Run the script for downloading assets == General steps for updating == Once the installation has been made, these are the steps which is needed to get up to date with the latest version * Run mercurial pull + mercurial update * Run the script for downloading assets == Linux == The easiest platform for doing all this is linux. This is what you do for installation: sudo apt-get install python2.7 python-numpy python-opengl python-qt4 python-qt4-gl mercurial hg clone <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> cd makehuman/makehuman python download_assets.py To update: cd makehuman hg pull && hg update -C cd makehuman python download_assets.py ./cleanpyc.sh ./cleannpz.sh python compile_models.py python compile_proxies.py python compile_targets.py To start makehuman: cd makehuman/makehuman python makehuman.py == Windows == On windows you need to install the dependencies manually. However, in order to ease this process, there is a zip file with all that is needed, see http://files.jwp.se/makehuman.html To install: * Install everything in the zip file above. There is a readme in the file with instructions. * Create a directory "makehuman" (or whatever you want to call it). * Right-click the directory and choose tortoisehg ... clone * Paste <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> in the text box for source * Open your directory and the "makehuman" subdir which is now inside it * Double-click "download_assets.py" To update: * Right-click the directory and choose tortoisehg ... update * Open your directory and the "makehuman" subdir which is inside it * Double-click "download_assets.py" To run: * Open your directory and the "makehuman" subdir which is inside it * Double-click "makehuman.py" == Mac == Unfortunately no-one of the devs run Mac. You will have to figure out the procedure on your own given the above. If you have managed to make an installation this way, pasting the procedure here would be a good deed. == Tutorial video == There is a tutorial video on how to make a "full" installation of MakeHuman and related tools on windows. This is up to date apart from the location of the zip file which is mentioned above. {{#ev:youtube|3CCHGX-6Mtk}} b7efc42c148420654a0d1d5afdd5f6df8a14e0dc 509 508 2015-08-30T08:50:54Z Joepal 14 /* Linux */ wikitext text/x-wiki Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (ie you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest changes instead of having to download and unzip a big binary each time a change has been made. == General steps for installation == These are the steps which are needed in general * Install dependencies * Get a mercurial client (it's what's needed for downloading the source code) * Download the source code * Run the script for downloading assets == General steps for updating == Once the installation has been made, these are the steps which is needed to get up to date with the latest version * Run mercurial pull + mercurial update * Run the script for downloading assets == Linux == The easiest platform for doing all this is linux. This is what you do for installation: sudo apt-get install python2.7 python-numpy python-opengl python-qt4 python-qt4-gl mercurial hg clone <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> cd makehuman/makehuman python download_assets.py To update: cd makehuman hg pull && hg update -C cd makehuman python download_assets.py To start makehuman: cd makehuman/makehuman python makehuman.py == Windows == On windows you need to install the dependencies manually. However, in order to ease this process, there is a zip file with all that is needed, see http://files.jwp.se/makehuman.html To install: * Install everything in the zip file above. There is a readme in the file with instructions. * Create a directory "makehuman" (or whatever you want to call it). * Right-click the directory and choose tortoisehg ... clone * Paste <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> in the text box for source * Open your directory and the "makehuman" subdir which is now inside it * Double-click "download_assets.py" To update: * Right-click the directory and choose tortoisehg ... update * Open your directory and the "makehuman" subdir which is inside it * Double-click "download_assets.py" To run: * Open your directory and the "makehuman" subdir which is inside it * Double-click "makehuman.py" == Mac == Unfortunately no-one of the devs run Mac. You will have to figure out the procedure on your own given the above. If you have managed to make an installation this way, pasting the procedure here would be a good deed. == Tutorial video == There is a tutorial video on how to make a "full" installation of MakeHuman and related tools on windows. This is up to date apart from the location of the zip file which is mentioned above. {{#ev:youtube|3CCHGX-6Mtk}} c8a13e34919f976be7884cb16e63b9375e2bb37e 508 507 2015-08-30T08:50:11Z Joepal 14 /* Linux */ wikitext text/x-wiki Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (ie you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest changes instead of having to download and unzip a big binary each time a change has been made. == General steps for installation == These are the steps which are needed in general * Install dependencies * Get a mercurial client (it's what's needed for downloading the source code) * Download the source code * Run the script for downloading assets == General steps for updating == Once the installation has been made, these are the steps which is needed to get up to date with the latest version * Run mercurial pull + mercurial update * Run the script for downloading assets == Linux == The easiest platform for doing all this is linux. This is what you do for installation: sudo apt-get install python2.7 python-numpy python-opengl python-qt4 python-qt4-gl mercurial hg clone <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> cd makehuman/makehuman python download_assets.py To update: cd makehuman hg pull && hg update -C python download_assets.py To start makehuman: cd makehuman/makehuman python makehuman.py == Windows == On windows you need to install the dependencies manually. However, in order to ease this process, there is a zip file with all that is needed, see http://files.jwp.se/makehuman.html To install: * Install everything in the zip file above. There is a readme in the file with instructions. * Create a directory "makehuman" (or whatever you want to call it). * Right-click the directory and choose tortoisehg ... clone * Paste <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> in the text box for source * Open your directory and the "makehuman" subdir which is now inside it * Double-click "download_assets.py" To update: * Right-click the directory and choose tortoisehg ... update * Open your directory and the "makehuman" subdir which is inside it * Double-click "download_assets.py" To run: * Open your directory and the "makehuman" subdir which is inside it * Double-click "makehuman.py" == Mac == Unfortunately no-one of the devs run Mac. You will have to figure out the procedure on your own given the above. If you have managed to make an installation this way, pasting the procedure here would be a good deed. == Tutorial video == There is a tutorial video on how to make a "full" installation of MakeHuman and related tools on windows. This is up to date apart from the location of the zip file which is mentioned above. {{#ev:youtube|3CCHGX-6Mtk}} 69dabac0381461b127ccd47085ff55173b0086d8 507 506 2015-08-30T08:49:43Z Joepal 14 wikitext text/x-wiki Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (ie you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest changes instead of having to download and unzip a big binary each time a change has been made. == General steps for installation == These are the steps which are needed in general * Install dependencies * Get a mercurial client (it's what's needed for downloading the source code) * Download the source code * Run the script for downloading assets == General steps for updating == Once the installation has been made, these are the steps which is needed to get up to date with the latest version * Run mercurial pull + mercurial update * Run the script for downloading assets == Linux == The easiest platform for doing all this is linux. This is what you do for installation: sudo apt-get install python python-numpy python-opengl python-qt4 python-qt4-gl mercurial hg clone <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> cd makehuman/makehuman python download_assets.py To update: cd makehuman hg pull && hg update -C python download_assets.py To start makehuman: cd makehuman/makehuman python makehuman.py == Windows == On windows you need to install the dependencies manually. However, in order to ease this process, there is a zip file with all that is needed, see http://files.jwp.se/makehuman.html To install: * Install everything in the zip file above. There is a readme in the file with instructions. * Create a directory "makehuman" (or whatever you want to call it). * Right-click the directory and choose tortoisehg ... clone * Paste <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> in the text box for source * Open your directory and the "makehuman" subdir which is now inside it * Double-click "download_assets.py" To update: * Right-click the directory and choose tortoisehg ... update * Open your directory and the "makehuman" subdir which is inside it * Double-click "download_assets.py" To run: * Open your directory and the "makehuman" subdir which is inside it * Double-click "makehuman.py" == Mac == Unfortunately no-one of the devs run Mac. You will have to figure out the procedure on your own given the above. If you have managed to make an installation this way, pasting the procedure here would be a good deed. == Tutorial video == There is a tutorial video on how to make a "full" installation of MakeHuman and related tools on windows. This is up to date apart from the location of the zip file which is mentioned above. {{#ev:youtube|3CCHGX-6Mtk}} dbb7e7f03c7b74c817502a9acea9e30d2857051b 506 505 2015-08-30T08:48:41Z Joepal 14 /* Windows */ wikitext text/x-wiki Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (ie you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest instead of having to download and unzip a big binary each time a change has been made. == General steps for installation == These are the steps which are needed in general * Install dependencies * Get a mercurial client (it's what's needed for downloading the source code) * Download the source code * Run the script for downloading assets == General steps for updating == Once the installation has been made, these are the steps which is needed to get up to date with the latest version * Run mercurial pull + mercurial update * Run the script for downloading assets == Linux == The easiest platform for doing all this is linux. This is what you do for installation: sudo apt-get install python python-numpy python-opengl python-qt4 python-qt4-gl mercurial hg clone <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> cd makehuman/makehuman python download_assets.py To update: cd makehuman hg pull && hg update -C python download_assets.py To start makehuman: cd makehuman/makehuman python makehuman.py == Windows == On windows you need to install the dependencies manually. However, in order to ease this process, there is a zip file with all that is needed, see http://files.jwp.se/makehuman.html To install: * Install everything in the zip file above. There is a readme in the file with instructions. * Create a directory "makehuman" (or whatever you want to call it). * Right-click the directory and choose tortoisehg ... clone * Paste <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> in the text box for source * Open your directory and the "makehuman" subdir which is now inside it * Double-click "download_assets.py" To update: * Right-click the directory and choose tortoisehg ... update * Open your directory and the "makehuman" subdir which is inside it * Double-click "download_assets.py" To run: * Open your directory and the "makehuman" subdir which is inside it * Double-click "makehuman.py" == Mac == Unfortunately no-one of the devs run Mac. You will have to figure out the procedure on your own given the above. If you have managed to make an installation this way, pasting the procedure here would be a good deed. == Tutorial video == There is a tutorial video on how to make a "full" installation of MakeHuman and related tools on windows. This is up to date apart from the location of the zip file which is mentioned above. {{#ev:youtube|3CCHGX-6Mtk}} a79ff93d2fc110d357614c1a9314c3bebb28caa6 505 504 2015-08-30T08:47:29Z Joepal 14 wikitext text/x-wiki Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (ie you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest instead of having to download and unzip a big binary each time a change has been made. == General steps for installation == These are the steps which are needed in general * Install dependencies * Get a mercurial client (it's what's needed for downloading the source code) * Download the source code * Run the script for downloading assets == General steps for updating == Once the installation has been made, these are the steps which is needed to get up to date with the latest version * Run mercurial pull + mercurial update * Run the script for downloading assets == Linux == The easiest platform for doing all this is linux. This is what you do for installation: sudo apt-get install python python-numpy python-opengl python-qt4 python-qt4-gl mercurial hg clone <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> cd makehuman/makehuman python download_assets.py To update: cd makehuman hg pull && hg update -C python download_assets.py To start makehuman: cd makehuman/makehuman python makehuman.py == Windows == On windows you need to install the dependencies manually. However, in order to ease this process, there is a zip file with all that is needed, see http://files.jwp.se/makehuman.html To install: * Install everything in the zip file above. There is a readme in the file with instructions. * Create a directory "makehuman" (or whatever you want to call it). * Right-click the directory and choose tortoisehg ... clone * Paste <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> in the text box for source * Open your directory and the "makehuman" subdir which is now inside it * Double-click "download_assets.py" To update: * Right-click the directory and choose tortoisehg ... update * Open your directory and the "makehuman" subdir which is inside it * Double-click "download_assets.py" To run: * Open your directory and the "makehuman" subdir which is inside it * Double-click "makehuman.py" == Mac Unfortunately no-one of the devs run Mac. You will have to figure out the procedure on your own given the above. If you have managed to make an installation this way, pasting the procedure here would be a good deed. == Tutorial video == There is a tutorial video on how to make a "full" installation of MakeHuman and related tools on windows. This is up to date apart from the location of the zip file which is mentioned above. {{#ev:youtube|3CCHGX-6Mtk}} fddc9a555eb8396947a74b22c513a9d60154a75f 504 2015-08-30T08:43:27Z Joepal 14 Created page with "Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (ie y..." wikitext text/x-wiki Contrary to popular opinion it is not all that difficult to run MakeHuman directly from source. Doing so has the following benefits: * You get full access to all assets (ie you are not restricted to only compiled/processed/compressed versions) * You can "update" the MakeHuman directory and thereby download only the latest instead of having to download and unzip a big binary each time a change has been made. == General steps for installation == These are the steps which are needed in general * Install dependencies * Get a mercurial client (it's what's needed for downloading the source code) * Download the source code * Run the script for downloading assets == General steps for updating == Once the installation has been made, these are the steps which is needed to get up to date with the latest version * Run mercurial pull + mercurial update * Run the script for downloading assets == Linux == The easiest platform for doing all this is linux. This is what you do for installation: sudo apt-get install python python-numpy python-opengl python-qt4 python-qt4-gl mercurial hg clone <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> cd makehuman/makehuman python download_assets.py To update: cd makehuman hg pull && hg update -C python download_assets.py To start makehuman: cd makehuman/makehuman python makehuman.py == Windows == On windows you need to install the dependencies manually. However, in order to ease this process, there is a zip file with all that is needed, see http://files.jwp.se/makehuman.html To install: * Install everything in the zip file above. There is a readme in the file with instructions. * Create a directory "makehuman" (or whatever you want to call it). * Right-click the directory and choose tortoisehg ... clone * Paste <nowiki>https://bitbucket.org/MakeHuman/makehuman</nowiki> in the text box for source * Open your directory and the "makehuman" subdir which is now inside it * Double-click "download_assets.py" To update: * Right-click the directory and choose tortoisehg ... update * Open your directory and the "makehuman" subdir which is inside it * Double-click "download_assets.py" To run: * Open your directory and the "makehuman" subdir which is inside it * Double-click "makehuman.py" 554f564caa376fbafafea8c6aca2a457d952837d FAQ:How can I run the same code as the nightly build from source? 3002 533 2143 2119 2022-07-04T12:16:05Z Kshepherd 116 /* Installing dependencies */ wikitext text/x-wiki Note that these instructions are for running the development code which resides on github. They are specifically ''not'' for running the old python 2 based code from bitbucket. To run the code you will in summary need: * Python 3 (any python version, including Anaconda, from 3.5.0 and upwards) * PyQT5 * PyOpenGL * numpy == Running from source on Linux == These instructions are written for Ubuntu 20.04. Other systems might need a slightly adapted procedure. === Installing dependencies === All dependencies are available via apt: sudo apt-get install python3 python3-opengl python3-pyqt5 python3-pyqt5.qtopengl python3-pyqt5.qtsvg python3-numpy git git-lfs === Getting the source === As we fetch source code from several repos, let's make a subdir in our home to store everything: cd ~ mkdir makehuman-devel cd makehuman-devel Fetch all source directories. For now we'll use a fork of MHX2, but once we're sure our py3 port works we'll send a pull request back to Thomas: git clone https://github.com/makehumancommunity/makehuman.git git clone https://github.com/makehumancommunity/community-plugins-mhapi.git git clone https://github.com/makehumancommunity/community-plugins-assetdownload.git git clone https://github.com/makehumancommunity/mhx2-makehuman-exchange === Link plugins === We'll put symlinks in the plugin directory so that we can simply pull from the plugin repos and get the newest versions later on. cd makehuman/makehuman/plugins ln -s ../../../community-plugins-mhapi/1_mhapi ln -s ../../../community-plugins-assetdownload/8_asset_downloader ln -s ../../../mhx2-makehuman-exchange/9_export_mhx2 === Download core assets === Cd to the makehuman dir and run the download script cd .. python3 download_assets_git.py You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary === Start makehuman === To start MH be sure to use python3: python3 makehuman.py If you get a crash or no toon is visible in the window, try: python3 makehuman.py --noshaders == Running from source on windows == These instructions should work independently of windows version. === Installing dependencies === The only thing you need to download manually is Python. Any python from version 3.6.0 and upwards should work, including versions such as Anaconda. You can get an official python here: https://www.python.org/downloads/ It should not matter if you download 32 or 64 bit versions. When installing python, opt to add python to PATH. After having installed python, start a command prompt (left windows key + r, enter "cmd"), run the following commands to install the dependencies: pip install numpy pip install pyopengl pip install pyqt5 If it says it cannot find the command "pip", you will have to specify the full path to it. This should be in the "scripts" dir where you installed python. === Getting the source === Quickest and easiest is to download a zip file of the repository, although you will most likely want to use git. You can find the zip file here: https://github.com/makehumancommunity/makehuman/archive/master.zip If you use git, the address to clone is https://github.com/makehumancommunity/makehuman.git Unzip / clone the source at an appropriate location. === Download core assets === Again start a command prompt, "cd" to the "makehuman" subdir of where you put the source, and run the download script python download_assets_git.py It is normal that this script takes a (very) long time to finish, but all subsequent updates should be more or less immediate. The above command requires that git is installed with support for git LFS, see https://git-lfs.github.com/. It it's not possible to use git with lfs, you can instead run python download_assets.py But this is deprecated and will currently fetch outdated assets. You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary. === Start makehuman === To start MH: python makehuman.py If you get a crash or no toon is visible in the window, try: python makehuman.py --noshaders == Running from source on Mac == To be written dc92fc9ef7b1d6c1e8e0b7631444f5e3cdf81b24 2119 2118 2021-06-10T05:20:01Z Joepal 14 wikitext text/x-wiki Note that these instructions are for running the development code which resides on github. They are specifically ''not'' for running the old python 2 based code from bitbucket. To run the code you will in summary need: * Python 3 (any python version, including Anaconda, from 3.5.0 and upwards) * PyQT5 * PyOpenGL * numpy == Running from source on Linux == These instructions are written for Ubuntu 20.04. Other systems might need a slightly adapted procedure. === Installing dependencies === All dependencies are available via apt: sudo apt-get install python3 python3-opengl python3-pyqt5 python3-numpy git === Getting the source === As we fetch source code from several repos, let's make a subdir in our home to store everything: cd ~ mkdir makehuman-devel cd makehuman-devel Fetch all source directories. For now we'll use a fork of MHX2, but once we're sure our py3 port works we'll send a pull request back to Thomas: git clone https://github.com/makehumancommunity/makehuman.git git clone https://github.com/makehumancommunity/community-plugins-mhapi.git git clone https://github.com/makehumancommunity/community-plugins-assetdownload.git git clone https://github.com/makehumancommunity/mhx2-makehuman-exchange === Link plugins === We'll put symlinks in the plugin directory so that we can simply pull from the plugin repos and get the newest versions later on. cd makehuman/makehuman/plugins ln -s ../../../community-plugins-mhapi/1_mhapi ln -s ../../../community-plugins-assetdownload/8_asset_downloader ln -s ../../../mhx2-makehuman-exchange/9_export_mhx2 === Download core assets === Cd to the makehuman dir and run the download script cd .. python3 download_assets_git.py You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary === Start makehuman === To start MH be sure to use python3: python3 makehuman.py If you get a crash or no toon is visible in the window, try: python3 makehuman.py --noshaders == Running from source on windows == These instructions should work independently of windows version. === Installing dependencies === The only thing you need to download manually is Python. Any python from version 3.6.0 and upwards should work, including versions such as Anaconda. You can get an official python here: https://www.python.org/downloads/ It should not matter if you download 32 or 64 bit versions. When installing python, opt to add python to PATH. After having installed python, start a command prompt (left windows key + r, enter "cmd"), run the following commands to install the dependencies: pip install numpy pip install pyopengl pip install pyqt5 If it says it cannot find the command "pip", you will have to specify the full path to it. This should be in the "scripts" dir where you installed python. === Getting the source === Quickest and easiest is to download a zip file of the repository, although you will most likely want to use git. You can find the zip file here: https://github.com/makehumancommunity/makehuman/archive/master.zip If you use git, the address to clone is https://github.com/makehumancommunity/makehuman.git Unzip / clone the source at an appropriate location. === Download core assets === Again start a command prompt, "cd" to the "makehuman" subdir of where you put the source, and run the download script python download_assets_git.py It is normal that this script takes a (very) long time to finish, but all subsequent updates should be more or less immediate. The above command requires that git is installed with support for git LFS, see https://git-lfs.github.com/. It it's not possible to use git with lfs, you can instead run python download_assets.py But this is deprecated and will currently fetch outdated assets. You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary. === Start makehuman === To start MH: python makehuman.py If you get a crash or no toon is visible in the window, try: python makehuman.py --noshaders == Running from source on Mac == To be written ec2856d86c8db80bcd7ae9700caf990417bb76df 2118 1451 2021-06-10T05:19:14Z Joepal 14 wikitext text/x-wiki Note that these instructions are for running the development code which resides on github. They are specifically ''not'' for running the old python 2 based code from bitbucket. To run the code you will in summary need: * Python 3 (any python version, including Anaconda, from 3.5.0 and upwards) * PyQT5 * PyOpenGL * numpy == Running from source on Linux == These instructions are written for Ubuntu 16.04. Other systems might need a slightly adapted procedure. === Installing dependencies === All dependencies are available via apt: sudo apt-get install python3 python3-opengl python3-pyqt5 python3-numpy git === Getting the source === As we fetch source code from several repos, let's make a subdir in our home to store everything: cd ~ mkdir makehuman-devel cd makehuman-devel Fetch all source directories. For now we'll use a fork of MHX2, but once we're sure our py3 port works we'll send a pull request back to Thomas: git clone https://github.com/makehumancommunity/makehuman.git git clone https://github.com/makehumancommunity/community-plugins-mhapi.git git clone https://github.com/makehumancommunity/community-plugins-assetdownload.git git clone https://github.com/makehumancommunity/mhx2-makehuman-exchange === Link plugins === We'll put symlinks in the plugin directory so that we can simply pull from the plugin repos and get the newest versions later on. cd makehuman/makehuman/plugins ln -s ../../../community-plugins-mhapi/1_mhapi ln -s ../../../community-plugins-assetdownload/8_asset_downloader ln -s ../../../mhx2-makehuman-exchange/9_export_mhx2 === Download core assets === Cd to the makehuman dir and run the download script cd .. python3 download_assets_git.py You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary === Start makehuman === To start MH be sure to use python3: python3 makehuman.py If you get a crash or no toon is visible in the window, try: python3 makehuman.py --noshaders == Running from source on windows == These instructions should work independently of windows version. === Installing dependencies === The only thing you need to download manually is Python. Any python from version 3.6.0 and upwards should work, including versions such as Anaconda. You can get an official python here: https://www.python.org/downloads/ It should not matter if you download 32 or 64 bit versions. When installing python, opt to add python to PATH. After having installed python, start a command prompt (left windows key + r, enter "cmd"), run the following commands to install the dependencies: pip install numpy pip install pyopengl pip install pyqt5 If it says it cannot find the command "pip", you will have to specify the full path to it. This should be in the "scripts" dir where you installed python. === Getting the source === Quickest and easiest is to download a zip file of the repository, although you will most likely want to use git. You can find the zip file here: https://github.com/makehumancommunity/makehuman/archive/master.zip If you use git, the address to clone is https://github.com/makehumancommunity/makehuman.git Unzip / clone the source at an appropriate location. === Download core assets === Again start a command prompt, "cd" to the "makehuman" subdir of where you put the source, and run the download script python download_assets_git.py It is normal that this script takes a (very) long time to finish, but all subsequent updates should be more or less immediate. The above command requires that git is installed with support for git LFS, see https://git-lfs.github.com/. It it's not possible to use git with lfs, you can instead run python download_assets.py But this is deprecated and will currently fetch outdated assets. You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary. === Start makehuman === To start MH: python makehuman.py If you get a crash or no toon is visible in the window, try: python makehuman.py --noshaders == Running from source on Mac == To be written c9ede0a5bff7cf185851939199b5cfa326857d08 1451 1450 2018-04-24T21:42:21Z Joepal 14 /* Download core assets */ wikitext text/x-wiki Note that these instructions are for running the development code which resides on github. They are specifically ''not'' for running the old python 2 based code from bitbucket. To run the code you will in summary need: * Python 3 (any python version, including Anaconda, from 3.5.0 and upwards) * PyQT5 * PyOpenGL * numpy == Running from source on Linux == These instructions are written for Ubuntu 16.04. Other systems might need a slightly adapted procedure. === Installing dependencies === All dependencies are available via apt: sudo apt-get install python3 python3-opengl python3-pyqt5 python3-numpy git === Getting the source === As we fetch source code from several repos, let's make a subdir in our home to store everything: cd ~ mkdir makehuman-devel cd makehuman-devel Fetch all source directories. For now we'll use a fork of MHX2, but once we're sure our py3 port works we'll send a pull request back to Thomas: git clone https://github.com/makehumancommunity/makehuman.git git clone https://github.com/makehumancommunity/community-plugins-mhapi.git git clone https://github.com/makehumancommunity/community-plugins-assetdownload.git hg clone https://bitbucket.org/Aranuvir/mhx2_python3 === Link plugins === We'll put symlinks in the plugin directory so that we can simply pull from the plugin repos and get the newest versions later on. cd makehuman/makehuman/plugins ln -s ../../../community-plugins-mhapi/1_mhapi ln -s ../../../community-plugins-assetdownload/8_asset_downloader ln -s ../../../mhx2_python3/9_export_mhx2 === Download core assets === Cd to the makehuman dir and run the download script cd .. python3 download_assets.py You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary === Start makehuman === To start MH be sure to use python3: python3 makehuman.py If you get a crash or no toon is visible in the window, try: python3 makehuman.py --noshaders == Running from source on windows == These instructions should work independently of windows version. === Installing dependencies === The only thing you need to download manually is Python. Any python from version 3.5.0 and upwards should work, including versions such as Anaconda. You can get an official python here: https://www.python.org/downloads/ It should not matter if you download 32 or 64 bit versions. When installing python, opt to add python to PATH. After having installed python, start a command prompt (left windows key + r, enter "cmd"), run the following commands to install the dependencies: pip install numpy pip install pyopengl pip install pyqt5 If it says it cannot find the command "pip", you will have to specify the full path to it. This should be in the "scripts" dir where you installed python. === Getting the source === Quickest and easiest is to download a zip file of the repository, although you will most likely want to use git. You can find the zip file here: https://github.com/makehumancommunity/makehuman/archive/master.zip If you use git, the address to clone is https://github.com/makehumancommunity/makehuman.git Unzip / clone the source at an appropriate location. === Download core assets === Again start a command prompt, "cd" to the "makehuman" subdir of where you put the source, and run the download script python download_assets_git.py It is normal that this script takes a (very) long time to finish, but all subsequent updates should be more or less immediate. The above command requires that git is installed with support for git LFS, see https://git-lfs.github.com/. It it's not possible to use git with lfs, you can instead run python download_assets.py But this is deprecated and will currently fetch outdated assets. You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary. === Start makehuman === To start MH: python makehuman.py If you get a crash or no toon is visible in the window, try: python makehuman.py --noshaders == Running from source on Mac == To be written ed65c1f95ffd29db3f23f53500e553e5df3ed3d8 1450 1449 2018-04-24T21:41:46Z Joepal 14 /* Download core assets */ wikitext text/x-wiki Note that these instructions are for running the development code which resides on github. They are specifically ''not'' for running the old python 2 based code from bitbucket. To run the code you will in summary need: * Python 3 (any python version, including Anaconda, from 3.5.0 and upwards) * PyQT5 * PyOpenGL * numpy == Running from source on Linux == These instructions are written for Ubuntu 16.04. Other systems might need a slightly adapted procedure. === Installing dependencies === All dependencies are available via apt: sudo apt-get install python3 python3-opengl python3-pyqt5 python3-numpy git === Getting the source === As we fetch source code from several repos, let's make a subdir in our home to store everything: cd ~ mkdir makehuman-devel cd makehuman-devel Fetch all source directories. For now we'll use a fork of MHX2, but once we're sure our py3 port works we'll send a pull request back to Thomas: git clone https://github.com/makehumancommunity/makehuman.git git clone https://github.com/makehumancommunity/community-plugins-mhapi.git git clone https://github.com/makehumancommunity/community-plugins-assetdownload.git hg clone https://bitbucket.org/Aranuvir/mhx2_python3 === Link plugins === We'll put symlinks in the plugin directory so that we can simply pull from the plugin repos and get the newest versions later on. cd makehuman/makehuman/plugins ln -s ../../../community-plugins-mhapi/1_mhapi ln -s ../../../community-plugins-assetdownload/8_asset_downloader ln -s ../../../mhx2_python3/9_export_mhx2 === Download core assets === Cd to the makehuman dir and run the download script cd .. python3 download_assets.py You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary === Start makehuman === To start MH be sure to use python3: python3 makehuman.py If you get a crash or no toon is visible in the window, try: python3 makehuman.py --noshaders == Running from source on windows == These instructions should work independently of windows version. === Installing dependencies === The only thing you need to download manually is Python. Any python from version 3.5.0 and upwards should work, including versions such as Anaconda. You can get an official python here: https://www.python.org/downloads/ It should not matter if you download 32 or 64 bit versions. When installing python, opt to add python to PATH. After having installed python, start a command prompt (left windows key + r, enter "cmd"), run the following commands to install the dependencies: pip install numpy pip install pyopengl pip install pyqt5 If it says it cannot find the command "pip", you will have to specify the full path to it. This should be in the "scripts" dir where you installed python. === Getting the source === Quickest and easiest is to download a zip file of the repository, although you will most likely want to use git. You can find the zip file here: https://github.com/makehumancommunity/makehuman/archive/master.zip If you use git, the address to clone is https://github.com/makehumancommunity/makehuman.git Unzip / clone the source at an appropriate location. === Download core assets === Again start a command prompt, "cd" to the "makehuman" subdir of where you put the source, and run the download script python download_assets_git.py It is normal that this script takes a (very) long time to finish, but all subsequent updates should be more or less immediate. The above command requires that git is installed with support for git LFS, see https://git-lfs.github.com/. It it's not possible to use git with lfs, you can instead run python download_assets_git.py But this is deprecated and will currently fetch outdated assets. You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary. === Start makehuman === To start MH: python makehuman.py If you get a crash or no toon is visible in the window, try: python makehuman.py --noshaders == Running from source on Mac == To be written dbf25d47ecab73c516069079a0e7bedab81c1ca1 1449 1448 2018-04-24T21:37:25Z Joepal 14 wikitext text/x-wiki Note that these instructions are for running the development code which resides on github. They are specifically ''not'' for running the old python 2 based code from bitbucket. To run the code you will in summary need: * Python 3 (any python version, including Anaconda, from 3.5.0 and upwards) * PyQT5 * PyOpenGL * numpy == Running from source on Linux == These instructions are written for Ubuntu 16.04. Other systems might need a slightly adapted procedure. === Installing dependencies === All dependencies are available via apt: sudo apt-get install python3 python3-opengl python3-pyqt5 python3-numpy git === Getting the source === As we fetch source code from several repos, let's make a subdir in our home to store everything: cd ~ mkdir makehuman-devel cd makehuman-devel Fetch all source directories. For now we'll use a fork of MHX2, but once we're sure our py3 port works we'll send a pull request back to Thomas: git clone https://github.com/makehumancommunity/makehuman.git git clone https://github.com/makehumancommunity/community-plugins-mhapi.git git clone https://github.com/makehumancommunity/community-plugins-assetdownload.git hg clone https://bitbucket.org/Aranuvir/mhx2_python3 === Link plugins === We'll put symlinks in the plugin directory so that we can simply pull from the plugin repos and get the newest versions later on. cd makehuman/makehuman/plugins ln -s ../../../community-plugins-mhapi/1_mhapi ln -s ../../../community-plugins-assetdownload/8_asset_downloader ln -s ../../../mhx2_python3/9_export_mhx2 === Download core assets === Cd to the makehuman dir and run the download script cd .. python3 download_assets.py You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary === Start makehuman === To start MH be sure to use python3: python3 makehuman.py If you get a crash or no toon is visible in the window, try: python3 makehuman.py --noshaders == Running from source on windows == These instructions should work independently of windows version. === Installing dependencies === The only thing you need to download manually is Python. Any python from version 3.5.0 and upwards should work, including versions such as Anaconda. You can get an official python here: https://www.python.org/downloads/ It should not matter if you download 32 or 64 bit versions. When installing python, opt to add python to PATH. After having installed python, start a command prompt (left windows key + r, enter "cmd"), run the following commands to install the dependencies: pip install numpy pip install pyopengl pip install pyqt5 If it says it cannot find the command "pip", you will have to specify the full path to it. This should be in the "scripts" dir where you installed python. === Getting the source === Quickest and easiest is to download a zip file of the repository, although you will most likely want to use git. You can find the zip file here: https://github.com/makehumancommunity/makehuman/archive/master.zip If you use git, the address to clone is https://github.com/makehumancommunity/makehuman.git Unzip / clone the source at an appropriate location. === Download core assets === Again start a command prompt and "cd" to the makehuman dir and run the download script python download_assets_git.py You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary. The above command requires that git installed with support for git LFS, see https://git-lfs.github.com/. It it's not possible to use git with lfs, you can instead run python download_assets_git.py But this is deprecated and will currently fetch outdated assets. === Start makehuman === To start MH: python makehuman.py If you get a crash or no toon is visible in the window, try: python makehuman.py --noshaders == Running from source on Mac == To be written d133851a4baa6cc8fe2428564c210f87493034ec 1448 1447 2018-04-24T21:32:17Z Joepal 14 /* Download core assets */ wikitext text/x-wiki The main difference between the stable code at bitbucket and the new code at github, is that the new code is a port to python3. Further: as pyqt4 has been deprecated and is no longer available for download for windows, the code now also has a fallback on pyside. So to run the code you will in summary need: * Python 3 (on windows exactly python 3.4, on other platforms at least python 3.4) * PyQT4 or PySide (on windows only PySide is available) * PyOpenGL * numpy == Running from source on Linux == These instructions are written for Ubuntu 16.04. Other systems might need a slightly adapted procedure. === Installing dependencies === All dependencies are available via apt: sudo apt-get install python3 python3-opengl python3-pyside python3-numpy git === Getting the source === As we fetch source code from several repos, let's make a subdir in our home to store everything: cd ~ mkdir makehuman-devel cd makehuman-devel Fetch all source directories. For now we'll use a fork of MHX2, but once we're sure our py3 port works we'll send a pull request back to Thomas: git clone https://github.com/makehumancommunity/makehuman.git git clone https://github.com/makehumancommunity/community-plugins-mhapi.git git clone https://github.com/makehumancommunity/community-plugins-assetdownload.git hg clone https://bitbucket.org/Aranuvir/mhx2_python3 === Link plugins === We'll put symlinks in the plugin directory so that we can simply pull from the plugin repos and get the newest versions later on. cd makehuman/makehuman/plugins ln -s ../../../community-plugins-mhapi/1_mhapi ln -s ../../../community-plugins-assetdownload/8_asset_downloader ln -s ../../../mhx2_python3/9_export_mhx2 === Download core assets === Cd to the makehuman dir and run the download script cd .. python3 download_assets.py You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary === Start makehuman === To start MH be sure to use python3: python3 makehuman.py If you get a crash or no toon is visible in the window, try: python3 makehuman.py --noshaders == Running from source on windows == These instructions should work independently of windows version. === Installing dependencies === The only thing you need to download manually is Python. Any python from version 3.5.0 and upwards should work, including versions such as Anaconda. You can get an official python here: https://www.python.org/downloads/ It should not matter if you download 32 or 64 bit versions. When installing python, opt to add python to PATH. After having installed python, start a command prompt (left windows key + r, enter "cmd"), run the following commands to install the dependencies: pip install numpy pip install pyopengl pip install pyqt5 If it says it cannot find the command "pip", you will have to specify the full path to it. This should be in the "scripts" dir where you installed python. === Getting the source === Quickest and easiest is to download a zip file of the repository, although you will most likely want to use git. You can find the zip file here: https://github.com/makehumancommunity/makehuman/archive/master.zip If you use git, the address to clone is https://github.com/makehumancommunity/makehuman.git Unzip / clone the source at an appropriate location. === Download core assets === Again start a command prompt and "cd" to the makehuman dir and run the download script python download_assets_git.py You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary. The above command requires that git installed with support for git LFS, see https://git-lfs.github.com/. It it's not possible to use git with lfs, you can instead run python download_assets_git.py But this is deprecated and will currently fetch outdated assets. === Start makehuman === To start MH: python makehuman.py If you get a crash or no toon is visible in the window, try: python makehuman.py --noshaders == Running from source on Mac == To be written 2e50306eb6b146d971e34e7de0b36e5e39872806 1447 1411 2018-04-24T21:29:29Z Joepal 14 /* Running from source on windows */ wikitext text/x-wiki The main difference between the stable code at bitbucket and the new code at github, is that the new code is a port to python3. Further: as pyqt4 has been deprecated and is no longer available for download for windows, the code now also has a fallback on pyside. So to run the code you will in summary need: * Python 3 (on windows exactly python 3.4, on other platforms at least python 3.4) * PyQT4 or PySide (on windows only PySide is available) * PyOpenGL * numpy == Running from source on Linux == These instructions are written for Ubuntu 16.04. Other systems might need a slightly adapted procedure. === Installing dependencies === All dependencies are available via apt: sudo apt-get install python3 python3-opengl python3-pyside python3-numpy git === Getting the source === As we fetch source code from several repos, let's make a subdir in our home to store everything: cd ~ mkdir makehuman-devel cd makehuman-devel Fetch all source directories. For now we'll use a fork of MHX2, but once we're sure our py3 port works we'll send a pull request back to Thomas: git clone https://github.com/makehumancommunity/makehuman.git git clone https://github.com/makehumancommunity/community-plugins-mhapi.git git clone https://github.com/makehumancommunity/community-plugins-assetdownload.git hg clone https://bitbucket.org/Aranuvir/mhx2_python3 === Link plugins === We'll put symlinks in the plugin directory so that we can simply pull from the plugin repos and get the newest versions later on. cd makehuman/makehuman/plugins ln -s ../../../community-plugins-mhapi/1_mhapi ln -s ../../../community-plugins-assetdownload/8_asset_downloader ln -s ../../../mhx2_python3/9_export_mhx2 === Download core assets === Cd to the makehuman dir and run the download script cd .. python3 download_assets.py You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary === Start makehuman === To start MH be sure to use python3: python3 makehuman.py If you get a crash or no toon is visible in the window, try: python3 makehuman.py --noshaders == Running from source on windows == These instructions should work independently of windows version. === Installing dependencies === The only thing you need to download manually is Python. Any python from version 3.5.0 and upwards should work, including versions such as Anaconda. You can get an official python here: https://www.python.org/downloads/ It should not matter if you download 32 or 64 bit versions. When installing python, opt to add python to PATH. After having installed python, start a command prompt (left windows key + r, enter "cmd"), run the following commands to install the dependencies: pip install numpy pip install pyopengl pip install pyqt5 If it says it cannot find the command "pip", you will have to specify the full path to it. This should be in the "scripts" dir where you installed python. === Getting the source === Quickest and easiest is to download a zip file of the repository, although you will most likely want to use git. You can find the zip file here: https://github.com/makehumancommunity/makehuman/archive/master.zip If you use git, the address to clone is https://github.com/makehumancommunity/makehuman.git Unzip / clone the source at an appropriate location. === Download core assets === Cd to the makehuman dir and run the download script python download_assets_git.py You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary. The above command requires that git installed with support for git LFS, see https://git-lfs.github.com/. It it's not possible to use git with lfs, you can instead run python download_assets_git.py But this is deprecated and will currently fetch outdated assets. === Start makehuman === To start MH: python makehuman.py If you get a crash or no toon is visible in the window, try: python makehuman.py --noshaders == Running from source on Mac == To be written d2d7e03bdbc217f9b2755c768e835345d6c61461 1411 1410 2017-07-13T11:28:15Z Joepal 14 wikitext text/x-wiki The main difference between the stable code at bitbucket and the new code at github, is that the new code is a port to python3. Further: as pyqt4 has been deprecated and is no longer available for download for windows, the code now also has a fallback on pyside. So to run the code you will in summary need: * Python 3 (on windows exactly python 3.4, on other platforms at least python 3.4) * PyQT4 or PySide (on windows only PySide is available) * PyOpenGL * numpy == Running from source on Linux == These instructions are written for Ubuntu 16.04. Other systems might need a slightly adapted procedure. === Installing dependencies === All dependencies are available via apt: sudo apt-get install python3 python3-opengl python3-pyside python3-numpy git === Getting the source === As we fetch source code from several repos, let's make a subdir in our home to store everything: cd ~ mkdir makehuman-devel cd makehuman-devel Fetch all source directories. For now we'll use a fork of MHX2, but once we're sure our py3 port works we'll send a pull request back to Thomas: git clone https://github.com/makehumancommunity/makehuman.git git clone https://github.com/makehumancommunity/community-plugins-mhapi.git git clone https://github.com/makehumancommunity/community-plugins-assetdownload.git hg clone https://bitbucket.org/Aranuvir/mhx2_python3 === Link plugins === We'll put symlinks in the plugin directory so that we can simply pull from the plugin repos and get the newest versions later on. cd makehuman/makehuman/plugins ln -s ../../../community-plugins-mhapi/1_mhapi ln -s ../../../community-plugins-assetdownload/8_asset_downloader ln -s ../../../mhx2_python3/9_export_mhx2 === Download core assets === Cd to the makehuman dir and run the download script cd .. python3 download_assets.py You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary === Start makehuman === To start MH be sure to use python3: python3 makehuman.py If you get a crash or no toon is visible in the window, try: python3 makehuman.py --noshaders == Running from source on windows == To be written == Running from source on Mac == To be written 1999e94dc1cc694eb08afe57666174710d102168 1410 2017-07-13T11:27:31Z Joepal 14 Created page with "The main difference between the stable code at bitbucket and the new code at github, is that the new code is a port to python3. Further: as pyqt4 has been deprecated and is no..." wikitext text/x-wiki The main difference between the stable code at bitbucket and the new code at github, is that the new code is a port to python3. Further: as pyqt4 has been deprecated and is no longer available for download for windows, the code now also has a fallback on pyside. So to run the code you will in summary need: * Python 3 (on windows exactly python 3.4, on other platforms at least python 3.4) * PyQT4 or PySide (on windows only PySide is available) * PyOpenGL * numpy == Running from source on Linux == These instructions are written for Ubuntu 16.04. Other systems might need a slightly adapted procedure. === Installing dependencies === All dependencies are available via apt: sudo apt-get install python3 python3-opengl python3-pyside python3-numpy git === Getting the source === As we fetch source code from several repos, let's make a subdir in our home to store everything: cd ~ mkdir makehuman-devel cd makehuman-devel Fetch all source directories. For now we'll use a fork of MHX2, but once we're sure our py3 port works we'll send a pull request back to Thomas: git clone https://github.com/makehumancommunity/makehuman.git git clone https://github.com/makehumancommunity/community-plugins-mhapi.git git clone https://github.com/makehumancommunity/community-plugins-assetdownload.git hg clone https://bitbucket.org/Aranuvir/mhx2_python3 === Link plugins === We'll put symlinks in the plugin directory so that we can simply pull from the plugin repos and get the newest versions later on. cd makehuman/makehuman/plugins ln -s ../../../community-plugins-mhapi/1_mhapi ln -s ../../../community-plugins-assetdownload/8_asset_downloader ln -s ../../../mhx2_python3/9_export_mhx2 === Download core assets === Cd to the makehuman dir and run the download script cd .. python3 download_assets.py You can also optionally run the compile*.py scripts to generate NPZ files, but this is strictly speaking not necessary === Start makehuman === To start MH be sure to use python3: python3 makehuman.py If you get a crash or no toon is visible in the window, try: python3 makehuman.py --noshaders 3f93fc0c6d0c2394eafe42f4baa1f990c8b195f6 FAQ:How can I use the asset downloader to download everything by everyone? 3002 572 1996 1585 2021-01-25T23:46:22Z Hfugfn65438 108 related discussion on the forums wikitext text/x-wiki In the asset downloader you can download one item at a time. That you cannot do batch or mass downloading is by design, and a way to protect the limited capacity hosting we're able to pay for. The MakeHuman project has a very, very limited budget (you can see exactly how much by going to the [https://www.patreon.com/makehuman patreon page]). This is enough to pay for the already pretty heavy load caused by the asset downloader. It is definitely not enough to pay for the kind of hosting that would be needed if thousands of users started to mass download everything in the now pretty large asset repository. So for the foreseeable future we will not be adding features such as selecting multiple assets to batch download or a download everything functionality. Here's a related discussion on the forums. http://www.makehumancommunity.org/forum/viewtopic.php?f=3&t=19231 ef92920d577ab75de95b13fc40a726f55e064f56 1585 2019-03-24T15:33:40Z Joepal 14 Created page with "In the asset downloader you can download one item at a time. That you cannot do batch or mass downloading is by design, and a way to protect the limited capacity hosting we're..." wikitext text/x-wiki In the asset downloader you can download one item at a time. That you cannot do batch or mass downloading is by design, and a way to protect the limited capacity hosting we're able to pay for. The MakeHuman project has a very, very limited budget (you can see exactly how much by going to the [https://www.patreon.com/makehuman patreon page]). This is enough to pay for the already pretty heavy load caused by the asset downloader. It is definitely not enough to pay for the kind of hosting that would be needed if thousands of users started to mass download everything in the now pretty large asset repository. So for the foreseeable future we will not be adding features such as selecting multiple assets to batch download or a download everything functionality. e3cc9510b26cdab6628070095070be69897e479a FAQ:How do I export assets from MakeHuman to Blender? 3002 576 1607 2019-09-27T08:04:01Z Joepal 14 Created page with "There are two main pipelines for exporting stuff from MakeHuman to Blender: * MPFB (see also [[FAQ: What is MPFB (MakeHuman Plugin For Blender)?]]). This is the new pipeline,..." wikitext text/x-wiki There are two main pipelines for exporting stuff from MakeHuman to Blender: * MPFB (see also [[FAQ: What is MPFB (MakeHuman Plugin For Blender)?]]). This is the new pipeline, which is suitable for MakeHuman 1.2.0 and Blender 2.80. This is generally recommended unless you really need a specific feature of MHX. MPFB will make blender able to communicate directly with MakeHuman rather than relying on file exports. * MHX (MakeHuman eXchange). This is the traditional pipeline consisting of a file exporter for makehuman and a file importer for blender. This is recommended if you for some reason is stuck with MakeHuman 1.1.x and Blender 2.79 or older. MHX has several issues with Blender 2.80, and is generally considered superseded by MPFB in MakeHuman 1.2.x. 114a6717346ad9d7f771eca885820f9d26ec5a63 FAQ:How do I install a plugin in Blender 2.80? 3002 578 1609 2019-09-27T08:14:31Z Joepal 14 Created page with "MakeHuman-related plugins for blender usually come as zip files. These can be imported into blender directly without the need to first unzip them. * In blender, go to the me..." wikitext text/x-wiki MakeHuman-related plugins for blender usually come as zip files. These can be imported into blender directly without the need to first unzip them. * In blender, go to the menu edit -> preferences * Go to the "Add-ons" tab * Click the "Install..." button * Browse to the zip file containing the addon and select it * Click "Install addon from file" * (the addon should appear in the main window) * Make sure you enable the addon by checking its checkbox. It will be disabled per default. * In the bottom left of the window, click the menu icon (three horizontal bars) * Click "save preferences" 170fd930273fc8e3aed0e62fbec00883c8bcf6bd FAQ:How do I make and upload a fashion render? 3002 508 1273 1272 2016-12-22T10:18:53Z Joepal 14 /* The long version */ wikitext text/x-wiki == The short version == Download the [http://www.jwp.se/files/LightRoom2.blend LightRoom2.blend] file. Import a toon with the assets you want to demo. Hit the render button. Go to [http://www.makehumancommunity.org/fashion.html the fashion render list] and click "add". Then follow the instructions. == The long version == The intention with the fashion render is to give the user a completely honest idea about an asset, and to enable comparison of assets. Thus, you are very limited in what you are allowed to change in the scene. === Rules === What you ''cannot'' do for the front/side/back renders: * You can't move light sources or change their intensity * You can't move the camera or change it angle * You can't edit the backdrop mesh * You can't change the settings for sky backdrop or ambient occlusion * You can't change the materials from how MHX2 made them look upon import (with the exception that you are allowed to manually add bump maps / normal maps if MHX2 failed to set them up correctly) * You can't edit the meshes of the assets (with the exception that if two clothes pieces from different authors intersect each other, you are allowed to delete a few of the offending vertices) What you ''can'' do for the front/side/back renders: * In the rare circumstance an asset is built for flat shading rather than smooth, you are allowed to set the shading to flat (this is not possible to handle via materials atm) * You are allowed to use whatever toon shape you want * You are allowed to use whatever pose you want (although for practical reasons, poses where the toon is lying down should probably be avoided) * If you so desire, you can add a subdivision modifier both on the toon and on the assets * Change the color of the backdrop (might be necessary if there is too little contrast between the clothes and the backgrount) When you upload your renders, there is a file slot called "touched-up render". This follows the same rules for scene, lights and camera, but for this image: * You are allowed to do whatever you want with the materials * You are allowed to do minor touch-up on the meshes * You are allowed to use particle systems where you feel it is appropriate === Instructions === Model the toon to your liking in MakeHuman, and equip it with the assets you want to demo. If there is a pose you would like to use, you might as well assign it too, otherwise you will need to pose the character inside blender later on. Upon export, use MHX2 unless you have strong reasons not to. Be sure to set "scale units" to "meter". [[File:Fashion_mhx2.png]] In blender, import the toon. It should appear in roughly the appropriate position. If not, move it so that it fits inside the box named "place_toon_inside_this_box". [[File:Fashion_blender_inside_box.png]] The file defaults to 2000 samples, GPU compute. If this is too heavy for your machines, adjust these settings, but please do not go below 500 samples. [[File:Fashion_blender_sampling.png]] Render the scene. Save image with an appropriate file name. If you want to do renders from the side and/or from the back, then rotate the toon, re-render and save. Optionally, if you want to make a touched-up version, edit the materials to your liking and re-render. With the files in place, go to [http://www.makehumancommunity.org/fashion.html the fashion render list] and click "add". In the upload form, enter a title. This should be a very short description of what the render is about, for example "new gown". For each asset you have used in the image, list what slot it is in and what asset it is. The asset is selectable in the "item" drop down, which will display a list of asset names, sorted on name but split up by asset category (note that hair will appear as clothes). To add more rows to list assets in, click "add another item". You do not need to list items which came bundled with MakeHuman (these aren't available in the item drop down list anyway). [[File:Fashion_upload_1.png]] For each image you want to add, select it in the appropriate slot. It is probably best to click the "upload" button each time you selected an image, otherwise you might get a server error on the submit of the post. [[File:Fashion_upload_2.png]] If you so desire, you can add some comments about the renders. But these comments will only be visible of the full post is shown, not in the fashion render list. cc5e9c10000334c55ce3ca648b34cfb317624e4f 1272 1271 2016-12-11T22:02:32Z Punkduck 38 wikitext text/x-wiki == The short version == Download the [http://www.jwp.se/files/LightRoom2.blend LightRoom2.blend] file. Import a toon with the assets you want to demo. Hit the render button. Go to [http://www.makehumancommunity.org/fashion.html the fashion render list] and click "add". Then follow the instructions. == The long version == The intention with the fashion render is to give the user a completely honest idea about an asset, and to enable comparison of assets. Thus, you are very limited in what you are allowed to change in the scene. === Rules === What you ''cannot'' do for the front/side/back renders: * You can't move light sources or change their intensity * You can't move the camera or change it angle * You can't edit the backdrop mesh * You can't change the settings for sky backdrop or ambient occlusion * You can't change the materials from how MHX2 made them look upon import (with the exception that you are allowed to manually add bump maps / normal maps if MHX2 failed to set them up correctly) * You can't edit the meshes of the assets (with the exception that if two clothes pieces from different authors intersect each other, you are allowed to delete a few of the offending vertices) What you ''can'' do for the front/side/back renders: * You are allowed to use whatever toon shape you want * You are allowed to use whatever pose you want (although for practical reasons, poses where the toon is lying down should probably be avoided) * If you so desire, you can add a subdivision modifier both on the toon and on the assets * Change the color of the backdrop (might be necessary if there is too little contrast between the clothes and the backgrount) When you upload your renders, there is a file slot called "touched-up render". This follows the same rules for scene, lights and camera, but for this image: * You are allowed to do whatever you want with the materials * You are allowed to do minor touch-up on the meshes * You are allowed to use particle systems where you feel it is appropriate === Instructions === Model the toon to your liking in MakeHuman, and equip it with the assets you want to demo. If there is a pose you would like to use, you might as well assign it too, otherwise you will need to pose the character inside blender later on. Upon export, use MHX2 unless you have strong reasons not to. Be sure to set "scale units" to "meter". [[File:Fashion_mhx2.png]] In blender, import the toon. It should appear in roughly the appropriate position. If not, move it so that it fits inside the box named "place_toon_inside_this_box". [[File:Fashion_blender_inside_box.png]] The file defaults to 2000 samples, GPU compute. If this is too heavy for your machines, adjust these settings, but please do not go below 500 samples. [[File:Fashion_blender_sampling.png]] Render the scene. Save image with an appropriate file name. If you want to do renders from the side and/or from the back, then rotate the toon, re-render and save. Optionally, if you want to make a touched-up version, edit the materials to your liking and re-render. With the files in place, go to [http://www.makehumancommunity.org/fashion.html the fashion render list] and click "add". In the upload form, enter a title. This should be a very short description of what the render is about, for example "new gown". For each asset you have used in the image, list what slot it is in and what asset it is. The asset is selectable in the "item" drop down, which will display a list of asset names, sorted on name but split up by asset category (note that hair will appear as clothes). To add more rows to list assets in, click "add another item". You do not need to list items which came bundled with MakeHuman (these aren't available in the item drop down list anyway). [[File:Fashion_upload_1.png]] For each image you want to add, select it in the appropriate slot. It is probably best to click the "upload" button each time you selected an image, otherwise you might get a server error on the submit of the post. [[File:Fashion_upload_2.png]] If you so desire, you can add some comments about the renders. But these comments will only be visible of the full post is shown, not in the fashion render list. ab7c0be9aef5e55acfad1b5f97f31fe60abd9640 1271 1270 2016-12-11T21:23:07Z Aranuvir 17 wikitext text/x-wiki == The short version == Download the [http://www.jwp.se/files/LightRoom2.blend LightRoom2.blend] file. Import a toon with the assets you want to demo. Hit the render button. Go to [http://www.makehumancommunity.org/fashion.html the fasion render list] and click "add". Then follow the instructions. == The long version == The intention with the fashion render is to give the user a completely honest idea about an asset, and to enable comparison of assets. Thus, you are very limited in what you are allowed to change in the scene. === Rules === What you ''cannot'' do for the front/side/back renders: * You can't move light sources or change their intensity * You can't move the camera or change it angle * You can't edit the backdrop mesh * You can't change the settings for sky backdrop or ambient occlusion * You can't change the materials from how MHX2 made them look upon import (with the exception that you are allowed to manually add bump maps / normal maps if MHX2 failed to set them up correctly) * You can't edit the meshes of the assets (with the exception that if two clothes pieces from different authors intersect each other, you are allowed to delete a few of the offending vertices) What you ''can'' do for the front/side/back renders: * You are allowed to use whatever toon shape you want * You are allowed to use whatever pose you want (although for practical reasons, poses where the toon is lying down should probably be avoided) * If you so desire, you can add a subdivision modifier both on the toon and on the assets * Change the color of the backdrop (might be necessary if there is too little contrast between the clothes and the backgrount) When you upload your renders, there is a file slot called "touched-up render". This follows the same rules for scene, lights and camera, but for this image: * You are allowed to do whatever you want with the materials * You are allowed to do minor touch-up on the meshes * You are allowed to use particle systems where you feel it is appropriate === Instructions === Model the toon to your liking in MakeHuman, and equip it with the assets you want to demo. If there is a pose you would like to use, you might as well assign it too, otherwise you will need to pose the character inside blender later on. Upon export, use MHX2 unless you have strong reasons not to. Be sure to set "scale units" to "meter". [[File:Fashion_mhx2.png]] In blender, import the toon. It should appear in roughly the appropriate position. If not, move it so that it fits inside the box named "place_toon_inside_this_box". [[File:Fashion_blender_inside_box.png]] The file defaults to 2000 samples, GPU compute. If this is too heavy for your machines, adjust these settings, but please do not go below 500 samples. [[File:Fashion_blender_sampling.png]] Render the scene. Save image with an appropriate file name. If you want to do renders from the side and/or from the back, then rotate the toon, re-render and save. Optionally, if you want to make a touched-up version, edit the materials to your liking and re-render. With the files in place, go to [http://www.makehumancommunity.org/fashion.org the fasion render list] and click "add". In the upload form, enter a title. This should be a very short description of what the render is about, for example "new gown". For each asset you have used in the image, list what slot it is in and what asset it is. The asset is selectable in the "item" drop down, which will display a list of asset names, sorted on name but split up by asset category (note that hair will appear as clothes). To add more rows to list assets in, click "add another item". You do not need to list items which came bundled with MakeHuman (these aren't available in the item drop down list anyway). [[File:Fashion_upload_1.png]] For each image you want to add, select it in the appropriate slot. It is probably best to click the "upload" button each time you selected an image, otherwise you might get a server error on the submit of the post. [[File:Fashion_upload_2.png]] If you so desire, you can add some comments about the renders. But these comments will only be visible of the full post is shown, not in the fashion render list. 0a9a490abaa5203892d54f7f65a73a8c0d197cca 1270 1269 2016-12-11T14:40:37Z Joepal 14 wikitext text/x-wiki == The short version == Download the [http://www.jwp.se/files/LightRoom2.blend LightRoom2.blend] file. Import a toon with the assets you want to demo. Hit the render button. Go to [http://www.makehumancommunity.org/fashion.org the fasion render list] and click "add". Then follow the instructions. == The long version == The intention with the fashion render is to give the user a completely honest idea about an asset, and to enable comparison of assets. Thus, you are very limited in what you are allowed to change in the scene. === Rules === What you ''cannot'' do for the front/side/back renders: * You can't move light sources or change their intensity * You can't move the camera or change it angle * You can't edit the backdrop mesh * You can't change the settings for sky backdrop or ambient occlusion * You can't change the materials from how MHX2 made them look upon import (with the exception that you are allowed to manually add bump maps / normal maps if MHX2 failed to set them up correctly) * You can't edit the meshes of the assets (with the exception that if two clothes pieces from different authors intersect each other, you are allowed to delete a few of the offending vertices) What you ''can'' do for the front/side/back renders: * You are allowed to use whatever toon shape you want * You are allowed to use whatever pose you want (although for practical reasons, poses where the toon is lying down should probably be avoided) * If you so desire, you can add a subdivision modifier both on the toon and on the assets * Change the color of the backdrop (might be necessary if there is too little contrast between the clothes and the backgrount) When you upload your renders, there is a file slot called "touched-up render". This follows the same rules for scene, lights and camera, but for this image: * You are allowed to do whatever you want with the materials * You are allowed to do minor touch-up on the meshes * You are allowed to use particle systems where you feel it is appropriate === Instructions === Model the toon to your liking in MakeHuman, and equip it with the assets you want to demo. If there is a pose you would like to use, you might as well assign it too, otherwise you will need to pose the character inside blender later on. Upon export, use MHX2 unless you have strong reasons not to. Be sure to set "scale units" to "meter". [[File:Fashion_mhx2.png]] In blender, import the toon. It should appear in roughly the appropriate position. If not, move it so that it fits inside the box named "place_toon_inside_this_box". [[File:Fashion_blender_inside_box.png]] The file defaults to 2000 samples, GPU compute. If this is too heavy for your machines, adjust these settings, but please do not go below 500 samples. [[File:Fashion_blender_sampling.png]] Render the scene. Save image with an appropriate file name. If you want to do renders from the side and/or from the back, then rotate the toon, re-render and save. Optionally, if you want to make a touched-up version, edit the materials to your liking and re-render. With the files in place, go to [http://www.makehumancommunity.org/fashion.org the fasion render list] and click "add". In the upload form, enter a title. This should be a very short description of what the render is about, for example "new gown". For each asset you have used in the image, list what slot it is in and what asset it is. The asset is selectable in the "item" drop down, which will display a list of asset names, sorted on name but split up by asset category (note that hair will appear as clothes). To add more rows to list assets in, click "add another item". You do not need to list items which came bundled with MakeHuman (these aren't available in the item drop down list anyway). [[File:Fashion_upload_1.png]] For each image you want to add, select it in the appropriate slot. It is probably best to click the "upload" button each time you selected an image, otherwise you might get a server error on the submit of the post. [[File:Fashion_upload_2.png]] If you so desire, you can add some comments about the renders. But these comments will only be visible of the full post is shown, not in the fashion render list. 8c050657839a80a8ff52d870770184ea9ad6d3a1 1269 1266 2016-12-11T14:38:52Z Joepal 14 wikitext text/x-wiki == The short version == Download the [http://www.jwp.se/files/LightRoom2.blend LightRoom2.blend] file. Import a toon with the assets you want to demo. Hit the render button. Go to [http://www.makehumancommunity.org/fashion.org the fasion render list] and click "add". Then follow the instructions. == The long version == The intention with the fashion render is to give the user a completely honest idea about an asset, and to enable comparison of assets. Thus, you are very limited in what you are allowed to change in the scene. === Rules === What you ''cannot'' do for the front/side/back renders: * You can't move light sources or change their intensity * You can't move the camera or change it angle * You can't edit the backdrop mesh * You can't change the settings for sky backdrop or ambient occlusion * You can't change the materials from how MHX2 made them look upon import (with the exception that you are allowed to manually add bump maps / normal maps if MHX2 failed to set them up correctly) * You can't edit the meshes of the assets (with the exception that if two clothes pieces from different authors intersect each other, you are allowed to delete a few of the offending vertices) What you ''can'' do for the front/side/back renders: * You are allowed to use whatever toon shape you want * You are allowed to use whatever pose you want (although for practical reasons, poses where the toon is lying down should probably be avoided) * If you so desire, you can add a subdivision modifier both on the toon and on the assets * Change the color of the backdrop (might be necessary if there is too little contrast between the clothes and the backgrount) When you upload your renders, there is a file slot called "touched-up render". This follows the same rules for scene, lights and camera, but for this image: * You are allowed to do whatever you want with the materials * You are allowed to do minor touch-up on the meshes * You are allowed to use particle systems where you feel it is appropriate === Instructions === Model the toon to your liking in MakeHuman, and equip it with the assets you want to demo. If there is a pose you would like to use, you might as well assign it too, otherwise you will need to pose the character inside blender later on. Upon export, use MHX2 unless you have strong reasons not to. Be sure to set "scale units" to "meter". [[File:Fashion_mhx2.png]] In blender, import the toon. It should appear in roughly the appropriate position. If not, move it so that it fits inside the box named "place_toon_inside_this_box". [[File:Fashion_blender_inside_box.png]] The file defaults to 2000 samples, GPU compute. If this is too heavy for your machines, adjust these settings, but please do not go below 500 samples. [[File:Fashion_blender_sampling.png]] Render the scene. Save image with an appropriate file name. If you want to do renders from the side and/or from the back, then rotate the toon, re-render and save. Optionally, if you want to make a touched-up version, edit the materials to your liking and re-render. With the files in place, go to [http://www.makehumancommunity.org/fashion.org the fasion render list] and click "add". In the upload form, enter a title. This should be a very short description of what the render is about, for example "new gown". For each asset you have used in the image, list what slot it is in and what asset it is. The asset is selectable in the "item" drop down, which will display a list of asset names, sorted on name but split up by asset category (note that hair will appear as clothes). To add more rows to list assets in, click "add another item". [[File:Fashion_upload_1.png]] For each image you want to add, select it in the appropriate slot. It is probably best to click the "upload" button each time you selected an image, otherwise you might get a server error on the submit of the post. [[File:Fashion_upload_2.png]] If you so desire, you can add some comments about the renders. But these comments will only be visible of the full post is shown, not in the fashion render list. 375e8cdb7911a2bcc53ee6b0e5a78c554a8df408 1266 1262 2016-12-11T14:27:39Z Joepal 14 wikitext text/x-wiki == The short version == Download the [http://www.jwp.se/files/LightRoom2.blend LightRoom2.blend] file. Import a toon with the assets you want to demo. Hit the render button. Go to [http://www.makehumancommunity.org/fashion.org the fasion render list] and click "add". Then follow the instructions. == The long version == The intention with the fashion render is to give the user a completely honest idea about an asset, and to enable comparison of assets. Thus, you are very limited in what you are allowed to change in the scene. === Rules === What you ''cannot'' do for the front/side/back renders: * You can't move light sources or change their intensity * You can't move the camera or change it angle * You can't edit the backdrop mesh * You can't change the settings for sky backdrop or ambient occlusion * You can't change the materials from how MHX2 made them look upon import (with the exception that you are allowed to manually add bump maps / normal maps if MHX2 failed to set them up correctly) * You can't edit the meshes of the assets (with the exception that if two clothes pieces from different authors intersect each other, you are allowed to delete a few of the offending vertices) What you ''can'' do for the front/side/back renders: * You are allowed to use whatever toon shape you want * You are allowed to use whatever pose you want (although for practical reasons, poses where the toon is lying down should probably be avoided) * If you so desire, you can add a subdivision modifier both on the toon and on the assets * Change the color of the backdrop (might be necessary if there is too little contrast between the clothes and the backgrount) When you upload your renders, there is a file slot called "touched-up render". This follows the same rules for scene, lights and camera, but for this image: * You are allowed to do whatever you want with the materials * You are allowed to do minor touch-up on the meshes * You are allowed to use particle systems where you feel it is appropriate === Instructions === Model the toon to your liking in MakeHuman, and equip it with the assets you want to demo. If there is a pose you would like to use, you might as well assign it too, otherwise you will need to pose the character inside blender later on. Upon export, use MHX2 unless you have strong reasons not to. Be sure to set "scale units" to "meter". [[File:Fashion_mhx2.png]] In blender, import the toon. It should appear in roughly the appropriate position. If not, move it so that it fits inside the box named "place_toon_inside_this_box". [[File:Fashion_blender_inside_box.png]] The file defaults to 2000 samples, GPU compute. If this is too heavy for your machines, adjust these settings, but please do not go below 500 samples. [[File:File:Fashion_blender_sampling.png]] bb5d6e0c0118c4451300519a30649f3a36748bdb 1262 2016-12-11T14:11:23Z Joepal 14 Created page with "== The short version == Download the [http://www.jwp.se/files/LightRoom2.blend LightRoom2.blend] file. Import a toon with the assets you want to demo. Hit the render button...." wikitext text/x-wiki == The short version == Download the [http://www.jwp.se/files/LightRoom2.blend LightRoom2.blend] file. Import a toon with the assets you want to demo. Hit the render button. Go to [http://www.makehumancommunity.org/fashion.org the fasion render list] and click "add". Then follow the instructions. == The long version == The intention with the fashion render is to give the user a completely honest idea about an asset, and to enable comparison of assets. Thus, you are very limited in what you are allowed to change in the scene. === Rules === What you ''cannot'' do for the front/side/back renders: * You can't move light sources or change their intensity * You can't move the camera or change it angle * You can't edit the backdrop mesh * You can't change the settings for sky backdrop or ambient occlusion * You can't change the materials from how MHX2 made them look upon import (with the exception that you are allowed to manually add bump maps / normal maps if MHX2 failed to set them up correctly) * You can't edit the meshes of the assets (with the exception that if two clothes pieces from different authors intersect each other, you are allowed to delete a few of the offending vertices) What you ''can'' do for the front/side/back renders: * You are allowed to use whatever toon shape you want * You are allowed to use whatever pose you want (although for practical reasons, poses where the toon is lying down should probably be avoided) * If you so desire, you can add a subdivision modifier both on the toon and on the assets * Change the color of the backdrop (might be necessary if there is too little contrast between the clothes and the backgrount) When you upload your renders, there is a file slot called "touched-up render". This follows the same rules for scene, lights and camera, but for this image: * You are allowed to do whatever you want with the materials * You are allowed to do minor touch-up on the meshes * You are allowed to use particle systems where you feel it is appropriate === Instructions === (to be written) c2f6bf98121b2bb113ccaf5131154527fb29a4cd FAQ:How do I submit a bug report? 3002 17 2006 69 2021-01-27T10:02:27Z Hfugfn65438 108 working link wikitext text/x-wiki If you have found something that you think merits a bug report, please submit it on the bug tracker. The credentials on the [http://www.makehumancommunity.org/content/bugtracker.html bug tracker] are the same as on the forums, so if you already have a forum login, use that to log in on the bug tracker. NOTE: if you experienced a crash rather than a glitch, please also read this before submitting your bug report: [[FAQ:How to provide a makehuman log for a good bug report?]] 1f979289bfe2a24c5a11b656c7a22a9bca651d91 69 2015-07-06T07:41:47Z Joepal 14 Created page with "If you have found something that you think merits a bug report, please submit it on the bug tracker, at http://bugtracker.makehumancommunity.org. The logins on the bug track..." wikitext text/x-wiki If you have found something that you think merits a bug report, please submit it on the bug tracker, at http://bugtracker.makehumancommunity.org. The logins on the bug tracker are the same as on the forums, so if you already have a forum login, use that to log in on the bug tracker. NOTE: if you experienced a crash rather than a glitch, please also read this before submitting your bug report: [[FAQ:How to provide a makehuman log for a good bug report?]] 4d69df02fed6d0d74da11260677993cd1a4928e8 FAQ:How do I uninstall MakeHuman? 3002 331 1322 972 2017-02-18T00:19:05Z Aranuvir 17 /* Windows */ wikitext text/x-wiki Here are some informations how to remove MakeHuman from your system. The information is mostly intended for version 1.1.0 of MakeHuman. == Windows == Simply delete the folder where you unzipped the MakeHuman-package. ([[FAQ:Where can I unzip MakeHuman (in Windows)?]]). MakeHuman itself only creates one folder (see below). The bundled Python and Qt libraries aren't expected to create any temporary files. (In case the last statement is not true, the temporary files should be found in the usual temp-folders. Please inform the MakeHuman-Team if you find any further remainder of MakeHuman, so the FAQ can be adapted.) == Linux == Uninstallating MakeHuman depends on the method you installed it. If you have just unzipped a MakeHuman-package, simply delete this folder. In other cases use the specific package management tools of your distribution. * Ubuntu (/Debian): You can remove MakeHuman via apt: sudo apt-get remove --purge makehuman Then remove the ppa: sudo add-apt-repository --remove ppa:makehuman-official/makehuman-11x Another possible method is to use ppa-purge (universe): sudo ppa-purge ppa:makehuman-official/makehuman-11x This will remove MakeHuman and the ppa from source.list. In case there was another installation of MakeHuman before, from other sources then from the ppa, ppa-purge will only perform a downgrade to the previous version. If you have copied additional files to the system folders of MakeHuman by hand, these files will not be removed by the methods above and need to be deleted by hand. * OpenSuse/Fedora: Currently MakeHuman doesn't provide official rpm-packages. Please refer to your system documentation how to uninstall software. == Mac OS X == To be written. == Additional information, for all operating systems == On first run MakeHuman will create a folder called makehuman in your HOME directory. ([[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]) This folder can be deleted, too. But keep in mind, this folder contains all your models and other stuff you created or downloaded. '''These files will be lost, if you don't have a back-up!''' ''If you like, you can leaf a comment in the community forum why you removed MakeHuman (http://www.makehumancommunity.org/forum/). This will help the MakeHuman-Team to improve the software.'' 3ee8afbc85e5f2210426df994e253129bb8f13ee 972 870 2016-05-27T15:52:48Z Aranuvir 17 wikitext text/x-wiki Here are some informations how to remove MakeHuman from your system. The information is mostly intended for version 1.1.0 of MakeHuman. == Windows == Simply delete the folder where you unzipped the MakeHuman-package. ([[FAQ:Where can I unzip MakeHuman (in Windows)?]]). MakeHuman itself only creates one folder (see below). The bundled python and qt libraries aren't expected to create any temporary files. (In case the last statement is not true, the temporary files should be found in the usual temp-folders. Please inform the MakeHuman-Team if you find any further remainder of MakeHuman, so the FAQ can be adapted.) == Linux == Uninstallating MakeHuman depends on the method you installed it. If you have just unzipped a MakeHuman-package, simply delete this folder. In other cases use the specific package management tools of your distribution. * Ubuntu (/Debian): You can remove MakeHuman via apt: sudo apt-get remove --purge makehuman Then remove the ppa: sudo add-apt-repository --remove ppa:makehuman-official/makehuman-11x Another possible method is to use ppa-purge (universe): sudo ppa-purge ppa:makehuman-official/makehuman-11x This will remove MakeHuman and the ppa from source.list. In case there was another installation of MakeHuman before, from other sources then from the ppa, ppa-purge will only perform a downgrade to the previous version. If you have copied additional files to the system folders of MakeHuman by hand, these files will not be removed by the methods above and need to be deleted by hand. * OpenSuse/Fedora: Currently MakeHuman doesn't provide official rpm-packages. Please refer to your system documentation how to uninstall software. == Mac OS X == To be written. == Additional information, for all operating systems == On first run MakeHuman will create a folder called makehuman in your HOME directory. ([[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]) This folder can be deleted, too. But keep in mind, this folder contains all your models and other stuff you created or downloaded. '''These files will be lost, if you don't have a back-up!''' ''If you like, you can leaf a comment in the community forum why you removed MakeHuman (http://www.makehumancommunity.org/forum/). This will help the MakeHuman-Team to improve the software.'' 03b2d324b8db05107cee3d26f99e9d22aaa6b47b 870 869 2016-05-27T11:40:20Z Aranuvir 17 wikitext text/x-wiki Here are some informations how to remove MakeHuman from your system. The information is mostly intended for version 1.1.0 of MakeHuman. == Windows == Simply delete the folder where you unzipped the MakeHuman-package. ([[FAQ:Where can I unzip MakeHuman (in Windows)?]]). MakeHuman itself only creates one folder (see below). The bundled python and qt libraries shouldn't create any temporary files. (In case the last statement is not true, the temporary files should be found in the usual temp-folders. Please inform the MakeHuman-Team if you find any further remainder of MakeHuman, so the FAQ can be adapted.) == Linux == Uninstallating MakeHuman depends on the method you installed it. If just unzipped a MakeHuman-package, simply delete this folder. In other cases use the specific package management tools of your distribution. * Ubuntu (/Debian): You can remove MakeHuman via apt: sudo apt-get remove --purge makehuman Then remove the ppa: sudo add-apt-repository --remove ppa:makehuman-official/makehuman-11x Another possible method is to use ppa-purge (universe): sudo ppa-purge ppa:makehuman-official/makehuman-11x This will remove MakeHuman and the ppa from source.list. In case there was another installation of MakeHuman before, from other sources then from the ppa, ppa-purge will only perform a downgrade to the previous version. If you have copied additional files to the system folders of MakeHuman by hand, these files will not be removed by the methods above and need to be deleted by hand. * OpenSuse/Fedora: Currently MakeHuman doesn't provide official rpm-packages. Please refer to your system documentation how to uninstall software. == Mac OS X == To be written. == Additional information, for all operating systems == On first run MakeHuman will create a folder called makehuman in your HOME directory. ([[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]) This folder can be deleted, too. But keep in mind, this folder contains all your models and other stuff you created or downloaded. '''These files will be lost, if you don't have a back-up!''' ''If you like, you can leaf a comment in the community forum why you removed MakeHuman (http://www.makehumancommunity.org/forum/). This will help the MakeHuman-Team to improve the software.'' d91678ec20a7e6a0866069667b10385477b68b47 869 868 2016-05-27T11:39:41Z Aranuvir 17 wikitext text/x-wiki Here are some informations how to remove MakeHuman from your system. The information is mostly intended for version 1.1.0 of MakeHuman. == Windows == Simply delete the folder where you unzipped the MakeHuman-package. ([[FAQ:Where can I unzip MakeHuman (in Windows)?]]). MakeHuman itself only creates one folder (see below). The bundled python and qt libraries shouldn't create any temporary files. (In case the last statement is not true, the temporary files should be found in the usual temp-folders. Please inform the MakeHuman-Team if you find any further remainder of MakeHuman, so the FAQ can be adapted. == Linux == Uninstallating MakeHuman depends on the method you installed it. If just unzipped a MakeHuman-package, simply delete this folder. In other cases use the specific package management tools of your distribution. * Ubuntu (/Debian): You can remove MakeHuman via apt: sudo apt-get remove --purge makehuman Then remove the ppa: sudo add-apt-repository --remove ppa:makehuman-official/makehuman-11x Another possible method is to use ppa-purge (universe): sudo ppa-purge ppa:makehuman-official/makehuman-11x This will remove MakeHuman and the ppa from source.list. In case there was another installation of MakeHuman before, from other sources then from the ppa, ppa-purge will only perform a downgrade to the previous version. If you have copied additional files to the system folders of MakeHuman by hand, these files will not be removed by the methods above and need to be deleted by hand. * OpenSuse/Fedora: Currently MakeHuman doesn't provide official rpm-packages. Please refer to your system documentation how to uninstall software. == Mac OS X == To be written. == Additional information, for all operating systems == On first run MakeHuman will create a folder called makehuman in your HOME directory. ([[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]) This folder can be deleted, too. But keep in mind, this folder contains all your models and other stuff you created or downloaded. '''These files will be lost, if you don't have a back-up!''' ''If you like, you can leaf a comment in the community forum why you removed MakeHuman (http://www.makehumancommunity.org/forum/). This will help the MakeHuman-Team to improve the software.'' 30ae66ef70488b38183307784a547f85078a5c5c 868 867 2016-05-27T10:25:52Z Aranuvir 17 wikitext text/x-wiki Here are some informations how to remove MakeHuman from your system. == Windows == Simply delete the folder where you unzipped the MakeHuman-package. ([[FAQ:Where can I unzip MakeHuman (in Windows)?]]) == Linux == Uninstallating MakeHuman depends on the method you installed it. If just unzipped a MakeHuman-package, simply delete this folder. In other cases use the specific package management tools of your distribution. * Ubuntu (/Debian): You can remove MakeHuman via apt: sudo apt-get remove --purge makehuman Then remove the ppa: sudo add-apt-repository --remove ppa:makehuman-official/makehuman-11x Another possible method is to use ppa-purge (universe): sudo ppa-purge ppa:makehuman-official/makehuman-11x This will remove MakeHuman and the ppa from source.list. In case there was another installation of MakeHuman before, from other sources then from the ppa, ppa-purge will only perform a downgrade to the previous version. If you have copied additional files to the system folders of MakeHuman by hand, these files will not be removed by the methods above and need to be deleted by hand. * OpenSuse/Fedora: Currently MakeHuman doesn't provide specific rpm-packages. == Mac OS X == To be written. == Additional information, for all operating systems == On first run MakeHuman will create a folder called makehuman in your HOME directory. ([[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]) This folder can be deleted, too. But keep in mind, this folder contains all your models and other stuff you created or downloaded. '''These files will be lost, if you don't have a back-up!''' ''If you like, you can leaf a comment in the community forum why you removed MakeHuman (http://www.makehumancommunity.org/forum/). This will help the MakeHuman-Team to improve the software.'' 09dfd0b277087b40ccf5f8325c4509dc53f3ac92 867 866 2016-05-27T10:02:37Z Aranuvir 17 wikitext text/x-wiki Here are some informations how to remove MakeHuman from your system. == Windows == Simply delete the folder where you unzipped the MakeHuman-package. ([[FAQ:Where can I unzip MakeHuman (in Windows)?]]) == Linux == Uninstallating MakeHuman depends on the method you installed it. If just unzipped a MakeHuman-package, simply delete this folder. In other cases use the specific package management tools of your distribution. * Ubuntu (/Debian): You can remove MakeHuman via apt: sudo apt-get remove --purge makehuman Then remove the ppa: sudo add-apt-repository --remove ppa:makehuman-official/makehuman-11x Another possible method is to use ppa-purge (universe): sudo ppa-purge ppa:makehuman-official/makehuman-11x This will remove MakeHuman and the ppa from source.list. In case there was another installation of MakeHuman before, from other sources then from the ppa, ppa-purge will only perform a downgrade to the previous version. If you have copied additional files to the system folders of MakeHuman by hand, these files will not be removed by the methods above and need to be deleted by hand. * OpenSuse/Fedora: Currently MakeHuman doesn't provide specific rpm-packages. == Mac OS X == To be written. == Additional information, for all operating systems == On first run MakeHuman will create a folder called makehuman in your HOME directory. ([[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]) This folder can be deleted, too. But keep in mind, this folder contains all your models and other stuff you created or downloaded. '''These files will be lost, if you don't have a back-up!''' ''If you like, you can leaf a comment in the community forum why you removed MakeHuman (http://www.makehumancommunity.org/forum/). This will help the MakeHuman-Team to improve the software.'' 8cab93293a925fd73603dfbe45f39c877a1ee14a 866 2016-05-27T09:52:23Z Aranuvir 17 Created page with "Here are some informations how to remove MakeHuman from your system. == Windows == Simply delete the folder where you unzipped the MakeHuman-package. (FAQ:Where can I unzip..." wikitext text/x-wiki Here are some informations how to remove MakeHuman from your system. == Windows == Simply delete the folder where you unzipped the MakeHuman-package. ([[FAQ:Where can I unzip MakeHuman (in Windows)?]]) == Linux == Uninstallating MakeHuman depends on the method you installed it. If just unzipped a MakeHuman-package, simply delete this folder. In other cases use the specific package management tools of your distribution. * Ubuntu (/Debian): You can remove MakeHuman via apt: sudo apt-get remove --purge makehuman Then remove the ppa: sudo add-apt-repository --remove ppa:makehuman-official/makehuman-11x Another possible method is to use ppa-purge (universe): sudo ppa-purge ppa:makehuman-official/makehuman-11x This will remove MakeHuman and the ppa from source.list. In case there was another installation of MakeHuman from other sources then from the ppa before, ppa-purge will only perform a downgrade to the previous version. If you have copied additional files to the system folders of MakeHuman by hand, these files will not be removed by the methods above and need to be deleted by hand. * OpenSuse/Fedora: Currently MakeHuman doesn't provide specific rpm-packages. == Mac OS X == To be written. == Additional information, for all operating systems == On first run MakeHuman will create a folder called makehuman in your HOME directory. ([[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]) This folder can be deleted, too. But keep in mind, this folder contains all your models and other stuff you created or downloaded. '''These files will be lost, if you don't have a back-up!''' ''If you like, you can leaf a comment in the community forum why you removed MakeHuman (http://www.makehumancommunity.org/forum/). This will help the MakeHuman-Team to improve the software.'' b7af4cb8743b27d78f079569e5dd4d09e51177a1 FAQ:How do I upgrade a plugin in Blender 2.80? 3002 579 1610 2019-09-27T08:20:34Z Joepal 14 Created page with "If you want to get the latest version of a plugin, you can go to the appropriate github page and download it as a zip file. * For MPFB, download the latest zip here: https:/..." wikitext text/x-wiki If you want to get the latest version of a plugin, you can go to the appropriate github page and download it as a zip file. * For MPFB, download the latest zip here: https://github.com/makehumancommunity/makehuman-plugin-for-blender/tree/master/blender_distribution * For most other makehuman-related blender plugins, go to the github repo, click "clone or download" and then "download as zip". With the zip file available, you can upgrade the addon inside blender. * Approach 1: Go to edit -> preferences -> addons. Find the plugin. Expand it. Click remove. Then follow the instructions in [[FAQ: How do I install a plugin in Blender 2.80?]] * Approach 2: Follow the instructions in [[FAQ: How do I install a plugin in Blender 2.80?]] directly, but make sure you check the "overwrite" checkbox when importing the plugin In either approach, you may need to restart blender before the new version of the plugin works. 3b63a8eca03008cebb18c18e11547648ec6f394b FAQ:How much does MakeHuman cost? 3002 25 82 2015-07-09T11:27:26Z Joepal 14 Created page with "MakeHuman is a Open Source Software and it's free of charge." wikitext text/x-wiki MakeHuman is a Open Source Software and it's free of charge. 52fd6bb4537ac286409cd9cc0f1c2d700b370b2b FAQ:How to provide a makehuman log for a good bug report? 3002 16 645 68 2016-04-22T08:53:00Z Joepal 14 wikitext text/x-wiki Pretty much whatever error report you post on the forums will have the same response unless you do what is listed below. The reponse will be "What does the log say?" To avoid this, always include the logs if you want to report an error, be it on the forums or in the bug tracker. When you run MakeHuman, four (two if you are on Linux) files are created into your home/makehuman directory (see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]) * makehuman.log * makehuman-debug.txt * python-out.txt * python-err.txt If a crash has occurred, the makehuman.log file is usually the most interesting, but it doesn't hurt to include all of them. As alternative (and if the bug doesn't prevent the start of the GUI) you can also look in "Utilities"-->"Logs". Select the error and use the button "Copy to clipboard" in order to paste it in the report message. ab45a694417049d99771bdf167c422a1602fd382 68 67 2015-07-06T07:39:30Z Joepal 14 wikitext text/x-wiki When you run MakeHuman, four (two if you are on Linux) files are created into your home/makehuman directory (see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]) * makehuman.log * makehuman-debug.txt * python-out.txt * python-err.txt If a crash has occurred, the makehuman.log file is usually the most interesting, but it doesn't hurt to include all of them. As alternative (and if the bug doesn't prevent the start of the GUI) you can also look in "Utilities"-->"Logs". Select the error and use the button "Copy to clipboard" in order to paste it in the report message. ecd1fa46bb776e81a06068fe644e2f67f31a6797 67 2015-07-06T07:37:50Z Joepal 14 Created page with "When you run MakeHuman, four (two if you are on Linux) files are creates into your home/makehuman directory (see FAQ:Where are my MakeHuman files found (where is my HOME di..." wikitext text/x-wiki When you run MakeHuman, four (two if you are on Linux) files are creates into your home/makehuman directory (see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]) * makehuman.log * makehuman-debug.txt * python-out.txt * python-err.txt If a crash has occurred, the makehuman.log file is usually the most interesting, but it doesn't hurt to include all of them. As alternative (and if the bug doesn't prevent the start of the GUI) you can also look in "Utilities"-->"Logs". Select the error and use the button "Copy to clipboard" in order to paste it in the report message. 3b23d71c5af44a290a3f0eb991359cce26b8d907 FAQ:I'm not a coder. How can I contribute? 3002 43 105 102 2015-07-10T10:05:31Z Joepal 14 wikitext text/x-wiki If you are an artist, consider making assets for MakeHuman and share them with the community. For more info, see [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] If you want to write documentation (something which is always needed), simply go ahead and edit the relevant page here on the wiki. For more info see [[FAQ:I have made a tutorial. How do I contribute it?]] and [[FAQ:I want to help write documentation. How do I do that?]] Apart from this, testing and bug reporting is always needed, as well as answering questions on forums. If you want ideas, go to http://bugtracker.makehumancommunity.org and see what's in the queue. fdec36bc3dce69ccf1a2c4e47ce6d688e7690d1e 102 2015-07-10T10:04:02Z Joepal 14 Created page with "If you are an artist, consider making assets for MakeHuman and share them with the community. For more info, see FAQ:I have made a new asset for MakeHuman. How can I contrib..." wikitext text/x-wiki If you are an artist, consider making assets for MakeHuman and share them with the community. For more info, see [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] If you want to write documentation (something which is always needed), simply go ahead and edit the relevant page here on the wiki. For more info see [[FAQ:I have made a tutorial. How to I contribute it?]] and [[FAQ:I want to help write documentation. How do I do that?]] Apart from this, testing and bug reporting is always needed, as well as answering questions on forums. If you want ideas, go to http://bugtracker.makehumancommunity.org and see what's in the queue. a72edc124c7695c2195a4014a256edd792366697 FAQ:I'm using ubuntu. Is there a PPA? 3002 37 1014 996 2016-06-16T17:36:57Z Aranuvir 17 wikitext text/x-wiki Yes, for stable releases. In the future we will might add a separate PPA for unstable builds. The PPA for the latest stable release is here: https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x To enable it, run sudo add-apt-repository ppa:makehuman-official/makehuman-11x sudo apt-get update Then, to install makehuman, run sudo apt-get install makehuman Also revere to the documentation of your operating system about the general use of PPAs! 2de0d48bd2a94d107ed9d5129d6b6f3622c4153b 996 659 2016-05-31T08:52:53Z Joepal 14 wikitext text/x-wiki Yes, for stable releases. In the future we will might add a separate PPA for unstable builds. The PPA for the latest stable release is here: https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x To enable it, run sudo add-apt-repository ppa:makehuman-official/makehuman-11x sudo apt-get update Then, to install makehuman, run sudo apt-get install makehuman 646123db26ae2e5bd9b818e1fa9d80f846e70475 659 96 2016-05-14T08:30:46Z Joepal 14 wikitext text/x-wiki Yes, for stable releases. In the future we will might add a separate PPA for unstable builds. The PPA for the latest stable release is here: https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-11x To enable it, run sudo add-apt-repository ppa:makehuman-official/makehuman-11x && sudo apt-get update Then, to install makehuman, run sudo apt-get install makehuman c800433e4ff99727167c306076069df16abe4475 96 2015-07-10T09:51:31Z Joepal 14 Created page with "Yes, but currently only of the last stable release. In the future we will add separate PPAs for stable and unstable. The root page of the PPAs is here: https://launchpad.net..." wikitext text/x-wiki Yes, but currently only of the last stable release. In the future we will add separate PPAs for stable and unstable. The root page of the PPAs is here: https://launchpad.net/~makehuman-official Note that for nightly builds, there is a monolithic DEB you can download from http://download.tuxfamily.org/makehuman/nightly/ e54edb56e8087286b0b08be1bbd2f1f396dfb1df FAQ:I already have a 3d object from elsewhere. How can I use it in MH? 3002 219 1235 1234 2016-11-19T18:01:00Z Joepal 14 wikitext text/x-wiki Short answer is that you can't, not directly. MH can only use assets which are made specifically for MH. For meshes this in practice means assets produced by MakeClothes. If you have a 3d object you want to use (say, for example, clothes or a necklace), you have to use MakeClothes to convert it for MH first. In this case you can import it in blender and use it for the clothes part in MakeClothes, as if you were modeling clothes. See the [[Documentation:Index|documentation]] on makeclothes for more information. 843a2613a0bed5fd217ea251b145564ac3c30c66 1234 1233 2016-11-19T17:59:52Z Joepal 14 wikitext text/x-wiki Short answer is that you can't, not directly. MH can only use assets which are made specifically for MH. For meshes this in practice means assets produced by MakeClothes. If you have a 3d object you want to use (say, for example, clothes or a necklace), you have to use MakeClothes to convert it for MH first. In this case you can import it in blender and use it for the clothes part in MakeClothes, as if you were modeling clothes. See the documentation on makeclothes for more information. 0d539d662ab0cf448a1a85e3a5bfd6cd4dc6d14f 1233 648 2016-11-19T17:58:56Z Joepal 14 wikitext text/x-wiki Short answer is that you can't, not directly. MH can only use assets which are made specifically for MH, in practice assets produced by MakeClothes. If you have a 3d object you want to use (say, for example, clothes or a necklace), you have to use MakeClothes to convert it for MH first. In this case you can import it in blender and use it for the clothes part in MakeClothes, as if you were modeling clothes. See the documentation on makeclothes for more information. a2bb1751a347825377b6c72c00d141916d4a2261 648 2016-05-11T14:04:53Z Joepal 14 Created page with "Short answer is that you can't. MH can only use assets which are made specifically for MH, by using MakeClothes. If you have a 3d object you want to use (say, for example, a..." wikitext text/x-wiki Short answer is that you can't. MH can only use assets which are made specifically for MH, by using MakeClothes. If you have a 3d object you want to use (say, for example, a gun or a necklace), you have to adapt it for MH. In this case you can import it in blender and use it for the clothes part in MakeClothes, as if you were modeling clothes. 9429bc45f140f7242d9f162d0a0fb3a61af55745 FAQ:I am using the ubuntu/debian version of MakeHuman and... 3002 45 107 2015-07-10T10:13:27Z Joepal 14 Created page with "The problem here is that you probably got your hands on MakeHuman alpha 6. This is a ''four years old alpha release''. There is no way we can maintain this. Unfortunately so..." wikitext text/x-wiki The problem here is that you probably got your hands on MakeHuman alpha 6. This is a ''four years old alpha release''. There is no way we can maintain this. Unfortunately someone at Debian made a package of MH back then, and put it in the official repositories. After that it was not touched for years, despite our repeated pleas to either upgrade or at least remove this extremely archaic and completely unsupported version. As per summer 2015, the Debian representative in charge of the MakeHuman package did a version bump on the package. It has since got posted in debian Sid ("unstable") and will slowly start to trickle down to new releases of Debian-derived distributions. However, the earliest possible actual release that might contain this package is ubuntu 15.10. Everything before that will still contain the alpha 6 release. There is a perfectly functional official DEB release available from the MakeHuman download page. That will give you an up to date version of MH. If you are using ubuntu, see also [[FAQ:I'm using ubuntu. Is there a PPA?]] bcd2902730379e13cacbdf90919283084e43f0c7 FAQ:I am using the ubuntu or debian version of MakeHuman and... 3002 46 109 2015-07-10T10:14:24Z Joepal 14 Created page with "The problem here is that you probably got your hands on MakeHuman alpha 6. This is a ''four years old alpha release''. There is no way we can maintain this. Unfortunately so..." wikitext text/x-wiki The problem here is that you probably got your hands on MakeHuman alpha 6. This is a ''four years old alpha release''. There is no way we can maintain this. Unfortunately someone at Debian made a package of MH back then, and put it in the official repositories. After that it was not touched for years, despite our repeated pleas to either upgrade or at least remove this extremely archaic and completely unsupported version. As per summer 2015, the Debian representative in charge of the MakeHuman package did a version bump on the package. It has since got posted in debian Sid ("unstable") and will slowly start to trickle down to new releases of Debian-derived distributions. However, the earliest possible actual release that might contain this package is ubuntu 15.10. Everything before that will still contain the alpha 6 release. There is a perfectly functional official DEB release available from the MakeHuman download page. That will give you an up to date version of MH. If you are using ubuntu, see also [[FAQ:I'm using ubuntu. Is there a PPA?]] bcd2902730379e13cacbdf90919283084e43f0c7 FAQ:I can't download from the user repos, all files are saved as HTML 3002 514 1440 1387 2017-11-09T08:52:59Z Joepal 14 wikitext text/x-wiki This is a problem with your web browser (probably Internet Explorer or Edge), which makes assumptions about file extensions. == Quick fix == The quick fix is to use a different web browser (Chrome and Firefox are known to not show this bug). With these browsers, things will most likely save automatically in the correct way. If not, at least chrome has a checkbox in the save-as dialog to force the correct extension. == More ideal solution == Alternatively, there is a more ideal solution: Install the plugin for downloading assets from within makehuman instead. You can find the asset downloader plugin as well as installation instructions at https://github.com/makehumancommunity/community-plugins-assetdownload e10b312b0b9b0f5b12fdc7cc2bc5964f68b865f0 1387 1277 2017-05-22T19:02:48Z Aranuvir 17 wikitext text/x-wiki This is a problem with your web browser (probably Internet Explorer or Edge), which makes assumptions about file extensions. == Quick fix == The quick fix is to use a different web browser (Chrome and Firefox are known to not show this bug). With these browsers, things will most likely save automatically in the correct way. If not, at least chrome has a checkbox in the save-as dialog to force the correct extension. == More ideal solution == Alternatively, there is a more ideal solution: Install the plugin for downloading assets from within makehuman instead. * Go to https://github.com/makehumancommunity/community-plugins * Download the repo as a zip file * In the zip file find the directory "makehuman" * Copy everything in there to the "plugins" directory under where you installed makehuman You will then get a "community" tab with a GUI for downloading assets. 3358e0a622a2634523cb8fe913ccb2b622780071 1277 2017-01-06T07:25:38Z Joepal 14 Created page with "This is a problem with your web browser (probably Internet Explorer or Edge), which makes assumptions about file extensions. == Quick fix == The quick fix is to use Chrome..." wikitext text/x-wiki This is a problem with your web browser (probably Internet Explorer or Edge), which makes assumptions about file extensions. == Quick fix == The quick fix is to use Chrome or possibly Firefox. With these browsers, things will most likely save automatically in the correct way. If not, at least chrome has a checkbox in the save-as dialog to force the correct extension. == More ideal solution == Alternatively, there is a more ideal solution: Install the plugin for downloading assets from within makehuman instead. * Go to https://github.com/makehumancommunity/community-plugins * Download the repo as a zip file * In the zip file find the directory "makehuman" * Copy everything in there to the "plugins" directory under where you installed makehuman You will then get a "community" tab with a GUI for downloading assets. 4a53308bcd712d8b211ef9b51f86dba369f0e655 FAQ:I didn't get any forum activation link 3002 563 1483 2018-10-19T11:38:36Z Joepal 14 Created page with "Lately we've had problems with Google randomly locking the account used to send mail, then unlocking it upon request, to then just lock it again a few days later. There's no e..." wikitext text/x-wiki Lately we've had problems with Google randomly locking the account used to send mail, then unlocking it upon request, to then just lock it again a few days later. There's no explanation as to why this happens now, after years of having used the same setup. For now we're instead using MailGun. This has the benefit that mail get sent in a structured manner, but the downside that the mail might become spam classed or outright blocked. This since mail are sent from a shared IP, which might become blocked due to spammers having sent via that same IP. Anway, if you don't get notifications as expected, first check your spam folders. If it isn't there either, it's possible your email provider outright blocked the mail. You can then try to use a different email address. It's possible a better solution will be needed in the longer run, but this will have to do for now. cf8e7a3ad753fbb8c2c9d4c1b9647a78f36bd097 FAQ:I downloaded a third part model. How do I install it? 3002 481 1163 2016-08-30T09:28:49Z Aranuvir 17 Aranuvir moved page [[FAQ:I downloaded a third part model. How do I install it?]] to [[FAQ:I downloaded a third party model. How do I install it?]] wikitext text/x-wiki #REDIRECT [[FAQ:I downloaded a third party model. How do I install it?]] 9f29e8490f448da753050284f106d4e2e2593695 FAQ:I downloaded a third part plug-in. How do I install it? 3002 479 1154 2016-08-30T08:55:17Z Aranuvir 17 Aranuvir moved page [[FAQ:I downloaded a third part plug-in. How do I install it?]] to [[FAQ:I downloaded a third party plug-in. How do I install it?]]: typo wikitext text/x-wiki #REDIRECT [[FAQ:I downloaded a third party plug-in. How do I install it?]] afc261d577da631d9feef706554c903e01c5346f FAQ:I downloaded a third part target. How do I install it? 3002 480 1157 2016-08-30T09:09:36Z Aranuvir 17 Aranuvir moved page [[FAQ:I downloaded a third part target. How do I install it?]] to [[FAQ:I downloaded a third party target. How do I install it?]]: typo wikitext text/x-wiki #REDIRECT [[FAQ:I downloaded a third party target. How do I install it?]] 21e346ba49f98bd14b20a49b8d92d343a4fbe8d0 FAQ:I downloaded a third party model. How do I install it? 3002 62 1177 1171 2016-08-30T13:32:08Z Aranuvir 17 wikitext text/x-wiki First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. Models usually only consist of two files, of which one is optional: The model as such (*.mhm) and a thumbnail (*.thumb). These files should go into the "models" directory. Example paths to the models folder would be: * Windows: "Documents\makehuman\v1\models" on Windows Vista/7/8/10" or MY DOCUMENTS\makehuman\v1\models" on earlier Windows * Linux: ~/makehuman/v1/models The thumbnail will be recreated the next time the model was loaded and saved again in MakeHuman. Though it is good practice to keep your files at one place, MakeHuman also lets you choose a different folder to load your models. Just click on the "..."-button left of the path. The dialog box just lets you choose a folder and does not show the files in it. Contained files of the newly selected folder will appear in the in the file chooser on the right. If the newly selected folder contains files in subfolders, these files will automatically be loaded by the file chooser, too. On restart, MakeHuman will remember the last folder selected for the load, save and export option. 3802b304c08a5502d2b9929e272567ea2a7f21e9 1171 1162 2016-08-30T12:08:52Z Aranuvir 17 wikitext text/x-wiki First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. Models usually only consist of two files, of which one is optional: The model as such (*.mhm) and a thumbnail (*.thumb). These files should go into the "models" directory. Example paths would be: * Windows: "MY DOCUMENTS"\makehuman\v1\models * Linux: ~/makehuman/v1/models The thumbnail will be recreated the next time the model was loaded and saved again in MakeHuman. Though it is good practice to keep your files at one place, MakeHuman also lets you choose a different folder to load your models. Just click on the "..."-button left of the path. The dialog box just lets you choose a folder and does not show the files in it. Contained files of the newly selected folder will appear in the in the file chooser on the right. If the newly selected folder contains files in subfolders, these files will automatically be loaded by the file chooser, too. On restart, MakeHuman will remember the last folder selected for the load, save and export option. 7df3db6004a7c99cd9cbbd80eaf2b56cd6056d85 1162 1161 2016-08-30T09:28:39Z Aranuvir 17 Aranuvir moved page [[FAQ:I downloaded a third part model. How do I install it?]] to [[FAQ:I downloaded a third party model. How do I install it?]] wikitext text/x-wiki First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. Models usually only consist of two files, of which one is optional: The model as such (*.mhm) and a thumbnail (*.thumb). These files should go into the "models" directory. Example paths would be: * Windows "MY DOCUMENTS"\makehuman\v1\models * Linux ~/makehuman/v1/models The thumbnail will be recreated the next time the model was loaded and saved again in MakeHuman. Though it is good practice to keep your files at one place, MakeHuman also lets you choose a different folder to load your models. Just click on the "..."-button left of the path. The dialog box just lets you choose a folder and does not show the files in it. Contained files of the newly selected folder will appear in the in the file chooser on the right. If the newly selected folder contains files in subfolders, these files will automatically be loaded by the file chooser, too. On restart, MakeHuman will remember the last folder selected for the load, save and export option. afa907c6c3466ce9106a18dbbd1978221bf1e8e3 1161 1160 2016-08-30T09:28:18Z Aranuvir 17 wikitext text/x-wiki First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. Models usually only consist of two files, of which one is optional: The model as such (*.mhm) and a thumbnail (*.thumb). These files should go into the "models" directory. Example paths would be: * Windows "MY DOCUMENTS"\makehuman\v1\models * Linux ~/makehuman/v1/models The thumbnail will be recreated the next time the model was loaded and saved again in MakeHuman. Though it is good practice to keep your files at one place, MakeHuman also lets you choose a different folder to load your models. Just click on the "..."-button left of the path. The dialog box just lets you choose a folder and does not show the files in it. Contained files of the newly selected folder will appear in the in the file chooser on the right. If the newly selected folder contains files in subfolders, these files will automatically be loaded by the file chooser, too. On restart, MakeHuman will remember the last folder selected for the load, save and export option. afa907c6c3466ce9106a18dbbd1978221bf1e8e3 1160 157 2016-08-30T09:27:11Z Aranuvir 17 wikitext text/x-wiki First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. Models usually only consist of two files, of which one is optional: The model as such (*.mhm) and a thumbnail (*.thumb). These files should go into the "models" directory. Example paths would be: * Windows "MY DOCUMENTS"\makehuman\v1\models * Linux ~/makehuman/v1/models The thumbnail will be recreated the next time the model was loaded and saved again in MakeHuman. Though it is good practice to keep your files at one place, MakeHuman also lets you choose a different folder to load your models. Just click on the "..."-button left of the path. The dialog box just lets you choose a folder and does not show the files in it. Contained files of the newly selected will appear in the in the file chooser. If the newly selected folder contains files in subfolders, these files will automatically be loaded by the file chooser, too. On restart, MakeHuman will remember the last folder selected for the load, save and export option. 1804d5fd4997f11613f33c0d1799ca3c0b027cd2 157 2015-07-25T06:40:11Z Joepal 14 Created page with "First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location...." wikitext text/x-wiki First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. Models usually only consist of two files, of which one is optional: The model as such (*.mhm) and a thumbnail (*.thumb). These files should go into the "models" directory. Example paths would be: * Windows "MY DOCUMENTS"\makehuman\v1\models * Linux ~/makehuman/v1/models 526f76f4dc359a39a324195f8310793ee15a4121 FAQ:I downloaded a third party plug-in. How do I install it? 3002 478 1358 1153 2017-03-15T09:19:06Z Aranuvir 17 wikitext text/x-wiki In contrast to all other third party stuff described in the topics above, new plug-ins are '''not''' installed in the user-home folder of MakeHuman, but need to be directly installed in a subfolder called '''"plugins"''' of the program folder. The plugins-folder can be found in the same folder where the MakeHuman executable is located. On Windows it is located where you unzipped MakeHuman, e.g. C:\MakeHuman\plugins. On Debian-like systems, when using a package management, the folder is found at /usr/share/makehuman/plugins. For MacOS X it is Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins. The plug-in names start with a number and can be a single file or multiple files in a folder. Now copy the third party plug-in file or folder to the correct subfolder '''"plugins"''' indicated above. On Unix-like OSs (Linux / MacOS X) make sure the newly installed plug-ins have the same permissions/ownership as the other plug-ins. When installing to /usr/share/makehuman, one will usually need root privileges. And care for case sensitivity. Often it is necessary to install a corresponding plug-in to Blender (e.g. exporter/importer plug-in like MHX2). Please refer to the official Blender documentation on how to install plug-ins in Blender. eec49ee6189e2886e1cd0a89a00210b8cd84675b 1153 1148 2016-08-30T08:55:07Z Aranuvir 17 Aranuvir moved page [[FAQ:I downloaded a third part plug-in. How do I install it?]] to [[FAQ:I downloaded a third party plug-in. How do I install it?]]: typo wikitext text/x-wiki In contrast to all other third party stuff described in the topics above, new plug-ins are '''not''' installed in the user-home folder of MakeHuman, but need to be directly installed in a subfolder called '''"plugins"''' of the program folder. The plugins-folder can be found in the same folder where the MakeHuman executable is located (On Windows where you unzipped MakeHuman. On Debian-like systems, when using a package management, the folder is found at /usr/share/makehuman). The plug-in names start with a number and can be a single file or multiple files in a folder. Now copy the third party plug-in file or folder to the correct subfolder '''"plugins"''' indicated above. On Linux make sure the newly installed plug-ins have the same permissions/ownership as the other plug-ins. When installing to /usr/share/makehuman, one will usually need root privileges. Often it is necessary to install a corresponding plug-in to Blender (e.g. exporter/importer plug-in like MHX2). Please refer to the official Blender documentation on how to install plug-ins in Blender. 3ec3bd6b32a2406b799c5c85ecf319154c4e5122 1148 1147 2016-08-29T11:53:06Z Aranuvir 17 wikitext text/x-wiki In contrast to all other third party stuff described in the topics above, new plug-ins are '''not''' installed in the user-home folder of MakeHuman, but need to be directly installed in a subfolder called '''"plugins"''' of the program folder. The plugins-folder can be found in the same folder where the MakeHuman executable is located (On Windows where you unzipped MakeHuman. On Debian-like systems, when using a package management, the folder is found at /usr/share/makehuman). The plug-in names start with a number and can be a single file or multiple files in a folder. Now copy the third party plug-in file or folder to the correct subfolder '''"plugins"''' indicated above. On Linux make sure the newly installed plug-ins have the same permissions/ownership as the other plug-ins. When installing to /usr/share/makehuman, one will usually need root privileges. Often it is necessary to install a corresponding plug-in to Blender (e.g. exporter/importer plug-in like MHX2). Please refer to the official Blender documentation on how to install plug-ins in Blender. 3ec3bd6b32a2406b799c5c85ecf319154c4e5122 1147 1146 2016-08-29T11:52:44Z Aranuvir 17 wikitext text/x-wiki In contrast to all other third party stuff described in the topics above, new plug-ins are '''not''' installed in the user-home folder of MakeHuman, but need to be directly installed in a subfolder called '''"plugins"''' of the program folder. The plugins-folder can be found in the same folder where the MakeHuman executable is located (On Windows where you unzipped MakeHuman. On Debian-like systems, when using a package management, the folder is found at /usr/share/makehuman). The plug-in names start with a number and can be a single file or multiple files in a folder. Now copy the third party plug-in file or folder to the correct subfolder "'''plugins"''' indicated above. On Linux make sure the newly installed plug-ins have the same permissions/ownership as the other plug-ins. When installing to /usr/share/makehuman, one will usually need root privileges. Often it is necessary to install a corresponding plug-in to Blender (e.g. exporter/importer plug-in like MHX2). Please refer to the official Blender documentation on how to install plug-ins in Blender. 516fe65740e5ef914b56253da28ad27b25711dda 1146 1145 2016-08-29T11:52:07Z Aranuvir 17 wikitext text/x-wiki In contrast to all other third party stuff described in the topics above, new plug-ins are not installed in the user-home folder of MakeHuman, but need to be directly installed in a subfolder called '''"plugins"''' of the program folder. The plugins-folder can be found in the same folder where the MakeHuman executable is located (On Windows where you unzipped MakeHuman. On Debian-like systems, when using a package management, the folder is found at /usr/share/makehuman). The plug-in names start with a number and can be a single file or multiple files in a folder. Now copy the third party plug-in file or folder to the correct subfolder "'''plugins"''' indicated above. On Linux make sure the newly installed plug-ins have the same permissions/ownership as the other plug-ins. When installing to /usr/share/makehuman, one will usually need root privileges. Often it is necessary to install a corresponding plug-in to Blender (e.g. exporter/importer plug-in like MHX2). Please refer to the official Blender documentation on how to install plug-ins in Blender. 8c15718d2c83fa7d1909e7ac0b325060535592d4 1145 2016-08-29T11:47:51Z Aranuvir 17 Created page with "In contrast to all other third party stuff described in the topics above, new plug-ins are not installed in the user-home folder of MakeHuman, but need to be directly installe..." wikitext text/x-wiki In contrast to all other third party stuff described in the topics above, new plug-ins are not installed in the user-home folder of MakeHuman, but need to be directly installed in a subfolder called plugins of the program folder. The plugins-folder can be found in the same folder where the MakeHuman executable is located (On Windows where you unzipped MakeHuman. On Debian-like systems, when using a package management, the folder is found at /usr/share/makehuman). The plug-in names start with a number and can be a single file or multiple files in a folder. Now copy the plug-in file or folder to the plug-in folder indicated above. On Linux make sure the newly installed plug-ins have the same permissions/ownership as the other plug-ins. When installing to /usr/share/makehuman one will usually need root privileges. Often it is necessary to install a corresponding plug-in to Blender (e.g. exporter/importer like MHX2). Please refer to the official Blender documentation on how to install plug-ins in Blender. e4c06482bb0f4477cc94cc806d65ab4fd86e289b FAQ:I downloaded a third party proxy. How do I install it? 3002 483 1176 1175 2016-08-30T13:03:56Z Robbaer 12 wikitext text/x-wiki Whole human proxies or proxymeshes are now called "topologies" on the MakeHuman tabs. Like other third party assets (e.g., clothes, body parts, or targets), topologies are installed in the appropriate data-folder in the home directory. [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Example paths to the topology parent folder would be: * Windows: "Documents\makehuman\v1\data\proxymeshes" on Windows Vista/7/8/10" or MY DOCUMENTS\makehuman\v1\data\proxymeshes" on earlier Windows * Linux: ~/makehuman/v1/data/proxymeshes Best practice is to create a new subfolder within the proxymeshes folder. The name of this folder should be the same as the proxy to be installed. Then copy the three files, e.g. proxy_name.proxy, proxy_name.obj and proxy_name.thumb, to the newly created subfolder. dd843a5d308b10bf696e9ef879409c5f46460f1d 1175 1174 2016-08-30T12:57:27Z Robbaer 12 wikitext text/x-wiki Whole human proxies or proxymeshes are now called "topologies" on the MakeHuman tabs. Like other third party assets (e.g., clothes or target), topologies are installed in the appropriate data-folder in the home directory. [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Example paths would be: * Windows: "MY DOCUMENTS\makehuman\v1\data\proxymeshes" or "Documents\makehuman\v1\data\proxymeshes" on Win 7/8/10 * Linux: ~/makehuman/v1/data/proxymeshes Best practice is to create a new subfolder within the proxymesh folder. The name of this folder should be the same as the proxy to be installed. Then copy the three files, e.g. proxy_name.proxy, proxy_name.obj and proxy_name.thumb, to the newly created folder. af10b6d9154474ead8bf5daf216ad564e84b9396 1174 1170 2016-08-30T12:51:03Z Robbaer 12 wikitext text/x-wiki Like other third party stuff like clothes or target, proxies are installed in the appropriate data-folder in the home directory. [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Example paths would be: * Windows: "MY DOCUMENTS"\makehuman\v1\data\proxymeshes or Documents\makehuman\v1 on Win 7/8/10 * Linux: ~/makehuman/v1/data/proxymeshes Best practice is to create a new subfolder within the proxymesh folder. The name of this folder should be the same as the proxy to be installed. Then copy the three files, e.g. proxy_name.proxy, proxy_name.obj and proxy_name.thumb, to the newly created folder. 9c1e71e663972731c15ca7ea3bb0ca640b62a47a 1170 2016-08-30T12:08:31Z Aranuvir 17 Created page with "Like other third party stuff like clothes or target, proxies are installed in the appropriate data-folder in the home directory. FAQ:Where are my MakeHuman files found (wher..." wikitext text/x-wiki Like other third party stuff like clothes or target, proxies are installed in the appropriate data-folder in the home directory. [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Example paths would be: * Windows: "MY DOCUMENTS"\makehuman\v1\data\proxymeshes * Linux: ~/makehuman/v1/data/proxymeshes Best practice is to create a new subfolder within the proxymesh folder. The name of this folder should be the same as the proxy to be installed. Then copy the three files, e.g. proxy_name.proxy, proxy_name.obj and proxy_name.thumb, to the newly created folder. 46e9da05859d5c742c2f5f53b7c16762fd4d5c09 FAQ:I downloaded a third party skin. How do I install it? 3002 540 1446 1445 2018-02-14T09:20:11Z Joepal 14 wikitext text/x-wiki Like other third party assets (e.g., clothes, body parts, or targets), skins are installed in the appropriate data-folder in the home directory. [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Example paths to the skin parent folder would be: * Windows: "Documents\makehuman\v1\data\skins" on Windows Vista/7/8/10" or MY DOCUMENTS\makehuman\v1\data\skins" on earlier Windows * Linux: ~/makehuman/v1/data/skins Best practice is to create a new subfolder within the skins folder. The name of this folder should be the same as the skin to be installed. Then copy the relevant files, e.g. for example skin_name.jpg, skin_name.mhmat and skin_name.thumb, to the newly created subfolder. (Note that there might be more files, for example a normal map etc) If downloading from the web rather than using the [https://github.com/makehumancommunity/community-plugins-assetdownload asset downloader plugin], also see [[FAQ: I can't download from the user repos, all files are saved as HTML]]. 145bf3b196bed99fd5c6384d7512b6ef22cd7001 1445 2018-02-14T09:18:41Z Joepal 14 Created page with "Like other third party assets (e.g., clothes, body parts, or targets), skins are installed in the appropriate data-folder in the home directory. FAQ:Where are my MakeHuman f..." wikitext text/x-wiki Like other third party assets (e.g., clothes, body parts, or targets), skins are installed in the appropriate data-folder in the home directory. [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Example paths to the skin parent folder would be: * Windows: "Documents\makehuman\v1\data\skins" on Windows Vista/7/8/10" or MY DOCUMENTS\makehuman\v1\data\skins" on earlier Windows * Linux: ~/makehuman/v1/data/skins Best practice is to create a new subfolder within the skins folder. The name of this folder should be the same as the skin to be installed. Then copy the relevant files, e.g. for example skin_name.proxy, skin_name.obj and skin_name.thumb, to the newly created subfolder. If downloading from the web rather than using the [https://github.com/makehumancommunity/community-plugins-assetdownload asset downloader plugin], also see [[FAQ: I can't download from the user repos, all files are saved as HTML]]. 4a547c9f33e29199b663cb54794e2d8548b0fcef FAQ:I downloaded a third party target. How do I install it? 3002 60 1159 1156 2016-08-30T09:10:50Z Aranuvir 17 wikitext text/x-wiki This is a mini tutorial on downloading and installing targets: {{#ev:youtube|lQb5JV4-wUc}} First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. Targets usually only consist of one single file. This file should go into the "custom" directory under "data". Example paths would be: * Windows "MY DOCUMENTS"\makehuman\v1\data\custom * Linux ~/makehuman/v1/data/custom This is how it might look on windows when done correctly: [[File:Savetarget.png]] f3537dde4b275bdf229f37d86af2aa6b6cdd1bc1 1156 155 2016-08-30T09:09:26Z Aranuvir 17 Aranuvir moved page [[FAQ:I downloaded a third part target. How do I install it?]] to [[FAQ:I downloaded a third party target. How do I install it?]]: typo wikitext text/x-wiki TL;DR, a this is a mini tutorial on downloading and installing targets: {{#ev:youtube|lQb5JV4-wUc}} First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. Targets usually only consist of one single file. This file should go into the "custom" directory under "data". Example paths would be: * Windows "MY DOCUMENTS"\makehuman\v1\data\custom * Linux ~/makehuman/v1/data/custom This is how it might look on windows when done correctly: [[File:Savetarget.png]] 82f8e81db47e7fce3c1443a276c276f1d1483631 155 152 2015-07-25T06:37:59Z Joepal 14 wikitext text/x-wiki TL;DR, a this is a mini tutorial on downloading and installing targets: {{#ev:youtube|lQb5JV4-wUc}} First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. Targets usually only consist of one single file. This file should go into the "custom" directory under "data". Example paths would be: * Windows "MY DOCUMENTS"\makehuman\v1\data\custom * Linux ~/makehuman/v1/data/custom This is how it might look on windows when done correctly: [[File:Savetarget.png]] 82f8e81db47e7fce3c1443a276c276f1d1483631 152 2015-07-25T06:33:38Z Joepal 14 Created page with "TL;DR, a this is a mini tutorial on downloading and installing targets: {{#ev:youtube|lQb5JV4-wUc}} First figure out where your makehuman files are, see FAQ:Where are my M..." wikitext text/x-wiki TL;DR, a this is a mini tutorial on downloading and installing targets: {{#ev:youtube|lQb5JV4-wUc}} First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. Targets usually only consist of one single file. This file should go into the "custom" directory under "data". Example paths would be: * Windows "MY DOCUMENTS"\makehuman\v1\data\custom * Linux ~/makehuman/v1/data/custom a47ca903c79bbed73f01c7c840656ef19d63ca63 FAQ:I downloaded third part clothes. How do I install them? 3002 482 1166 2016-08-30T09:30:50Z Aranuvir 17 Aranuvir moved page [[FAQ:I downloaded third part clothes. How do I install them?]] to [[FAQ:I downloaded third party clothes. How do I install them?]]: typo wikitext text/x-wiki #REDIRECT [[FAQ:I downloaded third party clothes. How do I install them?]] 863182821d194d3299db99ef539a30628011531e FAQ:I downloaded third party clothes. How do I install them? 3002 57 1165 1150 2016-08-30T09:30:40Z Aranuvir 17 Aranuvir moved page [[FAQ:I downloaded third part clothes. How do I install them?]] to [[FAQ:I downloaded third party clothes. How do I install them?]]: typo wikitext text/x-wiki This is a mini tutorial on downloading and installing clothes: {{#ev:youtube|lQb5JV4-wUc}} First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. If you downloaded clothes, you probably got a set of separate files. For example, if you downloaded the "Nose piercing" example files, you got: * nosepierce.mhclo * nosepierce.mhmat * nosepierce.obj * nosepierce.thumb These should all be placed in new directory under data/clothes amongst your makehuman files. So navigate to the clothes directory (on windows, for example "MY DOCUMENTS"\MakeHuman\v1\data\clothes) and create a new directory "nosepierce". [[File:Installclothes1.png]] Then copy the files there. [[File:Installclothes2.png]] == Extra materials == If you got more than one material for the clothing, create a new subdirectory "materials" inside the new directory you created for the clothes, and put all materials (.mhmat and textures) inside that directory. dac4a1e60901503bfc313218e61299d07963f749 1150 151 2016-08-30T08:49:36Z Aranuvir 17 wikitext text/x-wiki This is a mini tutorial on downloading and installing clothes: {{#ev:youtube|lQb5JV4-wUc}} First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. If you downloaded clothes, you probably got a set of separate files. For example, if you downloaded the "Nose piercing" example files, you got: * nosepierce.mhclo * nosepierce.mhmat * nosepierce.obj * nosepierce.thumb These should all be placed in new directory under data/clothes amongst your makehuman files. So navigate to the clothes directory (on windows, for example "MY DOCUMENTS"\MakeHuman\v1\data\clothes) and create a new directory "nosepierce". [[File:Installclothes1.png]] Then copy the files there. [[File:Installclothes2.png]] == Extra materials == If you got more than one material for the clothing, create a new subdirectory "materials" inside the new directory you created for the clothes, and put all materials (.mhmat and textures) inside that directory. dac4a1e60901503bfc313218e61299d07963f749 151 149 2015-07-25T06:31:19Z Joepal 14 wikitext text/x-wiki TL;DR, a this is a mini tutorial on downloading and installing clothes: {{#ev:youtube|lQb5JV4-wUc}} First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. If you downloaded clothes, you probably got a set of separate files. For example, if you downloaded the "Nose piercing" example files, you got: * nosepierce.mhclo * nosepierce.mhmat * nosepierce.obj * nosepierce.thumb These should all be placed in new directory under data/clothes amongst your makehuman files. So navigate to the clothes directory (on windows, for example "MY DOCUMENTS"\MakeHuman\v1\data\clothes) and create a new directory "nosepierce". [[File:Installclothes1.png]] Then copy the files there. [[File:Installclothes2.png]] == Extra materials == If you got more than one material for the clothing, create a new subdirectory "materials" inside the new directory you created for the clothes, and put all materials (.mhmat and textures) inside that directory. 079e24e748f4a5b2fa363deb9944e1de05ef16a3 149 143 2015-07-25T06:30:16Z Joepal 14 wikitext text/x-wiki TL;DR, a this is a mini tutorial on downloading and installing clothes: {{#ev:youtube:lQb5JV4-wUc}} First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. If you downloaded clothes, you probably got a set of separate files. For example, if you downloaded the "Nose piercing" example files, you got: * nosepierce.mhclo * nosepierce.mhmat * nosepierce.obj * nosepierce.thumb These should all be placed in new directory under data/clothes amongst your makehuman files. So navigate to the clothes directory (on windows, for example "MY DOCUMENTS"\MakeHuman\v1\data\clothes) and create a new directory "nosepierce". [[File:Installclothes1.png]] Then copy the files there. [[File:Installclothes2.png]] == Extra materials == If you got more than one material for the clothing, create a new subdirectory "materials" inside the new directory you created for the clothes, and put all materials (.mhmat and textures) inside that directory. 052ed091e78a9931705aaa2233745a3d6984ad69 143 142 2015-07-18T08:04:41Z Joepal 14 wikitext text/x-wiki First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. If you downloaded clothes, you probably got a set of separate files. For example, if you downloaded the "Nose piercing" example files, you got: * nosepierce.mhclo * nosepierce.mhmat * nosepierce.obj * nosepierce.thumb These should all be placed in new directory under data/clothes amongst your makehuman files. So navigate to the clothes directory (on windows, for example "MY DOCUMENTS"\MakeHuman\v1\data\clothes) and create a new directory "nosepierce". [[File:Installclothes1.png]] Then copy the files there. [[File:Installclothes2.png]] == Extra materials == If you got more than one material for the clothing, create a new subdirectory "materials" inside the new directory you created for the clothes, and put all materials (.mhmat and textures) inside that directory. 73587bcf8c3cef4c834364818604c96411e55c23 142 141 2015-07-18T08:02:22Z Joepal 14 wikitext text/x-wiki First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. If you downloaded clothes, you probably got a set of separate files. For example, if you downloaded the "Nose piercing" example files, you got: * nosepierce.mhclo * nosepierce.mhmat * nosepierce.obj * nosepierce.thumb These should all be placed in new directory under data/clothes amongst your makehuman files. So navigate to the clothes directory (on windows, for example "MY DOCUMENTS"\MakeHuman\v1\data\clothes) and create a new directory "nosepierce". [[File:Installclothes1.png]] Then copy the files there. [[File:Installclothes2.png]] 536f3669966dbe67b6fcbd8bc38f8ebefaf4a9d1 141 138 2015-07-18T08:02:08Z Joepal 14 wikitext text/x-wiki First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. If you downloaded clothes, you probably got a set of separate files. For example, if you downloaded the "Nose piercing" example files, you got: * nosepierce.mhclo * nosepierce.mhmat * nosepierce.obj * nosepierce.thumb These should all be placed in new directory under data/clothes amongst your makehuman files. So navigate to the clothes directory (on windows, for example "MY DOCUMENTS"\MakeHuman\v1\data\clothes) and create a new directory "nosepierce". [[File:Installclothes1.png]] Then copy the files there. [[File:Installclothes1.png]] a514b93757e780fca9e7b3fbfa580f636c383296 138 2015-07-18T07:58:16Z Joepal 14 Created page with "First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location...." wikitext text/x-wiki First figure out where your makehuman files are, see [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]]. Paths listed here are relative to that location. If you downloaded clothes, you probably got a set of separate files. For example, if you downloaded the "Nose piercing" example files, you got: * nosepierce.mhclo * nosepierce.mhmat * nosepierce.obj * nosepierce.thumb These should all be placed in new directory under data/clothes amongst your makehuman files. So navigate to the clothes directory (on windows, for example "MY DOCUMENTS"\MakeHuman\v1\data\clothes) and create a new directory "nosepierce". Then copy the files there. b6bf9de7af7abb8b4d77bfddc90cc05e9a9a8c5c FAQ:I get CONNECTION REFUSED in MPFB 3002 669 1925 2020-11-06T11:19:47Z Joepal 14 Created page with "For the import from MakeHuman to work, you also need to enable the socket server on the community->socket tab in MH. For security reasons this is disabled per default." wikitext text/x-wiki For the import from MakeHuman to work, you also need to enable the socket server on the community->socket tab in MH. For security reasons this is disabled per default. 9b2f1c2802c07ceddb31923cb5a4c96ce110d962 FAQ:I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman? 3002 562 1481 1480 2018-09-18T07:51:05Z Joepal 14 wikitext text/x-wiki The question about consulting is one that keeps popping up. Unfortunately the answer we keep giving regarding commercial proposals is this: The MakeHuman project is a volunteer effort with no commercial aspects. The project doesn't even have a budget. The developer team consist solely of people who have full time jobs, making it difficult to take on more work. Our best suggestion at this time is to present the idea on the forums and ask for feedback, and maybe see if a forum user might be interested in joining in on the effort. We will of course answer any questions to the best of our abilities there. This is not a reflection on your business idea (whatever it might be), nor that we're hostile against commercial projects surrounding MakeHuman. The practical circumstances just prevent us from engaging in such projects. This said, there are also legal reasons for why paying someone to do development work based on MakeHuman code might be tricky. As MakeHuman is licensed [https://www.gnu.org/licenses/agpl-3.0.en.html AGPL], all code linked to it or derived from it will also become AGPL. This is likely to be in contradiction to paid development, where the one paying for the code would have a reasonable interest in keeping that code to themselves. This might not be entirely impossible to work with, but it is still a hurdle that will make a commercial project difficult to navigate in. de8d8c0fea879ffe741b2500a6ef2e014cf1f62a 1480 2018-09-18T07:45:27Z Joepal 14 Created page with "The question about consulting is one that keeps popping up. Unfortunately the answer we keep giving regarding commercial proposals is this: The MakeHuman project is a volunte..." wikitext text/x-wiki The question about consulting is one that keeps popping up. Unfortunately the answer we keep giving regarding commercial proposals is this: The MakeHuman project is a volunteer effort with no commercial aspects. The project doesn't even have a budget. The developer team consist solely of people who have full time jobs, making it difficult to take on more work. Our best suggestion at this time is to present the idea on the forums and ask for feedback, and maybe see if a forum user might be interested in joining in on the effort. We will of course answer any questions to the best of our abilities there. This is not a reflection on your business idea (whatever it might be), nor that we're hostile against commercial projects surrounding MakeHuman. The practical circumstances just prevent us from engaging in such projects. 2d2ef3dffceb3ebd3831d0f1a558ac06e2948447 FAQ:I have a problem with makehuman. How do I report it? 3002 571 1602 1568 2019-09-15T15:54:55Z Joepal 14 /* Where to not ask for support */ wikitext text/x-wiki The MakeHuman project has a multitude of channels where content is published. Most of these are not monitored for comments. The channels which ''are'' monitored are: * The forum * The bugtracker(s) Thus, if you want your report to be seen by someone who is able to answer, your best bet is using one of these. If you have a support request, your best bet is [http://www.makehumancommunity.org/forum/ the forum]. If you have a bug report, take a look at [http://www.makehumancommunity.org/content/bugtracker.html the bug tracker(s)] == What to include in a bug report or support request == Unless it is obvious from the context or otherwise irrelevant, it will generally make things easier if you provide this information: * Exactly which version of makehuman are you using? As in, which binary did you download and from where? * What operating system are you using? Preferably with the OS version, for example "windows 10 64-bit" or "ubuntu 18.04" * What graphics card are you using? * If there was a crash, include logs (see [[FAQ:How_to_provide_a_makehuman_log_for_a_good_bug_report%3F|How to provide a makehuman log]]) == Where to ''not'' ask for support == The channels which are specifically ''not'' monitored are: * Youtube comments * Facebook comments * Blendernation * Blenderartists Thus, if you post something there, you should not be surprised if you get no answer. Occasionally someone might see something posted here and answer it, but this is on a random basis. b2709393d682c2110aa81f0baddf84691a85a54e 1568 1567 2019-03-07T12:50:17Z Joepal 14 wikitext text/x-wiki The MakeHuman project has a multitude of channels where content is published. Most of these are not monitored for comments. The channels which ''are'' monitored are: * The forum * The bugtracker(s) Thus, if you want your report to be seen by someone who is able to answer, your best bet is using one of these. If you have a support request, your best bet is [http://www.makehumancommunity.org/forum/ the forum]. If you have a bug report, take a look at [http://www.makehumancommunity.org/content/bugtracker.html the bug tracker(s)] == What to include in a bug report or support request == Unless it is obvious from the context or otherwise irrelevant, it will generally make things easier if you provide this information: * Exactly which version of makehuman are you using? As in, which binary did you download and from where? * What operating system are you using? Preferably with the OS version, for example "windows 10 64-bit" or "ubuntu 18.04" * What graphics card are you using? * If there was a crash, include logs (see [[FAQ:How_to_provide_a_makehuman_log_for_a_good_bug_report%3F|How to provide a makehuman log]]) == Where to ''not'' ask for support == The channels which are specifically ''not'' monitored are: * Youtube comments * Facebook comments * Blendernation * Blenderartists Thus, if you post something here, you should not be surprised if you get no answer. Occasionally someone might see something posted here and answer it, but this is on a random basis. 4c80a261cd58e6a322a11e817ea12dce013f48b0 1567 1566 2019-03-07T12:43:11Z Joepal 14 wikitext text/x-wiki The MakeHuman project has a multitude of channels where content is published. Most of these are not monitored for comments. The channels which ''are'' monitored are: * The forum * The bugtracker(s) Thus, if you want your report to be seen by someone who is able to answer, your best bet is using one of these. If you have a support request, your best bet is [http://www.makehumancommunity.org/forum/ the forum]. If you have a bug report, take a look at [http://www.makehumancommunity.org/content/bugtracker.html the bug tracker(s)] == Where to ''not'' ask for support == The channels which are specifically ''not'' monitored are: * Youtube comments * Facebook comments * Blendernation * Blenderartists Thus, if you post something here, you should not be surprised if you get no answer. Occasionally someone might see something posted here and answer it, but this is on a random basis. 7dd7b23d0f456d35c371e584df1ea50678709b24 1566 2019-03-07T12:42:28Z Joepal 14 Created page with "The MakeHuman project has a multitude of channels where content is published. Most of these are not monitored for comments. The channels which ''are'' monitored are: * The..." wikitext text/x-wiki The MakeHuman project has a multitude of channels where content is published. Most of these are not monitored for comments. The channels which ''are'' monitored are: * The forum * The bugtracker(s) Thus, if you want your report to be seen who is able to answer, your best bet is writing using one of these. If you have a support request, your best bet is [http://www.makehumancommunity.org/forum/ the forum]. If you have a bug report, take a look at [http://www.makehumancommunity.org/content/bugtracker.html the bug tracker(s)] == Where to ''not'' ask for support == The channels which are specifically ''not'' monitored are: * Youtube comments * Facebook comments * Blendernation * Blenderartists Thus, if you post something here, you should not be surprised if you get no answer. Occasionally someone might see something posted here and answer it, but this is on a random basis. c3cccbe6b93a65807b2a84aaa085f9302116edc5 FAQ:I have made a code patch. Where do I send it? 3002 42 101 2015-07-10T10:00:21Z Joepal 14 Created page with "Go to http://bugtracker.makehumancommunity.org. You can log in with your forum account. Make a new issue where you explain the purpose of the patch, and attach the patch as a..." wikitext text/x-wiki Go to http://bugtracker.makehumancommunity.org. You can log in with your forum account. Make a new issue where you explain the purpose of the patch, and attach the patch as a file to your post. 412a68932ef20830f8fdf232b1bf6b055c4fc1b0 FAQ:I have made a new asset for MakeHuman. How can I contribute it? 3002 48 662 111 2016-05-14T08:37:31Z Joepal 14 wikitext text/x-wiki Starting summer 2015, we are opening up contribution areas for user-created content. These areas can be found here: http://www.makehumancommunity.org/content/user_contributed_assets.html If you have an asset that you want to contribute, simply click the link, find the right section and follow the instructions. For other assets which do not fit anywhere in the areas, your best bet is to post a zip on the forums. Or wait a bit until we open a relevant repository for it. da65b9fc00853d4a1488e886e0567d10a60e9b0a 111 2015-07-10T10:22:16Z Joepal 14 Created page with "Starting summer 2015, we are opening up contribution areas for user-created content. As of now (2015-07-10), there are beta versions of repositories for models and targets, se..." wikitext text/x-wiki Starting summer 2015, we are opening up contribution areas for user-created content. As of now (2015-07-10), there are beta versions of repositories for models and targets, see: * http://www.makehumancommunity.org/targets.html * http://www.makehumancommunity.org/models.html If you have a model or a target that you want to contribute, simply click the link and follow the instructions. For other assets (skin textures, clothes, proxies...) your best bet is to post a zip on the forums. Or wait a bit until we open a relevant repository for it. 8c534ef33eeaf8a4fa47c79c476dcbaba6921f2b FAQ:I have made a tutorial. How do I contribute it? 3002 67 170 169 2015-07-25T06:59:24Z Joepal 14 wikitext text/x-wiki If it is a video tutorial, simply paste it in the appropriate section under [[Video:Index]]. Any user with a forum login can also login on the wiki and edit the pages there. To insert a a video, use the special markup that looks like this <nowiki>{{#ev:youtube|X13k7H3dNHo}}</nowiki> The parts are "#ev" (which you always write), "youtube", which can be "vimeo" or a number of other video services, and "X13k7H3dNHo" which is the ID on the video on the service (for vimeo this is a number). You can usually find this in the address field of the browser when viewing the video. If it is a text tutorial, convert it to wiki by editing the appropriate page under [[Documentation:Index]]. 3b37c09eb04923e58a3687ed3fced7b27054c81c 169 2015-07-25T06:58:55Z Joepal 14 Created page with "If it is a video tutorial, simply paste it in the appropriate section under [[Video:Index]]. Any user with a forum login can also login on the wiki and edit the pages there...." wikitext text/x-wiki If it is a video tutorial, simply paste it in the appropriate section under [[Video:Index]]. Any user with a forum login can also login on the wiki and edit the pages there. To insert a a video, use the special markup that looks like this <nowiki>{{#ev:youtube|X13k7H3dNHo}}</nowiki> The parts are "#ev" (which you always write) "youtube", which can be "vimeo" or a number of other video services, and "X13k7H3dNHo" which is the ID on the video on the service (for vimeo this is a number). You can usually find this in the address field of the browser when viewing the video. If it is a text tutorial, convert it to wiki by editing the appropriate page under [[Documentation:Index]]. 4e87af7d5e7463d285c5c033ab3726eb3a32ce80 FAQ:I have photos of a real person. Can I use those for making a skin? 3002 392 1007 2016-06-08T08:25:41Z Joepal 14 Created page with "Yes, you can use projection texture painting in blender. VScorpianC has made an elaborate and user friendly video (as usual) about the topic: {{#ev:youtube|1DD5VvyO7uI}} I..." wikitext text/x-wiki Yes, you can use projection texture painting in blender. VScorpianC has made an elaborate and user friendly video (as usual) about the topic: {{#ev:youtube|1DD5VvyO7uI}} If you already know the basics of UV layout and normal texture painting, you can skip ahead to about 13:00 where the interesting parts about projection painting starts. b60a03737a4800927e42762b39300ae1911dc8b5 FAQ:I want an easy code task to get to learn the makehuman code. Where should I start? 3002 520 1389 2017-05-30T11:40:37Z Joepal 14 Created page with "In general, the easiest way to start coding is to work with plugins rather than changing the MH core code. To make plugin programming easier, there is an abstraction layer c..." wikitext text/x-wiki In general, the easiest way to start coding is to work with plugins rather than changing the MH core code. To make plugin programming easier, there is an abstraction layer called MHAPI, see https://github.com/makehumancommunity/community-plugins-mhapi One example of a plugin based on MHAPI is the asset downloader, see https://github.com/makehumancommunity/community-plugins-assetdownload 27f0828753a439707f1edc9638027f8d1ab0c20a FAQ:I want to contribute code in a more structured manner. What is the recommended procedure? 3002 41 100 2015-07-10T09:59:28Z Joepal 14 Created page with "If you intend to make more code changes than a minor fix (which can simply be posted as a patch on http://bugtracker.makehumancommunity.org), it is recommended you follow the..." wikitext text/x-wiki If you intend to make more code changes than a minor fix (which can simply be posted as a patch on http://bugtracker.makehumancommunity.org), it is recommended you follow the process described in BROKEN LINK AFTER MOVE TO WIKI, UPDATE WITH CORRECT LINK e89666f4a7db40aa50b9bc58e7c7c2c80e1b1e81 FAQ:I want to extend MakeHuman functionality. Where should I start? 3002 539 1442 2017-12-11T13:43:02Z Joepal 14 Created page with "In almost all conceivable scenarios, you'll want to write a plugin rather than change the MakeHuman code as such. While writing a plugin isn't trivial either, it is far more..." wikitext text/x-wiki In almost all conceivable scenarios, you'll want to write a plugin rather than change the MakeHuman code as such. While writing a plugin isn't trivial either, it is far more easy than digging into the MH core code. A good start for plugins is by building on MHAPI, which can be found here: https://github.com/makehumancommunity/community-plugins-mhapi An example of a plugin using MHAPI is the asset downloader, which is available here: https://github.com/makehumancommunity/community-plugins-assetdownload 7bbcb9b86fbb7d7a9a6d502ebd9729bb2c24cca1 FAQ:I want to help write documentation. How do I do that? 3002 68 171 2015-07-25T07:01:58Z Joepal 14 Created page with "Simply edit the appropriate page under [[Documentation:Index]]. Any user with a forum login can login on the wiki and edit the pages there. Changes can always be reverted by..." wikitext text/x-wiki Simply edit the appropriate page under [[Documentation:Index]]. Any user with a forum login can login on the wiki and edit the pages there. Changes can always be reverted by an admin, so there's no risk that you break anything beyond recovery. e964bf5cc518b88732014a63957cf2b7c0ac154d FAQ:I want to make a code fork of MakeHuman, but I hate mercurial and/or BitBucket 3002 389 999 2016-05-31T15:19:34Z Joepal 14 Created page with "Source snapshots of stable releases are mirrored to git on github. See https://github.com/makehumancommunity/makehuman_release. If you want to follow the development branch (..." wikitext text/x-wiki Source snapshots of stable releases are mirrored to git on github. See https://github.com/makehumancommunity/makehuman_release. If you want to follow the development branch (what becomes nightly builds), you'll have to put up with the current mercurial repo though. Or download a source snapshot and commit it to a new repo of your own. c72038ad9fcc98c99e08f4dfd7d4b0555b80e8be FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket 3002 390 1002 1001 2016-05-31T15:22:04Z Joepal 14 wikitext text/x-wiki Source snapshots of stable releases are mirrored to git on github. See https://github.com/makehumancommunity/makehuman_release. If you want to follow the development branch (what becomes nightly builds) you will have to put up with the mercurial repo though. Or download source zips and commit them to a repo of your own. eab0da9eb52c6f81f7954307da2744f32b65d620 1001 2016-05-31T15:21:17Z Joepal 14 Created page with "Source snapshots of stable releases are mirrored to git on github. See https://github.com/makehumancommunity/makehuman_release. If you want to follow the development branch..." wikitext text/x-wiki Source snapshots of stable releases are mirrored to git on github. See https://github.com/makehumancommunity/makehuman_release. If you want to follow the development branch (what becomes nightly builds) you will have to put up with the mercurial repo though. Or download a source zip and commit it to a repo of your own. 9b64afef22fff41594d599cf222b6004da624309 FAQ:Index 3002 10 2112 1922 2021-05-19T05:26:14Z Joepal 14 /* Top questions */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: What changed regarding the license in 2020?]] * [[FAQ: MakeHuman does not start]] * [[FAQ: The interface looks broken ]] * [[FAQ: Scrolling does not work]] * [[FAQ: I have a problem with makehuman. How do I report it?]] * [[FAQ: Is there a mac build?]] * [[FAQ: I didn't get any forum activation link]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] * [[FAQ: How can I download assets for MakeHuman?]] * [[FAQ: How can I use the asset downloader to download everything by everyone?]] == Makehuman and Blender == * [[FAQ: What is MPFB (MakeHuman Plugin For Blender)?]] * [[FAQ: I get CONNECTION REFUSED in MPFB]] * [[FAQ: How do I export assets from MakeHuman to Blender?]] * [[FAQ: How do I install a plugin in Blender 2.80?]] * [[FAQ: How do I upgrade a plugin in Blender 2.80?]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: Where can I get MHX2 for Blender 2.80]] * [[FAQ: What happened to MakeWalk?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] * [[FAQ: I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman?]] * [[FAQ: Does "alpha" mean it is dangerous to use?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] 51a379522aeb3f8f777c4eb4eb298631bfb070fb 1922 1908 2020-11-06T11:17:53Z Joepal 14 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: What changed regarding the license in 2020?]] * [[FAQ: MakeHuman does not start]] * [[FAQ: The interface looks broken ]] * [[FAQ: Scrolling does not work]] * [[FAQ: I have a problem with makehuman. How do I report it?]] * [[FAQ: Is there a mac build?]] * [[FAQ: I didn't get any forum activation link]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] * [[FAQ: How can I use the asset downloader to download everything by everyone?]] == Makehuman and Blender == * [[FAQ: What is MPFB (MakeHuman Plugin For Blender)?]] * [[FAQ: I get CONNECTION REFUSED in MPFB]] * [[FAQ: How do I export assets from MakeHuman to Blender?]] * [[FAQ: How do I install a plugin in Blender 2.80?]] * [[FAQ: How do I upgrade a plugin in Blender 2.80?]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: Where can I get MHX2 for Blender 2.80]] * [[FAQ: What happened to MakeWalk?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] * [[FAQ: I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman?]] * [[FAQ: Does "alpha" mean it is dangerous to use?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] 230967027e8d930978116351bce9173180b493d0 1908 1888 2020-10-25T13:29:59Z Joepal 14 /* Top questions */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: What changed regarding the license in 2020?]] * [[FAQ: MakeHuman does not start]] * [[FAQ: The interface looks broken ]] * [[FAQ: Scrolling does not work]] * [[FAQ: I have a problem with makehuman. How do I report it?]] * [[FAQ: Is there a mac build?]] * [[FAQ: I didn't get any forum activation link]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] * [[FAQ: How can I use the asset downloader to download everything by everyone?]] == Makehuman and Blender == * [[FAQ: How do I export assets from MakeHuman to Blender?]] * [[FAQ: What is MPFB (MakeHuman Plugin For Blender)?]] * [[FAQ: How do I install a plugin in Blender 2.80?]] * [[FAQ: How do I upgrade a plugin in Blender 2.80?]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: Where can I get MHX2 for Blender 2.80]] * [[FAQ: What happened to MakeWalk?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] * [[FAQ: I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman?]] * [[FAQ: Does "alpha" mean it is dangerous to use?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] 1940aeca247b3b6bdabcaf5a8f0384e7f3480151 1888 1818 2020-10-25T12:03:28Z Joepal 14 /* Top questions */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: What changed regarding the license in 2020?]] * [[FAQ: MakeHuman does not start]] * [[FAQ: The interface looks broken ]] * [[FAQ: I have a problem with makehuman. How do I report it?]] * [[FAQ: Is there a mac build?]] * [[FAQ: I didn't get any forum activation link]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] * [[FAQ: How can I use the asset downloader to download everything by everyone?]] == Makehuman and Blender == * [[FAQ: How do I export assets from MakeHuman to Blender?]] * [[FAQ: What is MPFB (MakeHuman Plugin For Blender)?]] * [[FAQ: How do I install a plugin in Blender 2.80?]] * [[FAQ: How do I upgrade a plugin in Blender 2.80?]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: Where can I get MHX2 for Blender 2.80]] * [[FAQ: What happened to MakeWalk?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] * [[FAQ: I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman?]] * [[FAQ: Does "alpha" mean it is dangerous to use?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] 17819401bb627239bf5c63f6dcb09cc113eb74b9 1818 1752 2020-07-23T12:48:28Z Joepal 14 /* Top questions */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: MakeHuman does not start]] * [[FAQ: The interface looks broken ]] * [[FAQ: I have a problem with makehuman. How do I report it?]] * [[FAQ: Is there a mac build?]] * [[FAQ: I didn't get any forum activation link]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] * [[FAQ: How can I use the asset downloader to download everything by everyone?]] == Makehuman and Blender == * [[FAQ: How do I export assets from MakeHuman to Blender?]] * [[FAQ: What is MPFB (MakeHuman Plugin For Blender)?]] * [[FAQ: How do I install a plugin in Blender 2.80?]] * [[FAQ: How do I upgrade a plugin in Blender 2.80?]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: Where can I get MHX2 for Blender 2.80]] * [[FAQ: What happened to MakeWalk?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] * [[FAQ: I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman?]] * [[FAQ: Does "alpha" mean it is dangerous to use?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] 352d1acbf7ce2427d4031aee6c204bccf4e988e5 1752 1617 2020-04-10T09:30:47Z Joepal 14 /* Makehuman and Blender */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: MakeHuman does not start]] * [[FAQ: I have a problem with makehuman. How do I report it?]] * [[FAQ: Is there a mac build?]] * [[FAQ: I didn't get any forum activation link]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] * [[FAQ: How can I use the asset downloader to download everything by everyone?]] == Makehuman and Blender == * [[FAQ: How do I export assets from MakeHuman to Blender?]] * [[FAQ: What is MPFB (MakeHuman Plugin For Blender)?]] * [[FAQ: How do I install a plugin in Blender 2.80?]] * [[FAQ: How do I upgrade a plugin in Blender 2.80?]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: Where can I get MHX2 for Blender 2.80]] * [[FAQ: What happened to MakeWalk?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] * [[FAQ: I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman?]] * [[FAQ: Does "alpha" mean it is dangerous to use?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] efaf4ce71d9324f6d1313471d7143eab323c1283 1617 1613 2019-11-03T13:22:12Z Joepal 14 /* Top questions */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: MakeHuman does not start]] * [[FAQ: I have a problem with makehuman. How do I report it?]] * [[FAQ: Is there a mac build?]] * [[FAQ: I didn't get any forum activation link]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] * [[FAQ: How can I use the asset downloader to download everything by everyone?]] == Makehuman and Blender == * [[FAQ: How do I export assets from MakeHuman to Blender?]] * [[FAQ: What is MPFB (MakeHuman Plugin For Blender)?]] * [[FAQ: How do I install a plugin in Blender 2.80?]] * [[FAQ: How do I upgrade a plugin in Blender 2.80?]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: Where can I get MHX2 for Blender 2.80]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] * [[FAQ: I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman?]] * [[FAQ: Does "alpha" mean it is dangerous to use?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] 6e641ba5258782d3d56f59e9d539ef5dfaf6da12 1613 1611 2019-09-27T08:24:40Z Joepal 14 /* Makehuman and blender */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: MakeHuman does not start]] * [[FAQ: I have a problem with makehuman. How do I report it?]] * [[FAQ: I didn't get any forum activation link]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] * [[FAQ: How can I use the asset downloader to download everything by everyone?]] == Makehuman and Blender == * [[FAQ: How do I export assets from MakeHuman to Blender?]] * [[FAQ: What is MPFB (MakeHuman Plugin For Blender)?]] * [[FAQ: How do I install a plugin in Blender 2.80?]] * [[FAQ: How do I upgrade a plugin in Blender 2.80?]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: Where can I get MHX2 for Blender 2.80]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] * [[FAQ: I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman?]] * [[FAQ: Does "alpha" mean it is dangerous to use?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] 260a9dc20452935ea6777ca5b45103707b09414d 1611 1606 2019-09-27T08:22:03Z Joepal 14 /* Makehuman and blender */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: MakeHuman does not start]] * [[FAQ: I have a problem with makehuman. How do I report it?]] * [[FAQ: I didn't get any forum activation link]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] * [[FAQ: How can I use the asset downloader to download everything by everyone?]] == Makehuman and blender == * [[FAQ: How do I export assets from MakeHuman to Blender?]] * [[FAQ: What is MPFB (MakeHuman Plugin For Blender)?]] * [[FAQ: How do I install a plugin in Blender 2.80?]] * [[FAQ: How do I upgrade a plugin in Blender 2.80?]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: Where can I get MHX2 for Blender 2.80]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] * [[FAQ: I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman?]] * [[FAQ: Does "alpha" mean it is dangerous to use?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] 5988b319ca6efdacc1b4e4ea51c41556f5b69ff3 1606 1604 2019-09-27T07:59:20Z Joepal 14 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: MakeHuman does not start]] * [[FAQ: I have a problem with makehuman. How do I report it?]] * [[FAQ: I didn't get any forum activation link]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] * [[FAQ: How can I use the asset downloader to download everything by everyone?]] == Makehuman and blender == * [[FAQ: How do I export assets from MakeHuman to Blender?]] * [[FAQ: What is MPFB (MakeHuman Plugin For Blender)?]] * [[FAQ: How do I install a plugin in Blender 2.80?]] * [[FAQ: How do I upgrade a plugin in Blender 2.80?]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] * [[FAQ: I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman?]] * [[FAQ: Does "alpha" mean it is dangerous to use?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] 930abbd91674adc17ebf552d479044438459833b 1604 1599 2019-09-21T08:49:40Z Joepal 14 /* General / unsorted */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: MakeHuman does not start]] * [[FAQ: I have a problem with makehuman. How do I report it?]] * [[FAQ: I didn't get any forum activation link]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] * [[FAQ: How can I use the asset downloader to download everything by everyone?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] * [[FAQ: I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman?]] * [[FAQ: Does "alpha" mean it is dangerous to use?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] 95f6b2cb78cc4e1d32478bc99a4b4ba506d52119 1599 1584 2019-09-15T15:38:54Z Joepal 14 /* Top questions */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: MakeHuman does not start]] * [[FAQ: I have a problem with makehuman. How do I report it?]] * [[FAQ: I didn't get any forum activation link]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] * [[FAQ: How can I use the asset downloader to download everything by everyone?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] * [[FAQ: I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] e564c2849d3947725229c000fd30cadc539be477 1584 1569 2019-03-24T15:26:04Z Joepal 14 /* Top questions */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: I have a problem with makehuman. How do I report it?]] * [[FAQ: I didn't get any forum activation link]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] * [[FAQ: How can I use the asset downloader to download everything by everyone?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] * [[FAQ: I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] f51c55cb7ff6e981b20369d2135bd277e015457b 1569 1565 2019-03-07T12:50:54Z Joepal 14 /* Top questions */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: I have a problem with makehuman. How do I report it?]] * [[FAQ: I didn't get any forum activation link]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] * [[FAQ: I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] dfa18a729376516b72ad035147c56ecc024fde8f 1565 1482 2019-03-06T16:11:37Z Joepal 14 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: I didn't get any forum activation link]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] * [[FAQ: I have a problem with makehuman. How do I report it?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] * [[FAQ: I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] 938fcf464c1cad0706433150b0fecda1b067a908 1482 1479 2018-10-19T11:36:32Z Joepal 14 /* Top questions */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: I didn't get any forum activation link]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] * [[FAQ: I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] 57225b90fd9aab2bd76a2ddd73a8a1b979b3cd7b 1479 1478 2018-09-18T07:42:10Z Joepal 14 /* General / unsorted */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] * [[FAQ: I have a business idea. Can I hire someone on the dev team to do consultancy work or development regarding MakeHuman?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] 5e9eb9dee5ab562e2e84f14a6f63e8ac7a611406 1478 1444 2018-09-17T21:20:43Z Aranuvir 17 /* Top questions */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: I can't download from the user repos, all files are saved as HTML]] * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] ad4f57d3d7c715133f38ed2a07bddd4d55cc5fb8 1444 1441 2018-02-14T09:14:03Z Joepal 14 /* Installation */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party skin. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] f143168a44a10356fa296c4b120c78401057cd93 1441 1433 2017-12-11T13:40:26Z Joepal 14 /* Contributing */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to extend MakeHuman functionality. Where should I start?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] 3166df341c683b148d2cfd22acd8851af24d8eb8 1433 1417 2017-08-30T08:23:16Z Joepal 14 /* Legal questions */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] * [[FAQ: We at company X don't like AGPL and want another license]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] 27e733e3920eaf0b1d6ed23407d1d9d129763fe8 1417 1403 2017-08-20T07:52:45Z Joepal 14 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] * [[FAQ:What do I need to do when I use a CC-BY asset?]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] febd0d71e797d95eb4c6be1d63c70d45611dd880 1403 1394 2017-07-13T10:22:43Z Joepal 14 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] == Terminology == * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Nightly builds == * [[FAQ: What is a nightly build?]] * [[FAQ: Where are the nightly builds?]] * [[FAQ: Will the nightly build work?]] * [[FAQ: Can I use the stable version and the nightly build at the same time?]] * [[FAQ: What's with the "makehuman-community-*" file name?]] * [[FAQ: How can I run the same code as the nightly build from source?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] ee04a53b1cf305d1e7a72520a26857773721dced 1394 1388 2017-06-06T14:19:36Z Joepal 14 New section on materials wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] == Terminology == * [[FAQ: What is a nightly build?]] * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Rendering, materials and node setups == * [[FAQ: The eyes look flat and "dead" in blender]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] 373d99b748733f066eadcf4af893dfd550c7e27c 1388 1383 2017-05-30T11:38:28Z Joepal 14 New NSFW section wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] == Terminology == * [[FAQ: What is a nightly build?]] * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == NSFW == * [[FAQ: What is the general policy towards NSFW content and discussions?]] * [[FAQ: Is it ok to share NSFW imagery on the forums?]] * [[FAQ: Is it ok to share NSFW content in the user contribution repos?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] ef790d120008d693053898e9300f69958238a9a3 1383 1382 2017-03-27T21:08:05Z Robbaer 12 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] == Terminology == * [[FAQ: What is a nightly build?]] * [[FAQ: What is Open Source?]] * [[FAQ: What is a target?]] * [[FAQ: What is the meaning of the numbers in MakeHuman release?]] * [[FAQ: What is a proxy?]] == Technology == * [[FAQ: Why quadrilaterals?]] * [[FAQ: What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ: Why is there no perspective mode?]] == Installation == * [[FAQ: Where can I download MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] * [[FAQ: I'm using ubuntu. Is there a PPA?]] * [[FAQ: Which version of MakeHuman should I download?]] * [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ: Where can I unzip MakeHuman (in Windows)?]] * [[FAQ: How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ: How can I build MakeHuman from source?]] * [[FAQ: I downloaded third party clothes. How do I install them?]] * [[FAQ: I downloaded a third party model. How do I install it?]] * [[FAQ: I downloaded a third party proxy. How do I install it?]] * [[FAQ: I downloaded a third party target. How do I install it?]] * [[FAQ: I downloaded a third party plug-in. How do I install it?]] * [[FAQ: How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ: Can I sell models created with MakeHuman?]] * [[FAQ: Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ: How can I create targets?]] * [[FAQ: How can I create skin textures?]] * [[FAQ: How can I create clothes?]] * [[FAQ: How can I create hair?]] * [[FAQ: How can I create extra bodyparts?]] * [[FAQ: How can I create proxies or alternative topologies?]] * [[FAQ: How can I create poses?]] * [[FAQ: How can I create a thumbnail file?]] * [[FAQ: I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ: Can I export an asset from Blender and get it back into MakeHuman?]] * [[FAQ: I have photos of a real person. Can I use those for making a skin?]] * [[FAQ: How do I make and upload a fashion render?]] == Contributing == * [[FAQ: How do I submit a bug report?]] * [[FAQ: How to provide a makehuman log for a good bug report?]] * [[FAQ: I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ: I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ: I have made a code patch. Where do I send it?]] * [[FAQ: I'm not a coder. How can I contribute?]] * [[FAQ: I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ: I have made a tutorial. How do I contribute it?]] * [[FAQ: I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ: The publisher could not be verified]] * [[FAQ: My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ: There seems to be a version mismatch between MHX and blender]] * [[FAQ: I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ: MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ: Eyes are rendered completely white (or black) in blender]] * [[FAQ: I can't download from the user repos, all files are saved as HTML]] 3ed91cd4579b6a2e280e9b1d1e53b396dd07804d 1382 1379 2017-03-27T21:06:00Z Robbaer 12 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ: What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ: MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ: What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ: What is MakeHuman?]] * [[FAQ: What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ: Is there an IRC channel?]] * [[FAQ: How much does MakeHuman cost?]] * [[FAQ: What happened to the XYZ asset?]] * [[FAQ: I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ: Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ: What is a fashion render?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:Where can I find older Versions of MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third party clothes. How do I install them?]] * [[FAQ:I downloaded a third party model. How do I install it?]] * [[FAQ:I downloaded a third party proxy. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:How can I create a thumbnail file?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] * [[FAQ:How do I make and upload a fashion render?]] * [[FAQ:Can I export an asset from Blender and get it back into MakeHuman?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] * [[FAQ:I can't download from the user repos, all files are saved as HTML]] 470be03197e99fadb3ed239e4af9f19668a340d5 1379 1326 2017-03-27T20:58:33Z Robbaer 12 /* Creating assets */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ:Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ:What is a fashion render?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:Where can I find older Versions of MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third party clothes. How do I install them?]] * [[FAQ:I downloaded a third party model. How do I install it?]] * [[FAQ:I downloaded a third party proxy. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:How can I create a thumbnail file?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] * [[FAQ:How do I make and upload a fashion render?]] * [[FAQ:Can I export an asset from Blender and get it back into MakeHuman?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] * [[FAQ:I can't download from the user repos, all files are saved as HTML]] e6d529d96c49a46550622b3cc809b09164a4ae57 1326 1324 2017-02-19T14:18:05Z Aranuvir 17 /* Troubleshooting */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ:Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ:What is a fashion render?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:Where can I find older Versions of MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third party clothes. How do I install them?]] * [[FAQ:I downloaded a third party model. How do I install it?]] * [[FAQ:I downloaded a third party proxy. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:How can I create a thumbnail file?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] * [[FAQ:How do I make and upload a fashion render?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] * [[FAQ:I can't download from the user repos, all files are saved as HTML]] 884c22eefe5241bf3d7ec148aa6bba03bd87ba66 1324 1292 2017-02-19T14:16:56Z Aranuvir 17 /* Troubleshooting */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ:Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ:What is a fashion render?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:Where can I find older Versions of MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third party clothes. How do I install them?]] * [[FAQ:I downloaded a third party model. How do I install it?]] * [[FAQ:I downloaded a third party proxy. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:How can I create a thumbnail file?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] * [[FAQ:How do I make and upload a fashion render?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:My Antivirus tool blocks MakeHuman / Norton Antivirus reports WS.Reputation.1]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] * [[FAQ:I can't download from the user repos, all files are saved as HTML]] 975253f2994dafb26e64171b3329cd8241390166 1292 1291 2017-01-25T14:30:20Z Aranuvir 17 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ:Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ:What is a fashion render?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:Where can I find older Versions of MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third party clothes. How do I install them?]] * [[FAQ:I downloaded a third party model. How do I install it?]] * [[FAQ:I downloaded a third party proxy. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:How can I create a thumbnail file?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] * [[FAQ:How do I make and upload a fashion render?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] * [[FAQ:I can't download from the user repos, all files are saved as HTML]] 3f112a7dd62b85e7c2d9bdfbca8cc3f16a33edd3 1291 1276 2017-01-25T14:10:06Z Aranuvir 17 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ:Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ:What is a fashion render?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:Where can I find older Versions of MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third party clothes. How do I install them?]] * [[FAQ:I downloaded a third party model. How do I install it?]] * [[FAQ:I downloaded a third party proxy. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:How can I create a thumbnail?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] * [[FAQ:How do I make and upload a fashion render?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] * [[FAQ:I can't download from the user repos, all files are saved as HTML]] 9e87b46bc6000d2cd88d872c16ce0d0c8f179fcf 1276 1259 2017-01-06T07:19:49Z Joepal 14 /* Troubleshooting */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ:Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ:What is a fashion render?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:Where can I find older Versions of MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third party clothes. How do I install them?]] * [[FAQ:I downloaded a third party model. How do I install it?]] * [[FAQ:I downloaded a third party proxy. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] * [[FAQ:How do I make and upload a fashion render?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] * [[FAQ:I can't download from the user repos, all files are saved as HTML]] 16ee3905a890b15b89d4cc5b31fb4bfa2dbca540 1259 1192 2016-12-11T13:51:58Z Joepal 14 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ:Do you have some quick tips on how to make a nice image with a makehuman toon?]] * [[FAQ:What is a fashion render?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:Where can I find older Versions of MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third party clothes. How do I install them?]] * [[FAQ:I downloaded a third party model. How do I install it?]] * [[FAQ:I downloaded a third party proxy. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] * [[FAQ:How do I make and upload a fashion render?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] c842912e501d04926d05b5293976c63ebdc018cb 1192 1183 2016-09-30T12:06:04Z Aranuvir 17 /* General / unsorted */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ:Do you have some quick tips on how to make a nice image with a makehuman toon?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:Where can I find older Versions of MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third party clothes. How do I install them?]] * [[FAQ:I downloaded a third party model. How do I install it?]] * [[FAQ:I downloaded a third party proxy. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 52fe0b058157d19aeb9a9446127a16e3e5fd0970 1183 1180 2016-09-29T14:37:09Z Aranuvir 17 /* General / unsorted */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is MakeHumanPortable]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ:Do you have some quick tips on how to make a nice image with a makehuman toon?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:Where can I find older Versions of MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third party clothes. How do I install them?]] * [[FAQ:I downloaded a third party model. How do I install it?]] * [[FAQ:I downloaded a third party proxy. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 685ad09666a8aeeef26ed97ff8f8447f915b961f 1180 1179 2016-09-06T15:33:21Z Joepal 14 /* General / unsorted */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ:Do you have some quick tips on how to make a nice image with a makehuman toon?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:Where can I find older Versions of MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third party clothes. How do I install them?]] * [[FAQ:I downloaded a third party model. How do I install it?]] * [[FAQ:I downloaded a third party proxy. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 52fe0b058157d19aeb9a9446127a16e3e5fd0970 1179 1169 2016-09-06T15:33:01Z Joepal 14 /* General / unsorted */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] * [[FAQ:What are some quick tips on how to make a nice image with a makehuman toon?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:Where can I find older Versions of MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third party clothes. How do I install them?]] * [[FAQ:I downloaded a third party model. How do I install it?]] * [[FAQ:I downloaded a third party proxy. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 2c7b362187cbc440bf3b57eefdbaf7508f5618a6 1169 1168 2016-08-30T11:50:36Z Aranuvir 17 /* Installation */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:Where can I find older Versions of MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third party clothes. How do I install them?]] * [[FAQ:I downloaded a third party model. How do I install it?]] * [[FAQ:I downloaded a third party proxy. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 001b3aa3fd929a773376fe3d51665be9f34795a5 1168 1167 2016-08-30T11:10:58Z Aranuvir 17 /* Installation */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:Where can I find older Versions of MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third party clothes. How do I install them?]] * [[FAQ:I downloaded a third party model. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] f4a09013827dd3c30f2f967c9c57e72a6c39bf62 1167 1164 2016-08-30T09:31:24Z Aranuvir 17 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third party clothes. How do I install them?]] * [[FAQ:I downloaded a third party model. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 7d8c369d8f74a93637f4b61ea978fc8334d357b4 1164 1158 2016-08-30T09:29:47Z Aranuvir 17 /* Installation */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third party model. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 3447961e4ec0bf1223da3f9148553b86cb5c4e57 1158 1155 2016-08-30T09:10:01Z Aranuvir 17 /* Installation */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] c357c0ba76834c1cdeaf8b06c1f47fbf7c193eec 1155 1152 2016-08-30T08:56:19Z Aranuvir 17 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] e08bc433fe1fb69d848cd6bc0ab5ea9f63b65388 1152 1151 2016-08-30T08:53:38Z Aranuvir 17 Undo revision 1151 by [[Special:Contributions/Aranuvir|Aranuvir]] ([[User talk:Aranuvir|talk]]) wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] * [[FAQ:I downloaded a third part plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 4fae26abf0ecd4a424c0d2636b4d9f18e70117d8 1151 1144 2016-08-30T08:50:40Z Aranuvir 17 /* Installation */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] e08bc433fe1fb69d848cd6bc0ab5ea9f63b65388 1144 1143 2016-08-29T11:23:38Z Aranuvir 17 /* Installation */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] * [[FAQ:I downloaded a third part plug-in. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 4fae26abf0ecd4a424c0d2636b4d9f18e70117d8 1143 1142 2016-08-29T11:20:44Z Aranuvir 17 Undo revision 1142 by [[Special:Contributions/Aranuvir|Aranuvir]] ([[User talk:Aranuvir|talk]]) wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 99b66193468413bcf2739d573f847d8af1cf5176 1142 1141 2016-08-29T11:20:00Z Aranuvir 17 /* Installation */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third party clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 806c21a02b056226e30c9eb24ec12b72f1b38d73 1141 1140 2016-08-29T11:19:06Z Aranuvir 17 Undo revision 1140 by [[Special:Contributions/Aranuvir|Aranuvir]] ([[User talk:Aranuvir|talk]]) wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 99b66193468413bcf2739d573f847d8af1cf5176 1140 1138 2016-08-29T11:18:19Z Aranuvir 17 /* Installation */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third party model. How do I install it?]] * [[FAQ:I downloaded a third party target. How do I install it?]] * [[FAQ:I downloaded a third party plug-in (e.g. MHX2). How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] fe1b7dd4212f8dff0c05fb7c3e19da0e3b2b8937 1138 1008 2016-08-29T11:04:44Z Aranuvir 17 /* Installation */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] * [[FAQ: Where can I find older Versions of MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 99b66193468413bcf2739d573f847d8af1cf5176 1008 1006 2016-06-08T08:26:48Z Joepal 14 /* Creating assets */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:How can I create poses?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 162d6a976067b1077f92c81208dd4ee3dd6c46df 1006 1003 2016-06-08T08:21:26Z Joepal 14 /* Creating assets */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:I have photos of a real person. Can I use those for making a skin?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] ffe84826665a3c5df57152dd9b10e775c7da84da 1003 1000 2016-06-05T22:14:16Z Aranuvir 17 /* Top questions */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:What happened to the special assets genitalia?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 09297221d5cdbf798d59f8a877d31c3a08be35a7 1000 998 2016-05-31T15:20:03Z Joepal 14 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 672212878bf3046ea0508af8206fc1e1f34f3390 998 865 2016-05-31T15:17:10Z Joepal 14 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] * [[FAQ:I want to make a code fork of MakeHuman, but I hate mercurial and/or BitBucket]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 1a0f5de611269ae846dcdab68b9f00a530f6cabf 865 864 2016-05-27T09:07:47Z Aranuvir 17 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] * [[FAQ:How do I uninstall MakeHuman?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 4e553670bc3e962b49ae5104785dd8178d94fe3a 864 657 2016-05-27T05:43:06Z Joepal 14 Removed protection from "[[FAQ:Index]]": Give permissive policy a test wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 70c014d23dec200ce521fac32fd99f12b65baa87 657 649 2016-05-14T08:26:00Z Joepal 14 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 70c014d23dec200ce521fac32fd99f12b65baa87 649 647 2016-05-12T05:34:54Z Joepal 14 /* Technology */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:When will 1.1 be released?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:What happened to the specific skeletons (the UE and SL rigs for example)?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] e499bb357f58d663f06ee7709bc40eafaad1e0b3 647 606 2016-05-11T14:01:53Z Joepal 14 /* Creating assets */ wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:When will 1.1 be released?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:I already have a 3d object from elsewhere. How can I use it in MH?]] * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] c43b024c91beff1221b1c891c6adf91d52ae62de 606 555 2016-03-06T12:42:43Z Joepal 14 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:When will 1.1 be released?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:The publisher could not be verified]] * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 6ae0dc9dfda6c5954df81b3d2b694a5ffafed920 555 542 2016-01-05T14:25:12Z Joepal 14 wikitext text/x-wiki This page lists frequently asked questions. == Top questions == * [[FAQ:When will 1.1 be released?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 89e5ed071bb57f1a8a117bc55b90f6dbec87489e 542 512 2015-11-01T11:53:19Z Joepal 14 /* Troubleshooting */ wikitext text/x-wiki This page lists frequently asked questions. == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] * [[FAQ:Eyes are rendered completely white (or black) in blender]] 92032a8726efa63b062bc76481ca6a9d8e30000d 512 502 2015-09-01T11:12:37Z Joepal 14 /* General / unsorted */ wikitext text/x-wiki This page lists frequently asked questions. == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:What happened to the XYZ asset?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] 3a94e48766a18d8420b3fe0b07eb3728358746bc 502 137 2015-08-30T08:29:00Z Joepal 14 /* Installation */ wikitext text/x-wiki This page lists frequently asked questions. == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I run MakeHuman from a BitBucket source clone?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] 0d4ad284d32c445d89e73fc0c8d809c5b1b8e728 137 112 2015-07-18T07:51:03Z Joepal 14 /* Installation */ wikitext text/x-wiki This page lists frequently asked questions. == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I build MakeHuman from source?]] * [[FAQ:I downloaded third part clothes. How do I install them?]] * [[FAQ:I downloaded a third part model. How do I install it?]] * [[FAQ:I downloaded a third part target. How do I install it?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] 285a9eaa9f09767c5fc26e41e9c57c122f1ff6fb 112 108 2015-07-10T10:24:57Z Joepal 14 wikitext text/x-wiki This page lists frequently asked questions. == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I build MakeHuman from source?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Creating assets == * [[FAQ:How can I create targets?]] * [[FAQ:How can I create skin textures?]] * [[FAQ:How can I create clothes?]] * [[FAQ:How can I create hair?]] * [[FAQ:How can I create extra bodyparts?]] * [[FAQ:How can I create proxies or alternative topologies?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] 2c71ade33cb8f98d53feb19dd3375420a797f9ba 108 104 2015-07-10T10:14:11Z Joepal 14 /* Troubleshooting */ wikitext text/x-wiki This page lists frequently asked questions. == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I build MakeHuman from source?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu or debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] 6835b8514f304dc3aebf573c0cfc46bcd7dcbb1d 104 103 2015-07-10T10:05:20Z Joepal 14 /* Contributing */ wikitext text/x-wiki This page lists frequently asked questions. == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I build MakeHuman from source?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How do I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu/debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] c1e7f338b5441a2701cb788a87d50a27cdf2afeb 103 94 2015-07-10T10:04:58Z Joepal 14 /* Contributing */ wikitext text/x-wiki This page lists frequently asked questions. == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I build MakeHuman from source?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a new asset for MakeHuman. How can I contribute it?]] * [[FAQ:I have made a tutorial. How to I contribute it?]] * [[FAQ:I want to help write documentation. How do I do that?]] == Troubleshooting == * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu/debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] 86d9ff6a8b1e315edace1ac5f35a5e1e5ecc4156 94 83 2015-07-10T09:47:24Z Joepal 14 /* Installation */ wikitext text/x-wiki This page lists frequently asked questions. == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman (in Windows)?]] * [[FAQ:How can I build MakeHuman from source?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a skin/texture. How can I contribute it?]] * [[FAQ:I have made a model in MakeHuman. How can I contribute it?]] == Troubleshooting == * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu/debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] 48f470a2a8e7c4fa646914e6cae845258703652e 83 50 2015-07-09T11:28:59Z Joepal 14 wikitext text/x-wiki This page lists frequently asked questions. == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Technology == * [[FAQ:Why quadrilaterals?]] * [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] * [[FAQ:Why is there no perspective mode?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman?]] * [[FAQ:How can I build MakeHuman from source?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a skin/texture. How can I contribute it?]] * [[FAQ:I have made a model in MakeHuman. How can I contribute it?]] == Troubleshooting == * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu/debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] 6bef4b22ea19172ab6f55090803fcb9b26a64dad 50 47 2015-07-04T15:18:44Z Joepal2 11 Protected "[[FAQ:Index]]": High traffic page ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) wikitext text/x-wiki This page lists frequently asked questions. == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:Why quadrilaterals?]] * [[FAQ:Where is the MHX export in MH 1.1.x and later?]] * [[FAQ:Why there is not perspective?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman?]] * [[FAQ:How can I build MakeHuman from source?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a skin/texture. How can I contribute it?]] * [[FAQ:I have made a model in MakeHuman. How can I contribute it?]] == Troubleshooting == * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu/debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] 4f236a768f291271de0ae3bcbd2fd15ea1bf46ef 47 2015-07-04T11:12:51Z Joepal2 11 Created page with "This page lists frequently asked questions. == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] *..." wikitext text/x-wiki This page lists frequently asked questions. == General / unsorted == * [[FAQ:What is MakeHuman?]] * [[FAQ:What is the prefered method for contacting the MakeHuman crew?]] * [[FAQ:Is there an IRC channel?]] * [[FAQ:How much does MakeHuman cost?]] * [[FAQ:Why quadrilaterals?]] * [[FAQ:Where is the MHX export in MH 1.1.x and later?]] * [[FAQ:Why there is not perspective?]] == Terminology == * [[FAQ:What is a nightly build?]] * [[FAQ:What is Open Source?]] * [[FAQ:What is a target?]] * [[FAQ:What is the meaning of the numbers in MakeHuman release?]] * [[FAQ:What is a proxy?]] == Installation == * [[FAQ:Where can I download MakeHuman?]] * [[FAQ:I'm using ubuntu. Is there a PPA?]] * [[FAQ:Which version of MakeHuman should I download?]] * [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?]] * [[FAQ:Where can I unzip MakeHuman?]] * [[FAQ:How can I build MakeHuman from source?]] == Legal questions == * [[FAQ:Can I sell models created with MakeHuman?]] * [[FAQ:Can I create a commercial closed source game with models generated by MakeHuman?]] == Contributing == * [[FAQ:How do I submit a bug report?]] * [[FAQ:How to provide a makehuman log for a good bug report?]] * [[FAQ:I want to contribute code in a more structured manner. What is the recommended procedure?]] * [[FAQ:I want an easy code task to get to learn the makehuman code. Where should I start?]] * [[FAQ:I have made a code patch. Where do I send it?]] * [[FAQ:I'm not a coder. How can I contribute?]] * [[FAQ:I have made a skin/texture. How can I contribute it?]] * [[FAQ:I have made a model in MakeHuman. How can I contribute it?]] == Troubleshooting == * [[FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives?]] * [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]] * [[FAQ:There seems to be a version mismatch between MHX and blender]] * [[FAQ:I am using the ubuntu/debian version of MakeHuman and...]] * [[FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe]] 4f236a768f291271de0ae3bcbd2fd15ea1bf46ef FAQ:Is it ok to share NSFW content in the user contribution repos? 3002 523 1392 2017-05-30T12:03:58Z Joepal 14 Created page with "In general yes, but read [[FAQ: What is the general policy towards NSFW content and discussions?]] for more details." wikitext text/x-wiki In general yes, but read [[FAQ: What is the general policy towards NSFW content and discussions?]] for more details. efd938f828ac5a78b460024a1fd8c716b57c9a32 FAQ:Is it ok to share NSFW imagery on the forums? 3002 522 1391 2017-05-30T12:02:28Z Joepal 14 Created page with "In general yes, as long as it is on topic and not an obvious attempt at trolling. See also [[FAQ: What is the general policy towards NSFW content and discussions?]]" wikitext text/x-wiki In general yes, as long as it is on topic and not an obvious attempt at trolling. See also [[FAQ: What is the general policy towards NSFW content and discussions?]] 8207c73e08d68bf9015a876b12bb20cc726bad69 FAQ:Is there a mac build? 3002 581 1962 1849 2020-12-27T15:20:14Z Joepal 14 wikitext text/x-wiki Yes, see http://www.makehumancommunity.org/wiki/Releases:120mac There is also an old mac build for 1.1.1, available for download via the [http://www.makehumancommunity.org/content/downloads.html download page]. This should compatible with older releases of OSX. It is also possible run from source on mac (see instructions in https://github.com/makehumancommunity/makehuman/blob/master/README.md), through using largely the same approach as on Windows. e9f1f4f5fd0284b4221142e707271ca0f1cd170e 1849 1618 2020-07-27T15:34:40Z Joepal 14 wikitext text/x-wiki There is an old mac build for 1.1.1, available for download via the [http://www.makehumancommunity.org/content/downloads.html download page]. This is compatible with at least older releases of OSX. There is no build available for the latest/current MakeHuman code (ie 1.2.x). This is because we currently have no active mac developer and thus no-one around to build, maintain and give support for mac releases. It is possible that the current code runs from source on mac (see instructions in https://github.com/makehumancommunity/makehuman/blob/master/README.md), through using largely the same approach as on Windows. However, this is not tested. == Do you want to become maintainer for a mac build? == If you have a mac, the skills required for producing a distributable binary package, and are interested in maintaining a mac build, contact us on the forums. 1f06f90742ed45c72a27902591859fc8e379004c 1618 2019-11-03T13:31:41Z Joepal 14 Created page with "There is an old mac build for 1.1.1, available for download via the [http://www.makehumancommunity.org/content/downloads.html download page]. This is compatible with at least..." wikitext text/x-wiki There is an old mac build for 1.1.1, available for download via the [http://www.makehumancommunity.org/content/downloads.html download page]. This is compatible with at least older releases of OSX. There is no build available for the latest/current MakeHuman code (ie 1.2.x). This is because we currently have no active mac developer and thus no-one around to build, maintain and give support for mac releases. It is possible that the current code runs from source on mac (see [[FAQ: How can I run the same code as the nightly build from source?]]), through using largely the same approach as on Linux. However, this is not tested. == Do you want to become maintainer for a mac build? == If you have a mac, the skills required for producing a distributable binary package, and are interested in maintaining a mac build, contact us on the forums. 3c0978ac97ddafeb276e268f23cac61bc6b2fad6 FAQ:Is there an IRC channel? 3002 23 660 79 2016-05-14T08:33:02Z Joepal 14 wikitext text/x-wiki Yes, there is a #makehuman on freenode, but it has recently fallen into some disuse. There are rarely any official devs there. Use the forums if you need support. 5d34fb63c6e29b373e7b44f1be967bbc733859bf 79 2015-07-09T11:25:49Z Joepal 14 Created page with "Yes, there is a #makehuman on freenode." wikitext text/x-wiki Yes, there is a #makehuman on freenode. dc2f6c36c7f85a14a3cfa47d631abc4476660981 FAQ:MakeHuman does not start 3002 574 1862 1632 2020-09-07T10:12:00Z Joepal 14 wikitext text/x-wiki See also [[FAQ: I have a problem with makehuman. How do I report it?]]. There are multiple reasons why MakeHuman does not start, and without some background information it is impossible to tell you what's wrong. In order to be able to give any kind of sensible answer, we will need to know: * What does the log say? See [[FAQ: How to provide a makehuman log for a good bug report?]] * What graphics card are you using? * If you have a laptop with dual graphics cards, are you sure that you are using the 3d-enabled one? * What operating system are you using? Preferably including details about if it's 32 or 64 bit, what the system language is, exactly what OS version it is and so on. * What version of makehuman did you download? == It worked before / old settings == If you have been able to start a prior version of MH on the same machine, but a newer version does not start, something might be corrupt or incompatible in the user directory. Try deleting the DOCUMENTS/makehuman/v1py3 directory before launching MH. See [[FAQ: Where are my MakeHuman files found (where is my HOME directory)?]] for info on how to find this directory. == Graphics card issues == The by far most common reason for MakeHuman silently failing during startup is a graphics card incompatibility. If you have an integrated intel graphics card for example, this is where we'd start looking. At the point of writing this, we have implemented several measures for avoiding these crashes, but they have not yet made it into a build. The fixes are specifically not included in 1.2.0 alpha 3. It is ''possible'' your problem is solved already, but to test this your only option is currently to run from source, see [[FAQ: How can I run the same code as the nightly build from source?]]. The other option is to wait for the next build to be released. Another source of problems regarding graphics cards is when you try to start MakeHuman on a laptop with dual graphics cards. In this case, MH might get confused and pick settings for one card while in fact trying to run on the other. Usually, you can in these cases force MH to run on a specific graphics card. In later makehuman releases (1.2.0+) on windows, you will have to tell your laptop to run "pythonw.exe" on the discrete graphics card. In most cases this file will be inside c:\users\YOUR-USER-NAME\appdata\local\makehuman-community\python. 61015754c4938a1b9a0b489455c0020fc9367c7e 1632 1631 2020-01-01T15:56:05Z Joepal 14 wikitext text/x-wiki See also [[FAQ: I have a problem with makehuman. How do I report it?]]. There are multiple reasons why MakeHuman does not start, and without some background information it is impossible to tell you what's wrong. In order to be able to give any kind of sensible answer, we will need to know: * What does the log say? See [[FAQ: How to provide a makehuman log for a good bug report?]] * What graphics card are you using? * If you have a laptop with dual graphics cards, are you sure that you are using the 3d-enabled one? * What operating system are you using? Preferably including details about if it's 32 or 64 bit, what the system language is, exactly what OS version it is and so on. * What version of makehuman did you download? == Graphics card issues == The by far most common reason for MakeHuman silently failing during startup is a graphics card incompatibility. If you have an integrated intel graphics card for example, this is where we'd start looking. At the point of writing this, we have implemented several measures for avoiding these crashes, but they have not yet made it into a build. The fixes are specifically not included in 1.2.0 alpha 3. It is ''possible'' your problem is solved already, but to test this your only option is currently to run from source, see [[FAQ: How can I run the same code as the nightly build from source?]]. The other option is to wait for the next build to be released. Another source of problems regarding graphics cards is when you try to start MakeHuman on a laptop with dual graphics cards. In this case, MH might get confused and pick settings for one card while in fact trying to run on the other. Usually, you can in these cases force MH to run on a specific graphics card. In later makehuman releases (1.2.0+) on windows, you will have to tell your laptop to run "pythonw.exe" on the discrete graphics card. In most cases this file will be inside c:\users\YOUR-USER-NAME\appdata\local\makehuman-community\python. d3834a4daa3565db1143b6a1c45a60c67f7933ef 1631 1601 2020-01-01T15:54:33Z Joepal 14 wikitext text/x-wiki See also [[FAQ: I have a problem with makehuman. How do I report it?]]. There are multiple reasons why MakeHuman does not start, and without some background information it is impossible to tell you what's wrong. In order to be able to give any kind of sensible answer, we will need to know: * What does the log say? See [[FAQ: How to provide a makehuman log for a good bug report?]] * What graphics card are you using? * If you have a laptop with dual graphics cards, are you sure that you are using the 3d-enabled one? * What operating system are you using? Preferably including details about if it's 32 or 64 bit, what the system language is, exactly what OS version it is and so on. * What version of makehuman did you download? == Graphics card issues == The by far most common reason for MakeHuman silently failing during startup is a graphics card incompatibility. If you have an integrated intel graphics card for example, this is where we'd start looking. At the point of writing this, we have implemented several measures for avoiding these crashes, but they have not yet made it into a build. The fixes are specifically not included in 1.2.0 alpha 3. It is ''possible'' your problem is solved already, but to test this your only option is currently to run from source, see [[FAQ: How can I run the same code as the nightly build from source?]]. The other option is to wait for the next build to be released. Another source of problems regarding graphics cards is when you try to start MakeHuman on a laptop with dual graphics cards. In this case, MH might get confused and pick settings for one card while in fact trying to run on the other. Usually, you can in these cases force MH to run on a specific graphics card. In later makehuman releases (1.2.0+) on windows, you will have to tell your laptop to run "pythonw.exe" on the discrete graphics card. a54561a01694640b5db2e75302ee19c2d216bd34 1601 1600 2019-09-15T15:53:00Z Joepal 14 wikitext text/x-wiki See also [[FAQ: I have a problem with makehuman. How do I report it?]]. There are multiple reasons why MakeHuman does not start, and without some background information it is impossible to tell you what's wrong. In order to be able to give any kind of sensible answer, we will need to know: * What does the log say? See [[FAQ: How to provide a makehuman log for a good bug report?]] * What graphics card are you using? * If you have a laptop with dual graphics cards, are you sure that you are using the 3d-enabled one? * What operating system are you using? Preferably including details about if it's 32 or 64 bit, what the system language is, exactly what OS version it is and so on. * What version of makehuman did you download? == Graphics card issues == The by far most common reason for MakeHuman silently failing during startup is a graphics card incompatibility. If you have an integrated intel graphics card for example, this is where we'd start looking. At the point of writing this, we have implemented several measures for avoiding these crashes, but they have not yet made it into a build. The fixes are specifically not included in 1.2.0 alpha 3. It is ''possible'' your problem is solved already, but to test this your only option is currently to run from source, see [[FAQ: How can I run the same code as the nightly build from source?]]. The other option is to wait for the next build to be released. Another source of problems regarding graphics cards is when you try to start MakeHuman on a laptop with dual graphics cards. In this case, MH might get confused and pick settings for one card while in fact trying to run on the other. Usually, you can in these cases force MH to run on a specific graphics card. a6a6b4038fc4fd1f8aeaf18bbd45e65020f962fb 1600 2019-09-15T15:48:42Z Joepal 14 Created page with "See also [[FAQ: I have a problem with makehuman. How do I report it?]]. There are multiple reasons why MakeHuman does not start, and without some background information it is..." wikitext text/x-wiki See also [[FAQ: I have a problem with makehuman. How do I report it?]]. There are multiple reasons why MakeHuman does not start, and without some background information it is impossible to tell you what's wrong. In order to be able to give any kind of sensible answer, we will need to know: * What does the log say? See [[FAQ: How to provide a makehuman log for a good bug report?]] * What graphics card are you using? * What operating system are you using? Preferably including details about if it's 32 or 64 bit, what the system language is, exactly what OS version it is and so on. * What version of makehuman did you download? == Graphics card issues == The by far most common reason for MakeHuman silently failing during startup is a graphics card incompatibility. If you have an integrated intel graphics card for example, this is where we'd start looking. At the point of writing this, we have implemented several measures for avoiding these crashes, but they have not yet made it into a build. The fixes are specifically not included in 1.2.0 alpha 3. It is ''possible'' your problem is solved already, but to test this your only option is currently to run from source, see [[FAQ: How can I run the same code as the nightly build from source?]]. The other option is to wait for the next build to be released. 43f4f35de58541c3d75173e12e397dd34a3c06f0 FAQ:MakeHuman fails to start in windows, nothing seems to happen when I click the exe 3002 47 1218 1217 2016-11-11T10:14:15Z Joepal 14 wikitext text/x-wiki == For any version == The number one reason for this is a user error: you double-clicked the zip file (without extracting it) and then double-clicked the .exe file ''inside the zip''. This will not work. You need to first extract the zip file to a directory and then click the .exe file there. However, if this is not what happened, read on for other possible explanations. == For nightly builds and 1.1.0 == In more cases than not, this is a crash in your graphics card drivers rather than in MakeHuman as such. It is caused by a faulty or old implementation of OpenGL, something which is particularly common in integrated Intel graphics cards. You can try to upgrade the graphics card drivers to see if it helps. Another possible remedy is running MakeHuman with the --noshaders switch. See [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]]. In order to make sure that it is the indeed the graphics card that is causing the problem, look in your log (see [[FAQ:How to provide a makehuman log for a good bug report?]]). If the log file is only a few lines long rather than a screen page or more, but there is no particular error message at the end, then it is most likely the graphics card driver that crashed. Unfortunately, there is not a whole lot MakeHuman can do about faulty graphics card drivers. '''Alternative explanations''' Other possible reasons for this and similar problems may include: * Your antivirus quarantined a particular library in the downloaded zip. We've got reports that norton antivirus dislikes numpy for example. If this happens, random consequences ensue. To solve this, you should whitelist the makehuman directory and/or files belonging to makehuman. * You have a very odd character encoding in your system and an uninterpretable character in the pathname. We ''think'' we have fixed most of these issues, but to test if this is indeed the problem, try putting makehuman in a path with only ASCII (a-z) characters, such as c:\makehuman. Unfortunately this problem will also arise if the user has odd characters in the username, since that is included in the path for where MakeHuman stores it user files. Per October 2016, there is a new build which solves most of these problems. So if you think this is what causes the crash, try downloading a zip file called makehuman-stable-XXXXXX-win32.zip from http://download.tuxfamily.org/makehuman/nightly/ '''Reporting the problem and asking for support''' If you are not able to solve the problem, report it on the [http://www.makehumancommunity.org/forum/ forum] but be sure to follow the instructions in [[FAQ:How to provide a makehuman log for a good bug report?]] in order to provide enough info. == For version 1.0.2 and earlier == Under the following conditions: # You are using any version of windows # You have downloaded a zip file containing the release build 1.0.2 or earlier (ie, not a nightly build). # You have previously installed python # Other factors as yet unidentified (by seemingly more rare going forward) ... MakeHuman will crash before anything appears on screen. The reason is that there is a bundled python inside the build zips, but unfortunately a system-wide installation can, under certain circumstances, get detected first. This makes python look in the wrong place for DLLs etc, which causes the exe for the build to silently crash. There are several alternative work-arounds proposed for this. However, the simplest solution is the first one. # Upgrade to 1.1.0. The problem is fixed in that branch since years back. # Temporarily rename your python directory to something other than its directory path in your path statement. # Uninstall the existing python from the machine (fairly extreme). # Run source checkouts from bitbucket instead. In this case you must have python installed on the machine. ea3a33b347f8387619b4e84032e281ca708683a5 1217 1216 2016-11-11T10:11:38Z Joepal 14 wikitext text/x-wiki == For any version == The number one reason for this is a user error: you double-clicked the zip file (without extracting it) and then double-clicked the .exe file ''inside the zip''. This will not work. You need to first extract the zip file to a directory and then click the .exe file there. However, if this is not what happened, read on for other possible explanations. == For nightly builds and 1.1.0 == In more cases than not, this is a crash in your graphics card drivers rather than in MakeHuman as such. It is caused by a faulty or old implementation of OpenGL, something which is particularly common in integrated Intel graphics cards. You can try to upgrade the graphics card drivers to see if it helps. Another possible remedy is running MakeHuman with the --noshaders switch. See [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]]. In order to make sure that it is the indeed the graphics card that is causing the problem, look in your log (see [[FAQ:How to provide a makehuman log for a good bug report?]]). If the log file is only a few lines long rather than a screen page or more, but there is no particular error message at the end, then it is most likely the graphics card driver that crashed. Unfortunately, there is not a whole lot MakeHuman can do about faulty graphics card drivers. '''Alternative explanations''' Other possible reasons for this and similar problems may include: * Your antivirus quarantined a particular library in the downloaded zip. We've got reports that norton antivirus dislikes numpy for example. If this happens, random consequences ensue. To solve this, you should whitelist the makehuman directory and/or files belonging to makehuman. * You have a very odd character encoding in your system and an uninterpretable character in the pathname. We ''think'' we have fixed most of these issues, but to test if this is indeed the problem, try putting makehuman in a path with only ASCII (a-z) characters, such as c:\makehuman. Unfortunately this problem will also arise if the user has odd characters in the username, since that is included in the path for where MakeHuman stores it user files. '''Reporting the problem and asking for support''' If you are not able to solve the problem, report it on the [http://www.makehumancommunity.org/forum/ forum] but be sure to follow the instructions in [[FAQ:How to provide a makehuman log for a good bug report?]] in order to provide enough info. == For version 1.0.2 and earlier == Under the following conditions: # You are using any version of windows # You have downloaded a zip file containing the release build 1.0.2 or earlier (ie, not a nightly build). # You have previously installed python # Other factors as yet unidentified (by seemingly more rare going forward) ... MakeHuman will crash before anything appears on screen. The reason is that there is a bundled python inside the build zips, but unfortunately a system-wide installation can, under certain circumstances, get detected first. This makes python look in the wrong place for DLLs etc, which causes the exe for the build to silently crash. There are several alternative work-arounds proposed for this. However, the simplest solution is the first one. # Upgrade to 1.1.0. The problem is fixed in that branch since years back. # Temporarily rename your python directory to something other than its directory path in your path statement. # Uninstall the existing python from the machine (fairly extreme). # Run source checkouts from bitbucket instead. In this case you must have python installed on the machine. 0683560f4e807d18ede3d2226c45ba17db233d96 1216 1215 2016-11-11T10:10:35Z Joepal 14 wikitext text/x-wiki == For any version == The number one reason for this is a user error: you double-clicked the zip file (without extracting it) and then double-clicked the .exe file ''inside the zip''. This will not work. You need to first extract the zip file to a directory and then click the .exe file there. However, if this is not what happened, read on for other possible explanations. == For nightly builds and 1.1.0 == In more cases than not, this is a crash in your graphics card drivers rather than in MakeHuman as such. It is caused by a faulty or old implementation of OpenGL, something which is particularly common in integrated Intel graphics cards. You can try to upgrade the graphics card drivers to see if it helps. Another possible remedy is running MakeHuman with the --noshaders switch. See [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]]. In order to make sure that it is the indeed the graphics card that is causing the problem, look in your log (see [[FAQ:How to provide a makehuman log for a good bug report?]]). If the log file is only a few lines long rather than a screen page or more, but there is no particular error message at the end, then it is most likely the graphics card driver that crashed. Unfortunately, there is not a whole lot MakeHuman can do about faulty graphics card drivers. '''Alternative explanations''' Other possible reasons for this and similar problems may include: * Your antivirus quarantined a particular library in the downloaded zip. We've got reports that norton antivirus dislikes numpy for example. If this happens, random consequences ensue. To solve this, you should whitelist the makehuman directory and/or files belonging to makehuman. * You have a very odd character encoding in your system and an uninterpretable character in the pathname. We ''think'' we have fixed most of these issues, but to test if this is indeed the problem, try putting makehuman in a path with only ASCII (a-z) characters, such as c:\makehuman. Unfortunately this includes the user name, since that is included in the path for where MakeHuman stores it user files. '''Reporting the problem and asking for support''' If you are not able to solve the problem, report it on the [http://www.makehumancommunity.org/forum/ forum] but be sure to follow the instructions in [[FAQ:How to provide a makehuman log for a good bug report?]] in order to provide enough info. == For version 1.0.2 and earlier == Under the following conditions: # You are using any version of windows # You have downloaded a zip file containing the release build 1.0.2 or earlier (ie, not a nightly build). # You have previously installed python # Other factors as yet unidentified (by seemingly more rare going forward) ... MakeHuman will crash before anything appears on screen. The reason is that there is a bundled python inside the build zips, but unfortunately a system-wide installation can, under certain circumstances, get detected first. This makes python look in the wrong place for DLLs etc, which causes the exe for the build to silently crash. There are several alternative work-arounds proposed for this. However, the simplest solution is the first one. # Upgrade to 1.1.0. The problem is fixed in that branch since years back. # Temporarily rename your python directory to something other than its directory path in your path statement. # Uninstall the existing python from the machine (fairly extreme). # Run source checkouts from bitbucket instead. In this case you must have python installed on the machine. 0ccf0aecd8833ce7aa1650590f343a0b7cc79943 1215 673 2016-11-11T10:08:55Z Joepal 14 wikitext text/x-wiki == For any version == The number one reason for this is a user error: you double-clicked the zip file (without extracting it) and then double-clicked the .exe file ''inside the zip''. This will not work. You need to first extract the zip file to a directory and then click the .exe file there. However, if this is not what happened, read on for other possible explanations. == For nightly builds and 1.1.0 == In more cases than not, this is a crash in your graphics card drivers rather than in MakeHuman as such. It is caused by a faulty or old implementation of OpenGL, something which is particularly common in integrated Intel graphics cards. You can try to upgrade the graphics card drivers to see if it helps. Another possible remedy is running MakeHuman with the --noshaders switch. See [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]]. In order to make sure that it is the indeed the graphics card that is causing the problem, look in your log (see [[FAQ:How to provide a makehuman log for a good bug report?]]). If the log file is only a few lines long rather than a screen page or more, but there is no particular error message at the end, then it is most likely the graphics card driver that crashed. Unfortunately, there is not a whole lot MakeHuman can do about faulty graphics card drivers. '''Alternative explanations''' Other possible reasons for this and similar problems may include: * Your antivirus quarantined a particular library in the downloaded zip. We've got reports that norton antivirus dislikes numpy for example. If this happens, random consequences ensue. * You have a very odd character encoding in your system and an uninterpretable character in the pathname. We ''think'' we have fixed most of these issues, but to test if this is indeed the problem, try putting makehuman in a path with only ASCII (a-z) characters, such as c:\makehuman. Unfortunately this includes the user name, since that is included in the path for where MakeHuman stores it user files. '''Reporting the problem and asking for support''' If you are not able to solve the problem, report it on the [http://www.makehumancommunity.org/forum/ forum] but be sure to follow the instructions in [[FAQ:How to provide a makehuman log for a good bug report?]] in order to provide enough info. == For version 1.0.2 and earlier == Under the following conditions: # You are using any version of windows # You have downloaded a zip file containing the release build 1.0.2 or earlier (ie, not a nightly build). # You have previously installed python # Other factors as yet unidentified (by seemingly more rare going forward) ... MakeHuman will crash before anything appears on screen. The reason is that there is a bundled python inside the build zips, but unfortunately a system-wide installation can, under certain circumstances, get detected first. This makes python look in the wrong place for DLLs etc, which causes the exe for the build to silently crash. There are several alternative work-arounds proposed for this. However, the simplest solution is the first one. # Upgrade to 1.1.0. The problem is fixed in that branch since years back. # Temporarily rename your python directory to something other than its directory path in your path statement. # Uninstall the existing python from the machine (fairly extreme). # Run source checkouts from bitbucket instead. In this case you must have python installed on the machine. c24ed7765933904125e01f18c48e1a0feec90d56 673 672 2016-05-20T07:44:07Z Joepal 14 wikitext text/x-wiki == For nightly builds and 1.1.0 == In more cases than not, this is a crash in your graphics card drivers rather than in MakeHuman as such. It is caused by a faulty or old implementation of OpenGL, something which is particularly common in integrated Intel graphics cards. You can try to upgrade the graphics card drivers to see if it helps. Another possible remedy is running MakeHuman with the --noshaders switch. See [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]]. In order to make sure that it is the indeed the graphics card that is causing the problem, look in your log (see [[FAQ:How to provide a makehuman log for a good bug report?]]). If the log file is only a few lines long rather than a screen page or more, but there is no particular error message at the end, then it is most likely the graphics card driver that crashed. Unfortunately, there is not a whole lot MakeHuman can do about faulty graphics card drivers. '''Alternative explanations''' Other possible reasons for this and similar problems may include: * Your antivirus quarantined a particular library in the downloaded zip. We've got reports that norton antivirus dislikes numpy for example. If this happens, random consequences ensue. * You have a very odd character encoding in your system and an uninterpretable character in the pathname. We ''think'' we have fixed most of these issues, but to test if this is indeed the problem, try putting makehuman in a path with only ASCII (a-z) characters, such as c:\makehuman. '''Reporting the problem and asking for support''' If you are not able to solve the problem, report it on the [http://www.makehumancommunity.org/forum/ forum] but be sure to follow the instructions in [[FAQ:How to provide a makehuman log for a good bug report?]] in order to provide enough info. == For version 1.0.2 and earlier == Under the following conditions: # You are using any version of windows # You have downloaded a zip file containing the release build 1.0.2 or earlier (ie, not a nightly build). # You have previously installed python # Other factors as yet unidentified (by seemingly more rare going forward) ... MakeHuman will crash before anything appears on screen. The reason is that there is a bundled python inside the build zips, but unfortunately a system-wide installation can, under certain circumstances, get detected first. This makes python look in the wrong place for DLLs etc, which causes the exe for the build to silently crash. There are several alternative work-arounds proposed for this. However, the simplest solution is the first one. # Upgrade to 1.1.0. The problem is fixed in that branch since years back. # Temporarily rename your python directory to something other than its directory path in your path statement. # Uninstall the existing python from the machine (fairly extreme). # Run source checkouts from bitbucket instead. In this case you must have python installed on the machine. 1d1a1d2174ce225563b1a118c999cb26056dced5 672 671 2016-05-20T07:40:30Z Joepal 14 wikitext text/x-wiki == For nightly builds and 1.1.0 == In more cases than not, this is a crash in your graphics card drivers rather than in MakeHuman as such. It is caused by a faulty or old implementation of OpenGL, something which is particularly common in integrated Intel graphics cards. You can try to upgrade the graphics card drivers to see if it helps. Another possible remedy is running MakeHuman with the --noshaders switch. See [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]]. In order to make sure that it is the indeed the graphics card that is causing the problem, look in your log (see [[FAQ:How to provide a makehuman log for a good bug report?]]). If the log file is only a few lines long rather than a screen page or more, but there is no particular error message at the end, then it is most likely the graphics card driver that crashed. Unfortunately, there is not a whole lot MakeHuman can do about faulty graphics card drivers. '''Alternative explanations''' Other possible reasons for this and similar problems may include: * Your antivirus quarantined a particular library in the downloaded zip. We've got reports that norton antivirus dislikes numpy for example. If this happens, random consequences ensue. * You have a very odd character encoding in your system and an uninterpretable character in the pathname. We ''think'' we have fixed most of these issues, but to test if this is indeed the problem, try putting makehuman in a path with only ASCII (a-z) characters, such as c:\makehuman. '''Reporting the problem and asking for support''' If you are not able to solve the problem, report it on the forum but be sure to follow the instructions in [[FAQ:How to provide a makehuman log for a good bug report?]] in order to provide enough info. == For version 1.0.2 and earlier == Under the following conditions: # You are using any version of windows # You have downloaded a zip file containing the release build 1.0.2 or earlier (ie, not a nightly build). # You have previously installed python # Other factors as yet unidentified (by seemingly more rare going forward) ... MakeHuman will crash before anything appears on screen. The reason is that there is a bundled python inside the build zips, but unfortunately a system-wide installation can, under certain circumstances, get detected first. This makes python look in the wrong place for DLLs etc, which causes the exe for the build to silently crash. There are several alternative work-arounds proposed for this. However, the simplest solution is the first one. # Upgrade to 1.1.0. The problem is fixed in that branch since years back. # Temporarily rename your python directory to something other than its directory path in your path statement. # Uninstall the existing python from the machine (fairly extreme). # Run source checkouts from bitbucket instead. In this case you must have python installed on the machine. 084455178ee701924dc0a2724536710dbafa7099 671 670 2016-05-20T07:39:17Z Joepal 14 wikitext text/x-wiki == For nightly builds and 1.1.0 == In more cases than not, this is a crash in your graphics card drivers rather than in MakeHuman as such. It is caused by a faulty or old implementation of OpenGL, something which is particularly common in integrated Intel graphics cards. You can try to upgrade the graphics card drivers to see if it helps. Another possible remedy is running MakeHuman with the --noshaders switch. See [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]]. In order to make sure that it is the indeed the graphics card that is causing the problem, look in your log (see [[FAQ:How to provide a makehuman log for a good bug report?]]). If the log file is only a few lines long rather than a screen page or more, but there is no particular error message at the end, then it is most likely the graphics card driver that crashed. Unfortunately, there is not a whole lot MakeHuman can do about faulty graphics card drivers. '''Alternative explanations''' Other possible reasons for this and similar problems may include: * Your antivirus quarantined a particular library in the downloaded zip. We've got reports that norton antivirus dislikes numpy for example. If this happens, random consequences ensue. * You have a very odd character encoding in your system and an uninterpretable character in the pathname. We ''think'' we have fixed most of these issues, but to test if this is indeed the problem, try putting makehuman in a path with only ASCII (a-z) characters, such as c:\makehuman. == For version 1.0.2 and earlier == Under the following conditions: # You are using any version of windows # You have downloaded a zip file containing the release build 1.0.2 or earlier (ie, not a nightly build). # You have previously installed python # Other factors as yet unidentified (by seemingly more rare going forward) ... MakeHuman will crash before anything appears on screen. The reason is that there is a bundled python inside the build zips, but unfortunately a system-wide installation can, under certain circumstances, get detected first. This makes python look in the wrong place for DLLs etc, which causes the exe for the build to silently crash. There are several alternative work-arounds proposed for this. However, the simplest solution is the first one. # Upgrade to 1.1.0. The problem is fixed in that branch since years back. # Temporarily rename your python directory to something other than its directory path in your path statement. # Uninstall the existing python from the machine (fairly extreme). # Run source checkouts from bitbucket instead. In this case you must have python installed on the machine. 0b11ad5b5ff8edb733f30ac19f047f9e2db34660 670 669 2016-05-17T18:02:47Z Joepal 14 wikitext text/x-wiki == For nightly builds and 1.1.0 == In more cases than not, this is a crash in your graphics card drivers rather than in MakeHuman as such. It is caused by a faulty or old implementation of OpenGL, something which is particularly common in integrated Intel graphics cards. You can try to upgrade the graphics card drivers to see if it helps. Another possible remedy is running MakeHuman with the --noshaders switch. See [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]]. In order to make sure that it is the indeed the graphics card that is causing the problem, look in your log (see [[FAQ:How to provide a makehuman log for a good bug report?]]). If the log file is only a few lines long rather than a screen page or more, but there is no particular error message at the end, then it is most likely the graphics card driver that crashed. Unfortunately, there is not a whole lot MakeHuman can do about faulty graphics card drivers. == For version 1.0.2 and earlier == Under the following conditions: # You are using any version of windows # You have downloaded a zip file containing the release build 1.0.2 or earlier (ie, not a nightly build). # You have previously installed python # Other factors as yet unidentified (by seemingly more rare going forward) ... MakeHuman will crash before anything appears on screen. The reason is that there is a bundled python inside the build zips, but unfortunately a system-wide installation can, under certain circumstances, get detected first. This makes python look in the wrong place for DLLs etc, which causes the exe for the build to silently crash. There are several alternative work-arounds proposed for this. However, the simplest solution is the first one. # Upgrade to 1.1.0. The problem is fixed in that branch since years back. # Temporarily rename your python directory to something other than its directory path in your path statement. # Uninstall the existing python from the machine (fairly extreme). # Run source checkouts from bitbucket instead. In this case you must have python installed on the machine. eca48588f72e18306e9fdda8715e188d0ab59800 669 668 2016-05-17T18:01:33Z Joepal 14 wikitext text/x-wiki == For nightly builds and 1.1.0 == In more cases than not, this is a crash in your graphics card drivers rather than in MakeHuman as such. It is caused by a faulty or old implementation of OpenGL, something which is particularly common in integrated Intel graphics cards. You can try to upgrade the graphics card drivers to see if it helps. Another possible remedy is running MakeHuman with the --noshaders switch. See [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]]. In order to make sure that it is the indeed the graphics card that is causing the problem, look in your log (see [[FAQ:How to provide a makehuman log for a good bug report?]]). If the log file is only a few lines long rather than a screen page or more, but there is no particular error message at the end, then it is most likely the graphics card driver that crashed. Unfortunately, there is not a whole lot MakeHuman can do about faulty graphics card drivers. == For version 1.0.2 and earlier == Under the following conditions: # You are using any version of windows # You have downloaded a zip file containing the release build 1.0.2 or earlier (ie, not a nightly build). # You have previously installed python # Other factors as yet unidentified (by seemingly more rare going forward) ... MakeHuman will crash before anything appears on screen. The reason is that there is a bundled python inside the build zips, but unfortunately a system-wide installation can, under certain circumstances, get detected first. This makes python look in the wrong place for DLLs etc, which causes the exe for the build to silently crash. There are several alternative work-arounds proposed for this. However, the simplest solution is the first one. # Use the nightly build instead. The problem is fixed since a while back in this. # Temporarily rename your python directory to something other than its directory path in your path statement. # Uninstall the existing python from the machine (fairly extreme). # Run source checkouts from bitbucket instead. In this case you must have python installed on the machine. a30c7505d19e524cd2ea09a7b97bea3d1ee1cbe5 668 667 2016-05-17T17:59:15Z Joepal 14 wikitext text/x-wiki == For nightly builds and 1.1.0 == In more cases than not, this is a crash in your graphics card drivers rather than in MakeHuman as such. It is caused by a faulty or old implementation of OpenGL, something which is particularly common in integrated Intel graphics cards. You can try to upgrade the graphics card drivers to see if it helps. Another possible remedy is running MakeHuman with the --noshaders switch. See [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]]. In order to make sure that it is the indeed the graphics card that is causing the problem, look in your log (see [[FAQ:How to provide a makehuman log for a good bug report?]]). If the log file is only a few lines long rather than a screen page or more, but there is no particular error message at the end, then it is most likely the graphics card driver that crashed. Unfortunately, there is not a whole lot MakeHuman can do about fault graphics card drivers. == For version 1.0.2 and earlier == Under the following conditions: # You are using any version of windows # You have downloaded a zip file containing the release build 1.0.2 or earlier (ie, not a nightly build). # You have previously installed python # Other factors as yet unidentified (by seemingly more rare going forward) ... MakeHuman will crash before anything appears on screen. The reason is that there is a bundled python inside the build zips, but unfortunately a system-wide installation can, under certain circumstances, get detected first. This makes python look in the wrong place for DLLs etc, which causes the exe for the build to silently crash. There are several alternative work-arounds proposed for this. However, the simplest solution is the first one. # Use the nightly build instead. The problem is fixed since a while back in this. # Temporarily rename your python directory to something other than its directory path in your path statement. # Uninstall the existing python from the machine (fairly extreme). # Run source checkouts from bitbucket instead. In this case you must have python installed on the machine. 092ae3d799dcd728b3c2f106dab7c13ce577f996 667 666 2016-05-17T17:58:43Z Joepal 14 wikitext text/x-wiki == For nightly builds and 1.1.0 == In more cases than not, this is a crash in your graphics card drivers rather than in MakeHuman as such. It is caused by a faulty or old implementation of OpenGL, something which is particularly common in integrated Intel graphics cards. You can try to upgrade the graphics card drivers to see if it helps. Another possible is running MakeHuman with the --noshaders switch. See [[FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me?]]. In order to make sure that it is the indeed the graphics card that is causing the problem, look in your log (see [[FAQ:How to provide a makehuman log for a good bug report?]]). If the log file is only a few lines long rather than a screen page or more, but there is no particular error message at the end, then it is most likely the graphics card driver that crashed. Unfortunately, there is not a whole lot MakeHuman can do about fault graphics card drivers. == For version 1.0.2 and earlier == Under the following conditions: # You are using any version of windows # You have downloaded a zip file containing the release build 1.0.2 or earlier (ie, not a nightly build). # You have previously installed python # Other factors as yet unidentified (by seemingly more rare going forward) ... MakeHuman will crash before anything appears on screen. The reason is that there is a bundled python inside the build zips, but unfortunately a system-wide installation can, under certain circumstances, get detected first. This makes python look in the wrong place for DLLs etc, which causes the exe for the build to silently crash. There are several alternative work-arounds proposed for this. However, the simplest solution is the first one. # Use the nightly build instead. The problem is fixed since a while back in this. # Temporarily rename your python directory to something other than its directory path in your path statement. # Uninstall the existing python from the machine (fairly extreme). # Run source checkouts from bitbucket instead. In this case you must have python installed on the machine. 8a9be92a2d8c73cfcbe561a7f8bdd790c3029696 666 110 2016-05-17T15:48:47Z Joepal 14 wikitext text/x-wiki == For nightly builds and 1.1.0 == In more cases than not, this is a crash in your graphics card drivers rather than in MakeHuman as such. It is caused by a faulty or old implementation of OpenGL, something which is particularly common in integrated Intel graphics cards. You can try to upgrade the graphics card drivers to see if it helps. == For version 1.0.2 and earlier == Under the following conditions: # You are using any version of windows # You have downloaded a zip file containing the release build 1.0.2 or earlier (ie, not a nightly build). # You have previously installed python # Other factors as yet unidentified (by seemingly more rare going forward) ... MakeHuman will crash before anything appears on screen. The reason is that there is a bundled python inside the build zips, but unfortunately a system-wide installation can, under certain circumstances, get detected first. This makes python look in the wrong place for DLLs etc, which causes the exe for the build to silently crash. There are several alternative work-arounds proposed for this. However, the simplest solution is the first one. # Use the nightly build instead. The problem is fixed since a while back in this. # Temporarily rename your python directory to something other than its directory path in your path statement. # Uninstall the existing python from the machine (fairly extreme). # Run source checkouts from bitbucket instead. In this case you must have python installed on the machine. 6f0c548a0cf01bd2bd3a61b5216dd97681ff5b19 110 2015-07-10T10:17:48Z Joepal 14 Created page with "Under the following conditions: # You are using any version of windows # You have downloaded a zip file containing the release build 1.0.2 or earlier (ie, not a nightly build..." wikitext text/x-wiki Under the following conditions: # You are using any version of windows # You have downloaded a zip file containing the release build 1.0.2 or earlier (ie, not a nightly build). # You have previously installed python # Other factors as yet unidentified (by seemingly more rare going forward) ... MakeHuman will crash before anything appears on screen. The reason is that there is a bundled python inside the build zips, but unfortunately a system-wide installation can, under certain circumstances, get detected first. This makes python look in the wrong place for DLLs etc, which causes the exe for the build to silently crash. There are several alternative work-arounds proposed for this. However, the simplest solution is the first one. # Use the nightly build instead. The problem is fixed since a while back in this. # Temporarily rename your python directory to something other than its directory path in your path statement. # Uninstall the existing python from the machine (fairly extreme). # Run source checkouts from bitbucket instead. In this case you must have python installed on the machine. bca070d888769fba34bc004d656cfb7610b3f4fc FAQ:MakeHuman renders odd colours and weird transparency artefacts. Can you help me? 3002 21 1995 1822 2021-01-25T23:28:51Z Hfugfn65438 108 depictions of opengl funnies wikitext text/x-wiki [[File:Odd colours.png|thumb|Odd colours]] [[File:Weird transparency.png|thumb|Weird transparency]] First, see if the instructions here are of any help: [[FAQ: The interface looks broken]] '''This page is only relevant for MH 1.1.x. If you experience the same problem with MH 1.2.x, please make a bug report and include the log file.''' If you experience this problem and are still using MH 1.1.x, please consider testing MH 1.2.x to see if it solves your problem. MH 1.1 and 1.2 should be possible to run side by side on the same machine. The problem is that your graphics card drivers doesn't agree with the somewhat quirky way MakeHuman uses OpenGL with shaders. This is a common problem of many graphic cards from all common producer (AMD, Intel, NVIDIA). From Intel.com: "OpenGL* is an API (Application Programming Interface) for 3D graphics that is used by many games. OpenGL enables hardware acceleration of 3D graphics, so support is required from the graphics drivers for optimum performance. The latest graphics drivers will usually provide the best compatibility with games that use OpenGL. Graphics drivers that come with Microsoft Windows or that are downloaded from Windows Update typically do not support OpenGL." On possible solution is to check the vendor official site download and install latest graphics drivers for your card. If all else fails, MakeHuman has a fallback mode that disables all shaders and takes you back to good old 2003 fixed function shading. To enable this, run makehuman with the following commandline option: '''makehuman --noshaders''' In windows, the easiest way to do this is to create a shortcut: [[File:Noshaders1.png]] And then edit it and add "--noshaders" [[File:NoShaders2.png]] 192fef5ed068eee0da095cdc9f13b84662d843ba 1822 1798 2020-07-23T12:55:24Z Joepal 14 wikitext text/x-wiki First, see if the instructions here are of any help: [[FAQ: The interface looks broken]] '''This page is only relevant for MH 1.1.x. If you experience the same problem with MH 1.2.x, please make a bug report and include the log file.''' If you experience this problem and are still using MH 1.1.x, please consider testing MH 1.2.x to see if it solves your problem. MH 1.1 and 1.2 should be possible to run side by side on the same machine. The problem is that your graphics card drivers doesn't agree with the somewhat quirky way MakeHuman uses OpenGL with shaders. This is a common problem of many graphic cards from all common producer (AMD, Intel, NVIDIA). From Intel.com: "OpenGL* is an API (Application Programming Interface) for 3D graphics that is used by many games. OpenGL enables hardware acceleration of 3D graphics, so support is required from the graphics drivers for optimum performance. The latest graphics drivers will usually provide the best compatibility with games that use OpenGL. Graphics drivers that come with Microsoft Windows or that are downloaded from Windows Update typically do not support OpenGL." On possible solution is to check the vendor official site download and install latest graphics drivers for your card. If all else fails, MakeHuman has a fallback mode that disables all shaders and takes you back to good old 2003 fixed function shading. To enable this, run makehuman with the following commandline option: '''makehuman --noshaders''' In windows, the easiest way to do this is to create a shortcut: [[File:Noshaders1.png]] And then edit it and add "--noshaders" [[File:NoShaders2.png]] c6a277cd0412381b7e75523ea2747f7f5db52b8c 1798 1797 2020-05-24T13:06:49Z Joepal 14 wikitext text/x-wiki '''This page is only relevant for MH 1.1.x. If you experience the same problem with MH 1.2.x, please make a bug report and include the log file.''' If you experience this problem and are still using MH 1.1.x, please consider testing MH 1.2.x to see if it solves your problem. MH 1.1 and 1.2 should be possible to run side by side on the same machine. The problem is that your graphics card drivers doesn't agree with the somewhat quirky way MakeHuman uses OpenGL with shaders. This is a common problem of many graphic cards from all common producer (AMD, Intel, NVIDIA). From Intel.com: "OpenGL* is an API (Application Programming Interface) for 3D graphics that is used by many games. OpenGL enables hardware acceleration of 3D graphics, so support is required from the graphics drivers for optimum performance. The latest graphics drivers will usually provide the best compatibility with games that use OpenGL. Graphics drivers that come with Microsoft Windows or that are downloaded from Windows Update typically do not support OpenGL." On possible solution is to check the vendor official site download and install latest graphics drivers for your card. If all else fails, MakeHuman has a fallback mode that disables all shaders and takes you back to good old 2003 fixed function shading. To enable this, run makehuman with the following commandline option: '''makehuman --noshaders''' In windows, the easiest way to do this is to create a shortcut: [[File:Noshaders1.png]] And then edit it and add "--noshaders" [[File:NoShaders2.png]] 49fed3a3f175074cb61b007e6ad4994d26d8b985 1797 1796 2020-05-24T13:06:16Z Joepal 14 wikitext text/x-wiki '''This page is only relevant for MH 1.1.x. If you experience the same problem with MH 1.2.x, please make a bug report and include the log file.''' If you experience this problem and are still using MH 1.1.x, please consider testing MH 1.2.x to see if it solves your problem. MH 1.1 and 1.2 should be possible to run side by side on the same machine. The problem is that your graphics card drivers that do not understand the somewhat quirky way MakeHuman uses OpenGL with shaders. This is a common problem of many graphic cards from all common producer (AMD, Intel, NVIDIA). From Intel.com: "OpenGL* is an API (Application Programming Interface) for 3D graphics that is used by many games. OpenGL enables hardware acceleration of 3D graphics, so support is required from the graphics drivers for optimum performance. The latest graphics drivers will usually provide the best compatibility with games that use OpenGL. Graphics drivers that come with Microsoft Windows or that are downloaded from Windows Update typically do not support OpenGL." On possible solution is to check the vendor official site download and install latest graphics drivers for your card. If all else fails, MakeHuman has a fallback mode that disables all shaders and takes you back to good old 2003 fixed function shading. To enable this, run makehuman with the following commandline option: '''makehuman --noshaders''' In windows, the easiest way to do this is to create a shortcut: [[File:Noshaders1.png]] And then edit it and add "--noshaders" [[File:NoShaders2.png]] 7b9ef75aaa797402b47a22650fc27ef2b39ecc31 1796 1795 2020-05-24T13:05:06Z Joepal 14 wikitext text/x-wiki '''This page is only relevant for MH 1.1.x. If you experience the same problem with MH 1.2.x, please make a bug report and include the log file.''' The problem is that your graphics card drivers that do not understand the somewhat quirky way MakeHuman uses OpenGL with shaders. This is a common problem of many graphic cards from all common producer (AMD, Intel, NVIDIA). From Intel.com: "OpenGL* is an API (Application Programming Interface) for 3D graphics that is used by many games. OpenGL enables hardware acceleration of 3D graphics, so support is required from the graphics drivers for optimum performance. The latest graphics drivers will usually provide the best compatibility with games that use OpenGL. Graphics drivers that come with Microsoft Windows or that are downloaded from Windows Update typically do not support OpenGL." On possible solution is to check the vendor official site download and install latest graphics drivers for your card. If all else fails, MakeHuman has a fallback mode that disables all shaders and takes you back to good old 2003 fixed function shading. To enable this, run makehuman with the following commandline option: '''makehuman --noshaders''' In windows, the easiest way to do this is to create a shortcut: [[File:Noshaders1.png]] And then edit it and add "--noshaders" [[File:NoShaders2.png]] 9dc73889f0d00497d86795a10532284c1a7eaa50 1795 1544 2020-05-24T13:03:44Z Joepal 14 wikitext text/x-wiki '''This page is only relevant for MH 1.1.x. If you experience the same problem with MH 1.2.x, please make a bug report and include the log file.''' The problem is with your graphics card drivers that do not properly support OpenGL with shaders. This is a common problem of many graphic cards from all common producer (AMD, Intel, NVIDIA). From Intel.com: "OpenGL* is an API (Application Programming Interface) for 3D graphics that is used by many games. OpenGL enables hardware acceleration of 3D graphics, so support is required from the graphics drivers for optimum performance. The latest graphics drivers will usually provide the best compatibility with games that use OpenGL. Graphics drivers that come with Microsoft Windows or that are downloaded from Windows Update typically do not support OpenGL." So the general solution is to check the vendor official site download and install latest graphics drivers for your card. If all else fails, MakeHuman has a fallback mode that disables all shaders and takes you back to good old 2003 fixed function shading. To enable this, run makehuman with the following commandline option: '''makehuman --noshaders''' In windows, the easiest way to do this is to create a shortcut: [[File:Noshaders1.png]] And then edit it and add "--noshaders" [[File:NoShaders2.png]] f860952124107d27b4da8f82b468536384eb8935 1544 1333 2018-12-13T07:47:45Z Aranuvir 17 wikitext text/x-wiki The problem is with your graphics card drivers that do not properly support OpenGL with shaders. This is a common problem of many graphic cards from all common producer (AMD, Intel, NVIDIA). From Intel.com: "OpenGL* is an API (Application Programming Interface) for 3D graphics that is used by many games. OpenGL enables hardware acceleration of 3D graphics, so support is required from the graphics drivers for optimum performance. The latest graphics drivers will usually provide the best compatibility with games that use OpenGL. Graphics drivers that come with Microsoft Windows or that are downloaded from Windows Update typically do not support OpenGL." So the general solution is to check the vendor official site download and install latest graphics drivers for your card. If all else fails, MakeHuman has a fallback mode that disables all shaders and takes you back to good old 2003 fixed function shading. To enable this, run makehuman with the following commandline option: '''makehuman --noshaders''' In windows, the easiest way to do this is to create a shortcut: [[File:Noshaders1.png]] And then edit it and add "--noshaders" [[File:NoShaders2.png]] 8c8accbfb669a064c6e02d39deeb723cd213f133 1333 1332 2017-03-04T09:39:58Z Joepal 14 wikitext text/x-wiki The problem is with your graphics card drivers that do not properly support OpenGL with shaders. This is a common problem of Intel cards and some other cards. About Intel, the official site (https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=20046) says: OpenGL* is an API (Application Programming Interface) for 3D graphics that is used by many games. OpenGL enables hardware acceleration of 3D graphics, so support is required from the graphics drivers for optimum performance. The latest graphics drivers will usually provide the best compatibility with games that use OpenGL. Graphics drivers that come with Microsoft Windows or that are downloaded from Windows Update typically do not support OpenGL. So the general solution is to check the vendor official site download and install latest graphics drivers for your card. Note that for Linux, this makes things ''worse'' though, as newer Intel drivers (shipped with Ubuntu 16.04 and later) broke systems that were working perfectly fine on earlier versions (shipped with Ubuntu 14.04 and earlier). If all else fails, MakeHuman has a fallback mode that disables all shaders and takes you back to good old 2003 fixed function shading. To enable this, run makehuman with the following commandline option: '''makehuman --noshaders''' In windows, the easiest way to do this is to create a shortcut: [[File:Noshaders1.png]] And then edit it and add "--noshaders" [[File:NoShaders2.png]] 593dfcdc21821f36130e4021c7724e43c7635229 1332 1206 2017-03-04T09:39:25Z Joepal 14 wikitext text/x-wiki The problem is with your graphics card drivers that do not properly support OpenGL with shaders. This is a common problem of Intel cards and some other cards. About Intel, the official site (https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=20046) says: OpenGL* is an API (Application Programming Interface) for 3D graphics that is used by many games. OpenGL enables hardware acceleration of 3D graphics, so support is required from the graphics drivers for optimum performance. The latest graphics drivers will usually provide the best compatibility with games that use OpenGL. Graphics drivers that come with Microsoft Windows or that are downloaded from Windows Update typically do not support OpenGL. So the general solution is to check the vendor official site download and install latest graphics drivers for your card. Note that for Linux, this makes things ''worse'' though, as newer Intel drivers (shipped with Ubuntu 16.04 and later) broke systems that were working perfectly fine on earlier versions (shipped with Ubuntu 14.04 and earlier). If all else fails, MakeHuman has a fallback mode that disables all shaders and takes you back to good old 2003 fixed function shading. To enable this, run makehuman with the following commandline option: makehuman --noshaders In windows, the easiest way to do this is to create a shortcut: [[File:Noshaders1.png]] And then edit it and add "--noshaders" [[File:NoShaders2.png]] b7c7d18a8915b251f5a6323500a0488731ddd24f 1206 533 2016-10-21T17:00:18Z Robbaer 12 wikitext text/x-wiki The problem is with your graphics card drivers that do not properly support OpenGL with shaders. This is a common problem of Intel cards and some other cards. About Intel, the official site (https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=20046) says: OpenGL* is an API (Application Programming Interface) for 3D graphics that is used by many games. OpenGL enables hardware acceleration of 3D graphics, so support is required from the graphics drivers for optimum performance. The latest graphics drivers will usually provide the best compatibility with games that use OpenGL. Graphics drivers that come with Microsoft Windows or that are downloaded from Windows Update typically do not support OpenGL. So the general solution is to check the vendor official site download and install latest graphics drivers for your card. If all else fails, MakeHuman has a fallback mode that disables all shaders and takes you back to good old 2003 fixed function shading. To enable this, run makehuman with the following commandline option: makehuman --noshaders In windows, the easiest way to do this is to create a shortcut: [[File:Noshaders1.png]] And then edit it and add "--noshaders" [[File:NoShaders2.png]] c77d7a9ed2a88decc5eb3ff0ad8d8a2ec2db3742 533 532 2015-10-03T14:23:13Z Joepal 14 wikitext text/x-wiki The problem is with your graphics card drivers that do not properly support OpenGL with shaders. This is a common problem of Intel cards and some other cards. About Intel, the official site (https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=20046) says: OpenGL* is an API (Application Programming Interface) for 3D graphics that is used by many games. OpenGL enables hardware acceleration of 3D graphics, so support is required from the graphics drivers for optimum performance. The latest graphics drivers will usually provide the best compatibility with games that use OpenGL. Graphics drivers that come with Microsoft Windows or that are downloaded from Windows Update typically do not support OpenGL. So the general solution is to check the vendor official site download and install latest graphics drivers for your card. If all else fails, MakeHuman has a fallback mode that disables all shaders and takes you back to good old 2003 fixed function shading. To enable this, run makehuman with the following commandline option: makehuman --noshaders In windows, the easiest way to do this is to create a shortcut: [[File:Noshaders1.png]] And then edit it and add "--noshaders" [[File:Noshaders2.png]] dd8750a4691c290793ee6b074b73eaecc117be73 532 77 2015-10-03T14:22:31Z Joepal 14 wikitext text/x-wiki The problem is with your graphics card drivers that do not properly support OpenGL with shaders. This is a common problem of Intel cards and some other cards. About Intel, the official site (https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=20046) says: OpenGL* is an API (Application Programming Interface) for 3D graphics that is used by many games. OpenGL enables hardware acceleration of 3D graphics, so support is required from the graphics drivers for optimum performance. The latest graphics drivers will usually provide the best compatibility with games that use OpenGL. Graphics drivers that come with Microsoft Windows or that are downloaded from Windows Update typically do not support OpenGL. So the general solution is to check the vendor official site download and install latest graphics drivers for your card. If all else fails, MakeHuman has a fallback mode that disables all shaders and takes you back to good old 2003 fixed function shading. To enable this, run makehuman with the following commandline option: makehuman --noshaders In windows, the easiest way to do this is to create a shortcut: [File:Noshaders1.png] And then edit it and add "--noshaders" [File:Noshaders2.png] 24134b76e4bc0f0e0f81afe976be85e791e60550 77 2015-07-09T07:32:13Z Joepal 14 Created page with "The problem is with your graphics card drivers that do not properly support OpenGL with shaders. This is a common problem of Intel cards and some other cards. About Intel, th..." wikitext text/x-wiki The problem is with your graphics card drivers that do not properly support OpenGL with shaders. This is a common problem of Intel cards and some other cards. About Intel, the official site (https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=20046) says: OpenGL* is an API (Application Programming Interface) for 3D graphics that is used by many games. OpenGL enables hardware acceleration of 3D graphics, so support is required from the graphics drivers for optimum performance. The latest graphics drivers will usually provide the best compatibility with games that use OpenGL. Graphics drivers that come with Microsoft Windows or that are downloaded from Windows Update typically do not support OpenGL. So the general solution is to check the vendor official site download and install latest graphics drivers for your card. If all else fails, MakeHuman has a fallback mode that disables all shaders and takes you back to good old 2003 fixed function shading. To enable this, run makehuman with the following commandline option: makehuman --noshaders 8239ddeb3e218c01eb6e8474f3cff29939330a16 FAQ:My Antivirus tool blocks MakeHuman / Norton Antivirus reports WS.Reputation.1 3002 517 1325 2017-02-19T14:17:13Z Aranuvir 17 Created page with "Norton Antivirus and other antivirus tools have a "feature" that classifies anything it doesn't recognize as a virus. A good discussion about this "feature" is available at ht..." wikitext text/x-wiki Norton Antivirus and other antivirus tools have a "feature" that classifies anything it doesn't recognize as a virus. A good discussion about this "feature" is available at http://community.norton.com/t5/Norton-Internet-Security-Norton/WS-Reputation-1-is-NOT-helpful/td-p/537550. Since the the development crew cannot spend money for a code signing certificate, there is now possibility to automatically whitelist MakeHuman. The MakeHuman crew perceives this phenomenon as a bug with the antivirus solutions, and not with MakeHuman, and will refer any reports of the issue to the producer of the antivirus tool. The suggested solution is to either switch the antivirus solution or to manually whitelist the binary on your local computer, under the precaution MakeHuman was received from a trusted source. 73abd5704123f05b01884508245838de4b1c2bf6 FAQ:My Antivirus tool blocks MakeHuman or Norton Antivirus reports WS.Reputation.1 3002 518 1327 2017-02-19T14:18:20Z Aranuvir 17 Created page with "Norton Antivirus and other antivirus tools have a "feature" that classifies anything it doesn't recognize as a virus. A good discussion about this "feature" is available at ht..." wikitext text/x-wiki Norton Antivirus and other antivirus tools have a "feature" that classifies anything it doesn't recognize as a virus. A good discussion about this "feature" is available at http://community.norton.com/t5/Norton-Internet-Security-Norton/WS-Reputation-1-is-NOT-helpful/td-p/537550. Since the the development crew cannot spend money for a code signing certificate, there is now possibility to automatically whitelist MakeHuman. The MakeHuman crew perceives this phenomenon as a bug with the antivirus solutions, and not with MakeHuman, and will refer any reports of the issue to the producer of the antivirus tool. The suggested solution is to either switch the antivirus solution or to manually whitelist the binary on your local computer, under the precaution MakeHuman was received from a trusted source. 73abd5704123f05b01884508245838de4b1c2bf6 FAQ:Norton Antivirus reports WS.Reputation.1 in the nightly build. What gives? 3002 44 1323 106 2017-02-19T14:15:22Z Aranuvir 17 wikitext text/x-wiki Norton Antivirus and other antivirus tools have a "feature" that classifies anything it doesn't recognize as a virus. A good discussion about this "feature" is available at http://community.norton.com/t5/Norton-Internet-Security-Norton/WS-Reputation-1-is-NOT-helpful/td-p/537550. Since the the development crew cannot spend money for a code signing certificate, there is now possibility to automatically whitelist MakeHuman. The MakeHuman crew perceives this phenomenon as a bug with the antivirus solutions, and not with MakeHuman, and will refer any reports of the issue to the producer of the antivirus tool. The suggested solution is to either switch the antivirus solution or to manually whitelist the binary on your local computer, under the precaution MakeHuman was received from a trusted source. 73abd5704123f05b01884508245838de4b1c2bf6 106 2015-07-10T10:07:20Z Joepal 14 Created page with "Norton Antivirus has a "feature" that classifies anything it doesn't recognize as a virus. A good discussion about this "feature" is available at http://community.norton.com/t..." wikitext text/x-wiki Norton Antivirus has a "feature" that classifies anything it doesn't recognize as a virus. A good discussion about this "feature" is available at http://community.norton.com/t5/Norton-Internet-Security-Norton/WS-Reputation-1-is-NOT-helpful/td-p/537550. Since the nightly build obviously changes very frequently, it is not possible to whitelist globally with Norton. The MakeHuman crew perceives this phenomenon as a bug with Norton Antivirus, and not with MakeHuman, and will refer any reports of the issue to Norton. The suggested solution is to either switch the antivirus solution or to manually whitelist the binary on your local computer. 6d7ef51026644a12d5af73af1daa9c96f032647c FAQ:Scrolling does not work 3002 668 1932 1931 2020-11-13T06:41:50Z Joepal 14 wikitext text/x-wiki When starting MakeHuman, everything looks fine. But when you try to scroll a panel, it either does not work at all, or the contents in the panel is compressed. This happens when you use a PyQt version later than 5.12. Something in the MakeHuman UI code is incompatible with the latest PyQt versions. At this point, the only solution we have is to downgrade PyQt to 5.12. Note that if you run from source, you can do so in [[https://docs.python.org/3/tutorial/venv.html a python venv]] and install a a specific version of PyQt there. That way you don't need to touch the system-wide installed PyQt. Running in venv is our currently recommended approach for Ubuntu 20.10 (Ubuntu 20.04 and earlier should not have the problem). On ubuntu the commands are these: apt-get install python3-virtualenv virtualenv makehuman-env source makehuman-env/bin/activate pip install PyQt5==5.12.1 numpy pyopengl Now you have a python command which will use pyqt 5.12, and can follow the instructions for running from source, see http://www.makehumancommunity.org/wiki/FAQ:How_can_I_run_the_same_code_as_the_nightly_build_from_source%3F (skip the parts about apt-get installing dependencies.. This is what you did with pip above here). c042284c47850ec41309222adf9ece939bd6ba9f 1931 1920 2020-11-06T14:06:21Z Joepal 14 wikitext text/x-wiki When starting MakeHuman, everything looks fine. But when you try to scroll a panel, it either does not work at all, or the contents in the panel is compressed. This happens when you use a PyQt version later than 5.12. Something in the MakeHuman UI code is incompatible with the latest PyQt versions. At this point, the only solution we have is to downgrade PyQt to 5.12. Note that if you run from source, you can do so in [[https://docs.python.org/3/tutorial/venv.html a python venv]] and install a a specific version of PyQt there. That way you don't need to touch the system-wide installed PyQt. Running in venv is our currently recommended approach for Ubuntu 20.10 (Ubuntu 20.04 and earlier should not have the problem). c9cf7b577d4becef47786bd1ca10d37e4c01460e 1920 1909 2020-10-31T11:37:46Z Joepal 14 wikitext text/x-wiki When starting MakeHuman, everything looks fine. But when you try to scroll a panel, it either does not work at all, or the contents in the panel is compressed. This happens when you use a PyQt version later than 5.12. Something in the MakeHuman UI code is incompatible with the latest PyQt versions. At this point, the only solution we have is to downgrade PyQt to 5.12. Note that if you run from source, you can do so in [[https://docs.python.org/3/tutorial/venv.html a python venv]] and install a a specific version of PyQt there. That way you don't need to touch the system-wide installed PyQt. Running in venv is our currently recommended approach for Ubuntu 20.10. b916db239a359cb1267874e877b4adc560162ebe 1909 2020-10-25T13:32:12Z Joepal 14 Created page with "When starting MakeHuman, everything looks fine. But when you try to scroll a panel, it either does not work at all, or the contents in the panel is compressed. This happens w..." wikitext text/x-wiki When starting MakeHuman, everything looks fine. But when you try to scroll a panel, it either does not work at all, or the contents in the panel is compressed. This happens when you use a PyQt version later than 5.12. Something in the MakeHuman UI code is incompatible with the latest PyQt versions. At this point, the only solution we have is to downgrade PyQt to 5.12. 6a06027e7a476c93e85bc6df78d32c68d58fe7eb FAQ:The eyes look flat and "dead" in blender 3002 528 1402 1401 2017-06-06T15:13:04Z Robbaer 12 wikitext text/x-wiki The default MHX2 material is a least common denominator, and you'll most likely want to tweak it a bit for the eyes. There are usually two problems. The first is that the eyewhites look gray, which is because you have too little light entering the eyes. To solve this, try to increase the light, ambient or otherwise, which shines on the eye area. The second is that eyes usually have "reflective shine", in the sense that the outer surface looks wet and has hard glossy highlights. By default the MHX2 eyes material looks like this when rendered: [[File:Glitter1.png]] With with relatively easy means, you can add "reflective shine" so that the eyes look like this: [[File:Glitter2.png]] To achieve this, select the outer layer of the high-poly eyes: [[File:Glitter3.png]] And assign a new transparent material with an "add" shader adding a hard glossy: [[File:Glitter4.png]] 3932ccf07a3c1da50314b1ead0e0fa5ac203c85b 1401 1400 2017-06-06T15:12:28Z Robbaer 12 wikitext text/x-wiki The default MHX2 material is a least common denominator, and you'll most likely want to tweak it a bit for the eyes. There are usually two problems. The first is that the eyewhites look gray, which is because you have too little light entering the eyes. To solve this, try to increase the light, ambient or otherwise, which shines on the eye area. The second is that eyes usually "reflective shine", in the sense that the outer surface looks wet and has hard glossy highlights. By default the MHX2 eyes material looks like this when rendered: [[File:Glitter1.png]] With with relatively easy means, you can add "reflective shine" so that the eyes look like this: [[File:Glitter2.png]] To achieve this, select the outer layer of the high-poly eyes: [[File:Glitter3.png]] And assign a new transparent material with an "add" shader adding a hard glossy: [[File:Glitter4.png]] ec5bafb7a9ac009d19cd6e3f4de8969430dbc5ab 1400 1399 2017-06-06T15:11:24Z Robbaer 12 wikitext text/x-wiki The default MHX2 material is a least common denominator, and you'll most likely want to tweak it a bit for the eyes. There are usually two problems. The first is that the eyewhites look gray, which is because you have too little light entering the eyes. To solve this, try to increase the light, ambient or otherwise, which shines on the eye area. The second is that eyes usually "shine", in the sense that the outer surface looks wet and has hard glossy highlights. By default the MHX2 eyes material looks like this when rendered: [[File:Glitter1.png]] With with relatively easy means, you can add "shine" so that the eyes look like this: [[File:Glitter2.png]] To achieve this, select the outer layer of the high-poly eyes: [[File:Glitter3.png]] And assign a new transparent material with an "add" shader adding a hard glossy: [[File:Glitter4.png]] 7e2bad567fbf5a2803793e9774734ba7861d66c0 1399 2017-06-06T14:29:15Z Joepal 14 Created page with "The default MHX2 material is a least common denominator, and you'll most likely want to tweak it a bit for the eyes. There are usually two problems. The first is that the..." wikitext text/x-wiki The default MHX2 material is a least common denominator, and you'll most likely want to tweak it a bit for the eyes. There are usually two problems. The first is that the eyewhites look gray, which is because you have too little light entering the eyes. To solve this, try to increase the light, ambient or otherwise, which shines on the eye area. The second is that eyes usually "glitter", in the sense that the outer surface looks wet and has hard glossy highlights. By default the MHX2 eyes material looks like this when rendered: [[File:Glitter1.png]] With with relatively easy means, you can add "glitter" so that the eyes look like this: [[File:Glitter2.png]] To achieve this, select the outer layer of the high-poly eyes: [[File:Glitter3.png]] And assign a new transparent material with an "add" shader adding a hard glossy: [[File:Glitter4.png]] bdb7b8d1a93df86580130feb229f4d90f873a075 FAQ:The interface looks broken 3002 635 1821 1819 2020-07-23T12:54:21Z Joepal 14 wikitext text/x-wiki There are circumstances where not all graphics cards support all settings. Some of these settings are desired on other graphics cards. If you have problem with the 3d canvas being empty (no character is showing), or the 3d canvas seems to contain repeated fragments of the other parts of the interface, you can try to disable these settings. Go to the Settings -> General tab. First try to check "no sample buffers" and restart makehuman. If the problem persist, try to also check "no shaders" and restart makehuman. If things still are not working after this, please send us a log file: see [[FAQ: How to provide a makehuman log for a good bug report?]] [[File:Glsettings.png]] 6c5a5cd25c238622b0af736b038ba5027ac232a0 1819 2020-07-23T12:52:16Z Joepal 14 Created page with "There are circumstances where not all graphics cards support all settings. Some of these settings are desired on other graphics cards. If you have problem with the 3d canvas..." wikitext text/x-wiki There are circumstances where not all graphics cards support all settings. Some of these settings are desired on other graphics cards. If you have problem with the 3d canvas being empty (no character is showing), or the 3d canvas seems to contain repeated fragments of the other parts of the interface, you can try to disable these settings. Go to the Settings -> General tab. First try to check "no sample buffers" and restart makehuman. If the problem persist, try to also check "no shaders" and restart makehuman. If things still are not working after this, please send us a log file: see [[FAQ: How to provide a makehuman log for a good bug report?]] 0f75befa17fb52f497b13c62cf9ab3cfff048126 FAQ:The publisher could not be verified 3002 213 609 608 2016-03-06T13:22:05Z Joepal 14 wikitext text/x-wiki [[File:Publisher_verified.png]] This is because Microsoft expects all software authors to pay money to certificate authorities in order to get rid of the warning. There's no way around it, short of paying up. Even "small" recurring sums are insurmountable for an open source project which does not have a budget. So this is not going to be fixed anytime soon. The upside is you can simply ignore the warning and run anyway. Nothing bad will happen. d015971ddc8e777cf07dd194791963d572175ad5 608 2016-03-06T12:50:06Z Joepal 14 Created page with "[[File:Publisher_verified.png]] This is because Microsoft expects all software authors to pay lots of cash to certificate authorities in order to get rid of the warning. No m..." wikitext text/x-wiki [[File:Publisher_verified.png]] This is because Microsoft expects all software authors to pay lots of cash to certificate authorities in order to get rid of the warning. No money - warning remains. There's no way around it. To quote a tutorial on the subject: "We purchased a SHA-2 certificate from them in July 2015, and it seems to work fine for almost everything we need. It only costs about $219 per year." The "only" $219 is insurmountable for an open source project which does not have a budget. The upside is you can simply ignore the warning and run anyway. Nothing bad will happen. f9fbd250234302c91cd7197817accbf515b8bae2 FAQ:There seems to be a version mismatch between MHX and blender 3002 29 87 2015-07-09T11:43:43Z Joepal 14 Created page with "See [[FAQ:What happened to the MHX export in MH 1.1.x and later?]]" wikitext text/x-wiki See [[FAQ:What happened to the MHX export in MH 1.1.x and later?]] ad848e379db1010972b2e05cc9c78e3896fdff2f FAQ:We at company X don't like AGPL and want another license 3002 537 1434 2017-08-30T08:31:35Z Joepal 14 Created page with "The MH devs frequently get requests sent to their personal mailboxes, asking for exceptions from the AGPL license. The usual gist of these mails is that a company wants to p..." wikitext text/x-wiki The MH devs frequently get requests sent to their personal mailboxes, asking for exceptions from the AGPL license. The usual gist of these mails is that a company wants to profit from the MH codebase or the morph database by taking large parts of them and include them in their commercial software, but that they are unable to do so because of the AGPL license. They therefore want an exception from AGPL, for example a commercial license. At this point in time there are no plans to grant such exceptions. MakeHuman is an non-commercial open source project, and the plan is to remain that way. 24c4e8145ca2991fef125f32520689e06bedc4db FAQ:What's with the "makehuman-community-*" file name? 3002 532 1409 2017-07-13T11:06:43Z Joepal 14 Created page with "The nightly builds bundle more than just makehuman. They include (at least): * MHX2 * MHAPI * The asset downloader More extras might be included at a later time. The name..." wikitext text/x-wiki The nightly builds bundle more than just makehuman. They include (at least): * MHX2 * MHAPI * The asset downloader More extras might be included at a later time. The name is picked to reflect a focus on integration with the community site and the community assets. The final release will also be named "makehuman community" rather than just "makehuman". a78cc34e11eb17b57bbd71d44844e6331d9d94bf FAQ:What changed regarding the license in 2020? 3002 665 1891 1890 2020-10-25T12:08:56Z Joepal 14 wikitext text/x-wiki In september 2020, the overall license of MakeHuman was clarified and made more permissive. The full and updated license text can be found at https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, the goal was to remove any lingering doubts about whether the output from makehuman could be used freely and without license restrictions. These were the main changes: * BEFORE: Bundled assets are a part of the application * AFTER: Bundled assets are something the application uses, but which are otherwise considered standalone entities * BEFORE: Assets are per default covered by AGPL * AFTER: Assets are per default released as CC0 * BEFORE: Exports become covered by CC0 upon export via the GUI * AFTER: Exports only consist of things which were CC0 to start with * BEFORE: Targets, proxies and the base mesh are considered source code, covered by AGPL (unless exported via the GUI) * AFTER: Targets, proxies and the base mesh are considered graphical assets, covered by CC0 * BEFORE: Trying to "reverse engineer" or recreate the targets is prohibited * AFTER: Targets are CC0 no matter how you got hold of them We believe we have caught most places where the old license setup is mentioned. But if you find remaining strangenesses, particularly where assets are listed as AGPL, please report these. ff00b07523ee99212745405275d2c89cce5e8124 1890 1889 2020-10-25T12:08:34Z Joepal 14 wikitext text/x-wiki In september 2020, the overall license of MakeHuman was clarified and made more permissive. The full and updated license text can be found at https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, the goal was to remove any lingering doubts about whether the output from makehuman could be used freely and without license restrictions. These were the main changes: * BEFORE: Bundled assets are a part of the application * AFTER: Bundled assets are something the application uses, but which are otherwise considered standalone entities * BEFORE: Assets are per default covered by AGPL * AFTER: Assets are per default released as CC0 * BEFORE: Exports become covered by CC0 upon export via the GUI * AFTER: Exports only consist of things which were CC0 to start with * BEFORE: Targets, proxies and the base mesh are considered source code, covered by AGPL (unless exported via the GUI) * AFTER: Targets, proxies and the base mesh are considered graphical assets, covered by CC0 * BEFORE: Trying to "reverse engineer" or recreate the targets is prohibited * AFTER: Targets are CC0 no matter how you got hold of them We believe we have caught most places where the old license setup is mentioned. But if you find remaining strangenesses, particularly where assets are listed as AGPL, please report these. e9b498db3f9958c238392af4f9d437022f86c4b7 1889 2020-10-25T12:08:12Z Joepal 14 Created page with "In september 2020, the overall license of MakeHuman was clarified and made more permissive. The full license text can be found at https://github.com/makehumancommunity/makehum..." wikitext text/x-wiki In september 2020, the overall license of MakeHuman was clarified and made more permissive. The full license text can be found at https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md In summary, the goal was to remove any lingering doubts about whether the output from makehuman could be used freely and without license restrictions. These were the main changes: * BEFORE: Bundled assets are a part of the application * AFTER: Bundled assets are something the application uses, but which are otherwise considered standalone entities * BEFORE: Assets are per default covered by AGPL * AFTER: Assets are per default released as CC0 * BEFORE: Exports become covered by CC0 upon export via the GUI * AFTER: Exports only consist of things which were CC0 to start with * BEFORE: Targets, proxies and the base mesh are considered source code, covered by AGPL (unless exported via the GUI) * AFTER: Targets, proxies and the base mesh are considered graphical assets, covered by CC0 * BEFORE: Trying to "reverse engineer" or recreate the targets is prohibited * AFTER: Targets are CC0 no matter how you got hold of them We believe we have caught most places where the old license setup is mentioned. But if you find remaining strangenesses, particularly where assets are listed as AGPL, please report these. 387e139c4370526abcb3886cb6414731a001ded1 FAQ:What do I need to do when I use a CC-BY asset? 3002 535 2078 1431 2021-04-16T13:50:16Z Joepal 14 wikitext text/x-wiki Note that the following is a practical summary of the CC-BY license. If you want to get into the details, you should start at https://creativecommons.org/licenses/by/4.0/ and then also read the full license text at https://creativecommons.org/licenses/by/4.0/legalcode. It is your responsibility to ensure you follow the terms of the license. MakeHuman is not in any way a part in the legal agreement between you and the author of the asset you use, so what is written below is merely an interpretation from a third part. MakeHuman as such only includes CC0 assets. However, that only applies for content that was provided by MakeHuman as such. Specifically it does ''not'' apply to assets you downloaded separately from the user contributed asset respositories. In those repositories, you will find assets that come licensed in two forms: CC0 and CC-BY. If an asset is licensed CC0, you can use it in the same way as you use all other MakeHuman assets: you don't need to do anything in particular at all when using the asset. If an asset is licensed CC-BY however, you must live up to the obligations of that license. You are granted usage of the asset only under the premise that you ''tell end users of your work that you used the model in question, and who you got the model from''. It is also etiquette, but not legally required, to say ''where'' you downloaded the model. == Examples of how to live up to the CC-BY license == '''Youtube''' When producing a video, it is etiquette to include info about the asset inside the video, for example in rolling credits at the end. If this is not possible to do, then as a last resort it is acceptable to include the information in the video description where you posted the video (for example in youtube's "description" field). Let's use one of Punkduck's assets (http://www.makehumancommunity.org/clothes/godkiller_sword_wonder_woman.html) as an example. A functional formulation would be: ''This video uses the "God-killer Sword (Wonder Woman)" asset by Punkduck, shared under the terms of Creative Commons Attribution 4.0''' '''Closed-source game''' In applications and games, you will most likely have an "about" or "legal info" menu entry or popup box. This is an appropriate place for information about the usage of CC-BY assets. As a last resort, it would be acceptable to include information about the used assets in a bundled README.txt file. But then only if users are likely to find and read that file. '''Rendered image''' If at all feasible, include info about the assets as stamped-on text in the image as such. Let's use Wolgade's demonstration of MindFront's bikini asset as an example: [[File:Included_ccby.jpg|250px|thumb|left|Image with CC-BY info included]]<BR clear=all> If it is not feasible to include the information in the image as such, it is acceptable to add the information in text alongside the image where you post it. 9b837d09d12493da7786b373a8bbadd3ecd55c83 1431 1430 2017-08-20T08:53:18Z Joepal 14 wikitext text/x-wiki Note that the following is a practical summary of the CC-BY license. If you want to get into the details, you should start at https://creativecommons.org/licenses/by/4.0/ and then also read the full license text at https://creativecommons.org/licenses/by/4.0/legalcode. It is your responsibility to ensure you follow the terms of the license. MakeHuman is not in any way a part in the legal agreement between you and the author of the asset you use, so what is written below is merely an interpretation from a third part. MakeHuman as such has a CC0 exception for exported models. However, that only applies for content that was provided by MakeHuman as such. Specifically it does ''not'' apply to assets you downloaded separately from the user contributed asset respositories. In those repositories, you will find assets that come licensed in two forms: CC0 and CC-BY. If an asset is licensed CC0, you can use it in the same way as you use all other MakeHuman assets: you don't need to do anything in particular at all when using the asset. If an asset is licensed CC-BY however, you must live up to the obligations of that license. You are granted usage of the asset only under the premise that you ''tell end users of your work that you used the model in question, and who you got the model from''. It is also etiquette, but not legally required, to say ''where'' you downloaded the model. == Examples of how to live up to the CC-BY license == '''Youtube''' When producing a video, it is etiquette to include info about the asset inside the video, for example in rolling credits at the end. If this is not possible to do, then as a last resort it is acceptable to include the information in the video description where you posted the video (for example in youtube's "description" field). Let's use one of Punkduck's assets (http://www.makehumancommunity.org/clothes/godkiller_sword_wonder_woman.html) as an example. A functional formulation would be: ''This video uses the "God-killer Sword (Wonder Woman)" asset by Punkduck, shared under the terms of Creative Commons Attribution 4.0''' '''Closed-source game''' In applications and games, you will most likely have an "about" or "legal info" menu entry or popup box. This is an appropriate place for information about the usage of CC-BY assets. As a last resort, it would be acceptable to include information about the used assets in a bundled README.txt file. But then only if users are likely to find and read that file. '''Rendered image''' If at all feasible, include info about the assets as stamped-on text in the image as such. Let's use Wolgade's demonstration of MindFront's bikini asset as an example: [[File:Included_ccby.jpg|250px|thumb|left|Image with CC-BY info included]]<BR clear=all> If it is not feasible to include the information in the image as such, it is acceptable to add the information in text alongside the image where you post it. f8c9ecc60e1629b67c12c3380c7c9e6fcb5cf5a6 1430 1429 2017-08-20T08:52:29Z Joepal 14 wikitext text/x-wiki Note that the following is a practical summary of the CC-BY license. If you want to get into the details, you should start at https://creativecommons.org/licenses/by/4.0/ and then also read the full license text at https://creativecommons.org/licenses/by/4.0/legalcode. It is your responsibility to ensure you follow the terms of the license. MakeHuman is not in any way a part in the legal agreement between you and the author of the asset you use, so what is written below is merely an opinion from a third part. MakeHuman as such has a CC0 exception for exported models. However, that only applies for content that was provided by MakeHuman as such. Specifically it does ''not'' apply to assets you downloaded separately from the user contributed asset respositories. In those repositories, you will find assets that come licensed in two forms: CC0 and CC-BY. If an asset is licensed CC0, you can use it in the same way as you use all other MakeHuman assets: you don't need to do anything in particular at all when using the asset. If an asset is licensed CC-BY however, you must live up to the obligations of that license. You are granted usage of the asset only under the premise that you ''tell end users of your work that you used the model in question, and who you got the model from''. It is also etiquette, but not legally required, to say ''where'' you downloaded the model. == Examples of how to live up to the CC-BY license == '''Youtube''' When producing a video, it is etiquette to include info about the asset inside the video, for example in rolling credits at the end. If this is not possible to do, then as a last resort it is acceptable to include the information in the video description where you posted the video (for example in youtube's "description" field). Let's use one of Punkduck's assets (http://www.makehumancommunity.org/clothes/godkiller_sword_wonder_woman.html) as an example. A functional formulation would be: ''This video uses the "God-killer Sword (Wonder Woman)" asset by Punkduck, shared under the terms of Creative Commons Attribution 4.0''' '''Closed-source game''' In applications and games, you will most likely have an "about" or "legal info" menu entry or popup box. This is an appropriate place for information about the usage of CC-BY assets. As a last resort, it would be acceptable to include information about the used assets in a bundled README.txt file. But then only if users are likely to find and read that file. '''Rendered image''' If at all feasible, include info about the assets as stamped-on text in the image as such. Let's use Wolgade's demonstration of MindFront's bikini asset as an example: [[File:Included_ccby.jpg|250px|thumb|left|Image with CC-BY info included]]<BR clear=all> If it is not feasible to include the information in the image as such, it is acceptable to add the information in text alongside the image where you post it. 2b9b9e469553e29cbb252374ce26d1062fa0aceb 1429 1428 2017-08-20T08:44:23Z Joepal 14 wikitext text/x-wiki Note that the following is a practical summary/interpretation of the CC-BY license. If you want to get into the details, you should start at https://creativecommons.org/licenses/by/4.0/ and then also read the full license text at https://creativecommons.org/licenses/by/4.0/legalcode MakeHuman as such has a CC0 exception for exported models. However, that only applies for content that was provided by MakeHuman as such. Specifically it does ''not'' apply to assets you downloaded separately from the user contributed asset respositories. In those repositories, you will find assets that come licensed in two forms: CC0 and CC-BY. If an asset is licensed CC0, you can use it in the same way as you use all other MakeHuman assets: you don't need to do anything in particular at all when using the asset. If an asset is licensed CC-BY however, you must live up to the obligations of that license. You are granted usage of the asset only under the premise that you ''tell end users of your work that you used the model in question, and who you got the model from''. It is also etiquette, but not legally required, to say ''where'' you downloaded the model. == Examples of how to live up to the CC-BY license == '''Youtube''' When producing a video, it is etiquette to include info about the asset inside the video, for example in rolling credits at the end. If this is not possible to do, then as a last resort it is acceptable to include the information in the video description where you posted the video (for example in youtube's "description" field). Let's use one of Punkduck's assets (http://www.makehumancommunity.org/clothes/godkiller_sword_wonder_woman.html) as an example. A functional formulation would be: ''This video uses the "God-killer Sword (Wonder Woman)" asset by Punkduck, shared under the terms of Creative Commons Attribution 4.0''' '''Closed-source game''' In applications and games, you will most likely have an "about" or "legal info" menu entry or popup box. This is an appropriate place for information about the usage of CC-BY assets. As a last resort, it would be acceptable to include information about the used assets in a bundled README.txt file. But then only if users are likely to find and read that file. '''Rendered image''' If at all feasible, include info about the assets as stamped-on text in the image as such. Let's use Wolgade's demonstration of MindFront's bikini asset as an example: [[File:Included_ccby.jpg|250px|thumb|left|Image with CC-BY info included]]<BR clear=all> If it is not feasible to include the information in the image as such, it is acceptable to add the information in text alongside the image where you post it. 402a4cbc5bf3b7b22918c654e4e7e0fdca1c3132 1428 1427 2017-08-20T08:42:24Z Joepal 14 wikitext text/x-wiki Note that the following is a practical summary/interpretation of the CC-BY license. If you want to get into the details, you should start at https://creativecommons.org/licenses/by/4.0/ and then also read the full license text at https://creativecommons.org/licenses/by/4.0/legalcode MakeHuman as such has a CC0 exception for exported models. However, that only applies for content that was provided by MakeHuman as such. Specifically it does ''not'' apply to assets you downloaded separately from the user contributed asset respositories. In those repositories, you will find assets that come licensed in two forms: CC0 and CC-BY. If an asset is licensed CC0, you can use it in the same way as you use all other MakeHuman assets: you don't need to do anything in particular at all when using the asset. If an asset is licensed CC-BY however, you must live up to the obligations of that license. You are granted usage of the asset only under the premise that you ''tell end users of your work that you used the model in question, and who you got the model from''. It is also etiquette, but not legally required, to say ''where'' you downloaded the model. == Examples of how to live up to the CC-BY license == Let's use one of Punkduck's assets as an example: http://www.makehumancommunity.org/clothes/godkiller_sword_wonder_woman.html '''Youtube''' When producing a video, it is etiquette to include info about the asset inside the video, for example in rolling credits at the end. If this is not possible to do, then as a last resort it is acceptable to include the information in the video description where you posted the video (for example in youtube's "description" field). An example formulation would be: ''This video uses the "God-killer Sword (Wonder Woman)" asset by Punkduck, shared under the terms of Creative Commons Attribution 4.0''' '''Closed-source game''' In applications and games, you will most likely have an "about" or "legal info" menu entry or popup box. This is an appropriate place for information about the usage of CC-BY assets. As a last resort, it would be acceptable to include information about the used assets in a bundled README.txt file. But then only if users are likely to find and read that file. '''Rendered image''' If at all feasible, include info about the assets as stamped-on text in the image as such. Let's use Wolgade's demonstration of MindFront's bikini asset as an example: [[File:Included_ccby.jpg|250px|thumb|left|Image with CC-BY info included]]<BR clear=all> If it is not feasible to include the information in the image as such, it is acceptable to add the information in text alongside the image where you post it. ac356a9fa23e781dab7160cce1bea08bcf07c7a1 1427 1426 2017-08-20T08:41:35Z Joepal 14 wikitext text/x-wiki Note that the following is a practical interpretation of the CC-BY license. If you want to get into the details, you should start at https://creativecommons.org/licenses/by/2.0/ and then also read the full license text at https://creativecommons.org/licenses/by/4.0/legalcode MakeHuman as such has a CC0 exception for exported models. However, that only applies for content that was provided by MakeHuman as such. Specifically it does ''not'' apply to assets you downloaded separately from the user contributed asset respositories. In those repositories, you will find assets that come licensed in two forms: CC0 and CC-BY. If an asset is licensed CC0, you can use it in the same way as you use all other MakeHuman assets: you don't need to do anything in particular at all when using the asset. If an asset is licensed CC-BY however, you must live up to the obligations of that license. You are granted usage of the asset only under the premise that you ''tell end users of your work that you used the model in question, and who you got the model from''. It is also etiquette, but not legally required, to say ''where'' you downloaded the model. == Examples of how to live up to the CC-BY license == Let's use one of Punkduck's assets as an example: http://www.makehumancommunity.org/clothes/godkiller_sword_wonder_woman.html '''Youtube''' When producing a video, it is etiquette to include info about the asset inside the video, for example in rolling credits at the end. If this is not possible to do, then as a last resort it is acceptable to include the information in the video description where you posted the video (for example in youtube's "description" field). An example formulation would be: ''This video uses the "God-killer Sword (Wonder Woman)" asset by Punkduck, shared under the terms of Creative Commons Attribution 4.0''' '''Closed-source game''' In applications and games, you will most likely have an "about" or "legal info" menu entry or popup box. This is an appropriate place for information about the usage of CC-BY assets. As a last resort, it would be acceptable to include information about the used assets in a bundled README.txt file. But then only if users are likely to find and read that file. '''Rendered image''' If at all feasible, include info about the assets as stamped-on text in the image as such. Let's use Wolgade's demonstration of MindFront's bikini asset as an example: [[File:Included_ccby.jpg|250px|thumb|left|Image with CC-BY info included]]<BR clear=all> If it is not feasible to include the information in the image as such, it is acceptable to add the information in text alongside the image where you post it. 21505315811d6f082850d15f1a02bbdbca935f0c 1426 1425 2017-08-20T08:33:31Z Joepal 14 wikitext text/x-wiki MakeHuman as such has a CC0 exception for exported models. However, that only applies for content that was provided by MakeHuman as such. Specifically it does ''not'' apply to assets you downloaded separately from the user contributed asset respositories. In those repositories, you will find assets that come licensed in two forms: CC0 and CC-BY. If an asset is licensed CC0, you can use it in the same way as you use all other MakeHuman assets: you don't need to do anything in particular at all when using the asset. If an asset is licensed CC-BY however, you must live up to the obligations of that license. You are granted usage of the asset only under the premise that you ''tell end users of your work that you used the model in question, and who you got the model from''. It is also etiquette, but not legally required, to say ''where'' you downloaded the model. == Examples of how to live up to the CC-BY license == Let's use one of Punkduck's assets as an example: http://www.makehumancommunity.org/clothes/godkiller_sword_wonder_woman.html '''Youtube''' When producing a video, it is etiquette to include info about the asset inside the video, for example in rolling credits at the end. If this is not possible to do, then as a last resort it is acceptable to include the information in the video description where you posted the video (for example in youtube's "description" field). An example formulation would be: ''This video uses the "God-killer Sword (Wonder Woman)" asset by Punkduck''' '''Closed-source game''' In applications and games, you will most likely have an "about" or "legal info" menu entry or popup box. This is an appropriate place for information about the usage of CC-BY assets. As a last resort, it would be acceptable to include information about the used assets in a bundled README.txt file. But then only if users are likely to find and read that file. '''Rendered image''' If at all feasible, include info about the assets as stamped-on text in the image as such. Let's use Wolgade's demonstration of MindFront's bikini asset as an example: [[File:Included_ccby.jpg|250px|thumb|left|Image with CC-BY info included]]<BR clear=all> If it is not feasible to include the information in the image as such, it is acceptable to add the information in text alongside the image where you post it. 51c2b24001723c7af3677fecb283e49e0c1c6eb4 1425 1424 2017-08-20T08:32:11Z Joepal 14 wikitext text/x-wiki MakeHuman as such has a CC0 exception for exported models. However, that only applies for content that was provided by MakeHuman as such. Specifically it does ''not'' apply to assets you downloaded separately from the user contributed asset respositories. In those repositories, you will find assets that come licensed in two forms: CC0 and CC-BY. If an asset is licensed CC0, you can use it in the same way as you use all other MakeHuman assets: you don't need to do anything in particular at all when using the asset. If an asset is licensed CC-BY however, you must live up to the obligations of that license. You are granted usage of the asset only under the premise that you ''tell end users of your work that you used the model in question, and who you got the model from''. It is also etiquette, but not legally required, to say ''where'' you downloaded the model. == Examples of how to live up to the CC-BY license == Let's use one of PunkDuck's assets as an example: http://www.makehumancommunity.org/clothes/godkiller_sword_wonder_woman.html '''Youtube''' When producing a video, it is etiquette to include info about the asset inside the video, for example in rolling credits at the end. If this is not possible to do, then as a last resort it is acceptable to include the information in the video description where you posted the video (for example in youtube's "description" field). An example formulation would be: ''This video uses the "God-killer Sword (Wonder Woman)" asset by PunkDuck''' '''Closed-source game''' In applications and games, you will most likely have an "about" or "legal info" menu entry or popup box. This is an appropriate place for information about the usage of CC-BY assets. As a last resort, it would be acceptable to include information about the used assets in a bundled README.txt file. But then only if users are likely to find and read that file. '''Rendered image''' If at all feasible, include info about the assets as stamped-on text in the image as such. Let's use Wolgade's demonstration of MindFront's bikini asset as an example: [[File:Included_ccby.jpg|250px|thumb|left|Image with CC-BY info included]]<BR clear=all> If it is not feasible to include the information in the image as such, it is acceptable to add the information in text alongside the image where you post it. 413fe955e6af3b085115c866838a283a3de0537f 1424 1423 2017-08-20T08:31:00Z Joepal 14 wikitext text/x-wiki MakeHuman as such has a CC0 exception for exported models. However, that only applies for content that was provided by MakeHuman as such. Specifically it does ''not'' apply to assets you downloaded separately from the user contributed asset respositories. In those repositories, you will find assets that come licensed in two forms: CC0 and CC-BY. If an asset is licensed CC0, you can use it in the same way as you use all other MakeHuman assets: you don't need to do anything in particular at all when using the asset. If an asset is licensed CC-BY however, you must live up to the obligations of that license. You are granted usage of the asset only under the premise that you ''tell end users of your work that you used the model in question, and who you got the model from''. It is also etiquette, but not legally required, to say ''where'' you downloaded the model. == Examples of how to live up to the CC-BY license == Let's use one of PunkDuck's assets as an example: http://www.makehumancommunity.org/clothes/godkiller_sword_wonder_woman.html '''Youtube''' When producing a video, it is etiquette to include info about the asset inside the video, for example in rolling credits at the end. If this is not possible to do, then as a last resort it is acceptable to include the information in the video description where you posted the video (for example in youtube's "description" field). An example formulation would be: ''This video uses the "God-killer Sword (Wonder Woman)" asset by PunkDuck''' '''Closed-source game''' In applications and games, you will most likely have an "about" or "legal info" menu entry or popup box. This is an appropriate place for information about the usage of CC-BY assets. As a last resort, it would be acceptable to include information about the used assets in a bundled README.txt file. But then only if users are likely to find and read that file. '''Rendered image''' If at all feasible, include info about the assets as stamped-on text in the image as such. Let's use Wolgade's demonstration of MindFront's bikini asset as an example: [[File:Included_ccby.jpg|250px|thumb|Image with CC-BY info included]] If it is not feasible to include the information in the image as such, it is acceptable to add the information in text alongside the image where you post it. fddcf5a3c34e980279c9c16da3bf5ce28e7c7be1 1423 1421 2017-08-20T08:30:34Z Joepal 14 wikitext text/x-wiki MakeHuman as such has a CC0 exception for exported models. However, that only applies for content that was provided by MakeHuman as such. Specifically it does ''not'' apply to assets you downloaded separately from the user contributed asset respositories. In those repositories, you will find assets that come licensed in two forms: CC0 and CC-BY. If an asset is licensed CC0, you can use it in the same way as you use all other MakeHuman assets: you don't need to do anything in particular at all when using the asset. If an asset is licensed CC-BY however, you must live up to the obligations of that license. You are granted usage of the asset only under the premise that you ''tell end users of your work that you used the model in question, and who you got the model from''. It is also etiquette, but not legally required, to say ''where'' you downloaded the model. == Examples of how to live up to the CC-BY license == Let's use one of PunkDuck's assets as an example: http://www.makehumancommunity.org/clothes/godkiller_sword_wonder_woman.html '''Youtube''' When producing a video, it is etiquette to include info about the asset inside the video, for example in rolling credits at the end. If this is not possible to do, then as a last resort it is acceptable to include the information in the video description where you posted the video (for example in youtube's "description" field). An example formulation would be: ''This video uses the "God-killer Sword (Wonder Woman)" asset by PunkDuck''' '''Closed-source game''' In applications and games, you will most likely have an "about" or "legal info" menu entry or popup box. This is an appropriate place for information about the usage of CC-BY assets. As a last resort, it would be acceptable to include information about the used assets in a bundled README.txt file. But then only if users are likely to find and read that file. '''Rendered image''' If at all feasible, include info about the assets as stamped-on text in the image as such. Let's use Wolgade's demonstration of MindFront's bikini asset as an example: [[File:Included_ccby.jpg|250px|thumb|left|Image with CC-BY info included]] If it is not feasible to include the information in the image as such, it is acceptable to add the information in text alongside the image where you post it. e919ecf3ff96617d926a5ffa151a5a9cff937d0f 1421 1420 2017-08-20T08:20:18Z Joepal 14 wikitext text/x-wiki MakeHuman as such has a CC0 exception for exported models. However, that only applies for content that was provided by MakeHuman as such. Specifically it does ''not'' apply to assets you downloaded separately from the user contributed asset respositories. In those repositories, you will find assets that come licensed in two forms: CC0 and CC-BY. If an asset is licensed CC0, you can use it in the same way as you use all other MakeHuman assets: you don't need to do anything in particular at all when using the asset. If an asset is licensed CC-BY however, you must live up to the obligations of that license. You are granted usage of the asset only under the premise that you ''tell end users of your work that you used the model in question, and who you got the model from''. It is also etiquette, but not legally required, to say ''where'' you downloaded the model. == Examples of how to live up to the CC-BY license == Let's use one of PunkDuck's assets as an example: http://www.makehumancommunity.org/clothes/godkiller_sword_wonder_woman.html '''Youtube''' When producing a video, it is etiquette to include info about the asset inside the video, for example in rolling credits at the end. If this is not possible to do, then as a last resort it is acceptable to include the information in the video description where you posted the video (for example in youtube's "description" field). An example formulation would be: ''This video uses the "God-killer Sword (Wonder Woman)" asset by PunkDuck''' '''Closed-source game''' In applications and games, you will most likely have an "about" or "legal info" menu entry or popup box. This is an appropriate place for information about the usage of CC-BY assets. As a last resort, it would be acceptable to include information about the used assets in a bundled README.txt file. But then only if users are likely to find and read that file. 24e3fbec40b65745aa5603f6b14505732787434e 1420 1419 2017-08-20T08:15:31Z Joepal 14 wikitext text/x-wiki MakeHuman as such has a CC0 exception for exported models. However, that only applies for content that was provided by MakeHuman as such. Specifically it does ''not'' apply to assets you downloaded separately from the user contributed asset respositories. In those repositories, you will find assets that come licensed in two forms: CC0 and CC-BY. If an asset is licensed CC0, you can use it in the same way as you use all other MakeHuman assets: you don't need to do anything in particular at all when using the asset. If an asset is licensed CC-BY however, you must live up to the obligations of that license. You are granted usage of the asset only under the premise that you ''tell end users of your work that you used the model in question, and who you got the model from''. It is also etiquette, but not legally required, to say where you got the model from. == Examples of how to live up to the CC-BY license == Let's use one of PunkDuck's assets as an example: http://www.makehumancommunity.org/clothes/godkiller_sword_wonder_woman.html '''Youtube''' When producing a video, it is etiquette to include info about the asset inside the video, for example in rolling credits at the end. If this is not possible to do, then as a last resort it is acceptable to include the information in the video description where you posted the video (for example in youtube's "description" field). An example formulation would be: ''This video uses the "God-killer Sword (Wonder Woman)" asset by PunkDuck''' '''Closed-source game''' In applications and games, you will most likely have an "about" or "legal info" menu entry or popup box. This is an appropriate place for information about the usage of CC-BY assets. As a last resort, it would be acceptable to include information about the used assets in a bundled README.txt file. But then only if users are likely to find and read that file. 0b104be22cce2cd51bf1b83e27e721e2ea51ac8f 1419 1418 2017-08-20T08:13:53Z Joepal 14 wikitext text/x-wiki MakeHuman as such has a CC0 exception for exported models. However, that only applies for content that was provided by MakeHuman as such. Specifically it does ''not'' apply to assets you downloaded separately from the user contributed asset respositories. In those repositories, you will find assets that come licensed in two forms: CC0 and CC-BY. If an asset is licensed CC0, you can use it in the same way as you use all other MakeHuman assets: you don't need to do anything in particular at all when using the asset. If an asset is licensed CC-BY however, you must live up to the obligations of that license. You are granted usage of the asset only under the premise that you ''tell end users of your work that you used the model in question, and who you got the model from''. == Examples of how to live up to the CC-BY license == Let's use one of PunkDuck's assets as an example: http://www.makehumancommunity.org/clothes/godkiller_sword_wonder_woman.html '''Youtube''' When producing a video, it is etiquette to include info about the asset inside the video, for example in rolling credits at the end. If this is not possible to do, then as a last resort it is acceptable to include the information in the video description where you posted the video (for example in youtube's "description" field). An example formulation would be: ''This video uses the "God-killer Sword (Wonder Woman)" asset by PunkDuck''' '''Closed-source game''' In applications and games, you will most likely have an "about" or "legal info" menu entry or popup box. This is an appropriate place for information about the usage of CC-BY assets. As a last resort, it would be acceptable to include information about the used assets in a bundled README.txt file. But then only if users are likely to find and read that file. f31bc80253af3f156713b95bc019132f56d68b33 1418 2017-08-20T08:12:02Z Joepal 14 Created page with "MakeHuman as such has a CC0 exception for exported models. However, that only applies for content that was provided by MakeHuman as such. Specifically it does ''not'' apply to..." wikitext text/x-wiki MakeHuman as such has a CC0 exception for exported models. However, that only applies for content that was provided by MakeHuman as such. Specifically it does ''not'' apply to assets you downloaded separately from the user contributed asset respositories. In those repositories, you will find assets that come licensed in two forms: CC0 and CC-BY. If an asset is licensed CC0, you can use it in the same way as you use all other MakeHuman assets: you don't need to do anything in particular at all when using the asset. If an asset is licensed CC-BY however, you must live up to the obligations of that license. You are granted usage of the asset only under the premise that you ''tell end users of your work who you got the model from'', and preferably where you got it. == Examples of how to live up to the CC-BY license == Let's use one of PunkDuck's assets as an example: http://www.makehumancommunity.org/clothes/godkiller_sword_wonder_woman.html '''Youtube''' When producing a video, it is etiquette to include info about the asset inside the video, for example in rolling credits at the end. If this is not possible to do, then as a last resort it is acceptable to include the information in the video description where you posted the video (for example in youtube's "description" field). An example formulation would be: ''This video uses the "God-killer Sword (Wonder Woman)" asset by PunkDuck''' '''Closed-source game''' In applications and games, you will most likely have an "about" or "legal info" menu entry or popup box. This is an appropriate place for information about the usage of CC-BY assets. As a last resort, it would be acceptable to include information about the used assets in a bundled README.txt file. But then only if users are likely to find and read that file. 6757beb4cfb59e460f7f28275cf7b870d39731b0 FAQ:What happened to MakeWalk? 3002 615 1753 2020-04-10T09:34:46Z Joepal 14 Created page with "MakeWalk has been marked as deprecated by its author Thomas Larsson. The recommended replacement is BVH Retargeter from https://diffeomorphic.blogspot.com/p/bvh-retargeter.htm..." wikitext text/x-wiki MakeWalk has been marked as deprecated by its author Thomas Larsson. The recommended replacement is BVH Retargeter from https://diffeomorphic.blogspot.com/p/bvh-retargeter.html Note that the MH dev group isn't involved in either product and thus cannot answer any questions regarding bugs or development for these. 6cb592f040b06acbf59b743f1dd94206b1ea5529 FAQ:What happened to the MHX export in MH 1.1.x and later? 3002 26 1553 1552 2019-01-02T09:36:41Z Joepal 14 wikitext text/x-wiki '''Short version (for MakeHuman 1.2.x):''' MHX2 is bundled and enabled per default in the latest alphas of MakeHuman 1.2.x, but you still need to install the addon in blender. The blender side of the addon, is shipped with the MakeHuman installation zip. '''Short version (for MakeHuman 1.1.x):''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * '''MacOS X''': Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * '''Windows 7/8/10''': C:\MakeHuman\plugins (Assuming you installed as C:\MakeHuman), or where MakeHuman was unzipped * '''Debian/Ubuntu Linux''': /usr/share/makehuman/plugins (double check accuracy of this) also see: [[FAQ:I downloaded a third party plug-in. How do I install it?]] '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by its author, Thomas Larsson). Thomas Larsson has replaced MHX with MHX2 which is available as an external, separately maintained plugin. The major change from mhx to mhx2 is that it is now divided into separate exporter and importer components. This means it is theoretically possible to use .mhx2 with any application for which there is a suitable importer. Currently, the only importer available is for Blender. For details on this MHX2 plugin (as well as download the MakeHuman Exporter and Blender Importer) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange MHX2 is not integrated into the core distribution because of separate maintenance and release cycles. However, it remains one of the most high fidelity ways to move assets from MakeHuman to Blender (and other applications when suitable importers become available). The alternative is to use the generic transfer formats: DAE and FBX. Because of their generic nature, however, these will not give you the full convenience of using .mhx2. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk 3346606fea116b36d83ef1ced46c62b7899c6f43 1552 1359 2019-01-02T09:36:25Z Joepal 14 wikitext text/x-wiki '''Short version (for MakeHuman 1.2.x):''' MHX2 is bundled and enabled per default in the latest alphas of MakeHuman 1.2.x, but you still need to install the addon in blender. The blender side of the addon, is shipped with the MakeHuman installation zip. '''Short version (for MakeHuman 1.1.x):''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * '''MacOS X''': Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * '''Windows 7/8/10''': C:\MakeHuman\plugins (Assuming you installed as C:\MakeHuman), or where MakeHuman was unzipped * '''Debian/Ubuntu Linux''': /usr/share/makehuman/plugins (double check accuracy of this) also see: [[FAQ:I downloaded a third party plug-in. How do I install it?]] '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by its author, Thomas Larsson). Thomas Larsson has replaced MHX with MHX2 which is available as an external, separately maintained plugin. The major change from mhx to mhx2 is that it is now divided into separate exporter and importer components. This means it is theoretically possible to use .mhx2 with any application for which there is a suitable importer. Currently, the only importer available is for Blender. For details on this MHX2 plugin (as well as download the MakeHuman Exporter and Blender Importer) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange MHX2 is not integrated into the core distribution because of separate maintenance and release cycles. However, it remains one of the most high fidelity ways to move assets from MakeHuman to Blender (and other applications when suitable importers become available). The alternative is to use the generic transfer formats: DAE and FBX. Because of their generic nature, however, these will not give you the full convenience of using .mhx2. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk 9dcb7221f9c98a0dd8527f8e256240930788879d 1359 1357 2017-03-15T09:21:47Z Aranuvir 17 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * '''MacOS X''': Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * '''Windows 7/8/10''': C:\MakeHuman\plugins (Assuming you installed as C:\MakeHuman), or where MakeHuman was unzipped * '''Debian/Ubuntu Linux''': /usr/share/makehuman/plugins (double check accuracy of this) also see: [[FAQ:I downloaded a third party plug-in. How do I install it?]] '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by its author, Thomas Larsson). Thomas Larsson has replaced MHX with MHX2 which is available as an external, separately maintained plugin. The major change from mhx to mhx2 is that it is now divided into separate exporter and importer components. This means it is theoretically possible to use .mhx2 with any application for which there is a suitable importer. Currently, the only importer available is for Blender. For details on this MHX2 plugin (as well as download the MakeHuman Exporter and Blender Importer) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange MHX2 is not integrated into the core distribution because of separate maintenance and release cycles. However, it remains one of the most high fidelity ways to move assets from MakeHuman to Blender (and other applications when suitable importers become available). The alternative is to use the generic transfer formats: DAE and FBX. Because of their generic nature, however, these will not give you the full convenience of using .mhx2. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk c2470dc20dd2e058d650a0c79d36616d535c4430 1357 1356 2017-03-15T09:11:26Z Aranuvir 17 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * '''MacOS X''': Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * '''Windows 7/8/10''': C:\MakeHuman\plugins (Assuming you installed as C:\MakeHuman), or where MakeHuman was unzipped * '''Debian/Ubuntu Linux''': /usr/share/makehuman/plugins (double check accuracy of this) '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by its author, Thomas Larsson). Thomas Larsson has replaced MHX with MHX2 which is available as an external, separately maintained plugin. The major change from mhx to mhx2 is that it is now divided into separate exporter and importer components. This means it is theoretically possible to use .mhx2 with any application for which there is a suitable importer. Currently, the only importer available is for Blender. For details on this MHX2 plugin (as well as download the MakeHuman Exporter and Blender Importer) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange MHX2 is not integrated into the core distribution because of separate maintenance and release cycles. However, it remains one of the most high fidelity ways to move assets from MakeHuman to Blender (and other applications when suitable importers become available). The alternative is to use the generic transfer formats: DAE and FBX. Because of their generic nature, however, these will not give you the full convenience of using .mhx2. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk 42d96e4ca0f7a9aa497e4b5282aca1029cd8f99e 1356 1355 2017-03-15T09:08:02Z Aranuvir 17 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * '''MacIntosh OSX''': Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * '''Windows 7/8/10''': C:\MakeHuman\plugins (Assuming you installed as C:\MakeHuman), or where MakeHuman was unzipped * '''Debian/Ubuntu Linux''': /usr/share/makehuman/plugins (double check accuracy of this) '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by its author, Thomas Larsson). Thomas Larsson has replaced MHX with MHX2 which is available as an external, separately maintained plugin. The major change from mhx to mhx2 is that it is now divided into separate exporter and importer components. This means it is theoretically possible to use .mhx2 with any application for which there is a suitable importer. Currently, the only importer available is for Blender. For details on this MHX2 plugin (as well as download the MakeHuman Exporter and Blender Importer) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange MHX2 is not integrated into the core distribution because of separate maintenance and release cycles. However, it remains one of the most high fidelity ways to move assets from MakeHuman to Blender (and other applications when suitable importers become available). The alternative is to use the generic transfer formats: DAE and FBX. Because of their generic nature, however, these will not give you the full convenience of using .mhx2. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk 1abbce6b1764cf151aa6f3eaaf349d06a1f053a7 1355 1347 2017-03-15T02:16:55Z Robbaer 12 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * '''MacIntosh OSX''': Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * '''Windows 7/8/10''': C:\MakeHuman\plugins (Assuming you installed as C:\MakeHuman) * '''Debian/Ubuntu Linux''': ~/bin/makehuman/plugins (double check accuracy of this) '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by its author, Thomas Larsson). Thomas Larsson has replaced MHX with MHX2 which is available as an external, separately maintained plugin. The major change from mhx to mhx2 is that it is now divided into separate exporter and importer components. This means it is theoretically possible to use .mhx2 with any application for which there is a suitable importer. Currently, the only importer available is for Blender. For details on this MHX2 plugin (as well as download the MakeHuman Exporter and Blender Importer) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange MHX2 is not integrated into the core distribution because of separate maintenance and release cycles. However, it remains one of the most high fidelity ways to move assets from MakeHuman to Blender (and other applications when suitable importers become available). The alternative is to use the generic transfer formats: DAE and FBX. Because of their generic nature, however, these will not give you the full convenience of using .mhx2. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk bc1678aac6b17b30d5b0c83caa56806cdb182e75 1347 1346 2017-03-14T23:17:24Z Robbaer 12 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * '''MacIntosh OSX''': Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * '''Windows 7/8/10''': C:\MakeHuman\plugins (Assuming you installed as C:\MakeHuman) * '''Debian/Ubuntu Linux''': ~/bin/makehuman/plugins (double check accuracy of this) '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by its author, Thomas Larsson). Thomas Larsson has replaced MHX with MHX2 which is available as an external, separately maintained plugin. The major change from mhx to mhx2 is that it is now divided into separate exporter and importer components. This means it is theoretically possible to use .mhx2 with any application for which there is a suitable importer. Currently, the only importer available is for Blender. For details on this MHX2 plugin (as well as download the MakeHuman Exporter and Blender Importer) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange MHX2 is not integrated into the core distribution because of separate maintenance and release cycles. However, it remains one of the most high fidelity ways to move assets from MakeHuman to Blender (and other applications when suitable importers become available). The alternative is to use the generic transfer formats: DAE and FBX. Because of their generic nature their generic nature, however, these will not give you the full convenience of using .mhx2. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk ef615259b250fc4f1ec8ef9fd8e86d1be45d4056 1346 1345 2017-03-14T23:16:11Z Robbaer 12 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * MacIntosh OSX: Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * Windows 7/8/10: C:\MakeHuman\plugins (Assuming you installed as C:\MakeHuman) * Debian/Ubuntu Linux: ~/bin/makehuman/plugins (double check accuracy of this) '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by its author, Thomas Larsson). Thomas Larsson has replaced MHX with MHX2 which is available as an external, separately maintained plugin. The major change from mhx to mhx2 is that it is now divided into separate exporter and importer components. This means it is theoretically possible to use .mhx2 with any application for which there is a suitable importer. Currently, the only importer available is for Blender. For details on this MHX2 plugin (as well as download the MakeHuman Exporter and Blender Importer) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange MHX2 is not integrated into the core distribution because of separate maintenance and release cycles. However, it remains one of the most high fidelity ways to move assets from MakeHuman to Blender (and other applications when suitable importers become available). The alternative is to use the generic transfer formats: DAE and FBX. Because of their generic nature their generic nature, however, these will not give you the full convenience of using .mhx2. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk 170e69ca1cd3c40d42b1b6f44cee80db8521bf34 1345 1344 2017-03-14T15:45:24Z Robbaer 12 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * MacIntosh OSX: Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * Windows 7/8/10: C:\MakeHuman\plugins (Assuming you installed as C:\MakeHuman) * Debian/Ubuntu Linux: ~/bin/makehuman/plugins (double check accuracy of this) '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by its author, Thomas Larsson). Thomas Larsson has replaced MHX with MHX2 which is available as an external, separately maintained plugin. The major change with mhx2 is that it was divided into separate exporter and importer components. This means it is theoretically possible to use .mhx2 with any application for which there is a suitable importer. Currently, the only importer available ifs for Blender. For details on this MHX2 plugin (as well as download the MakeHuman Exporter and Blender Importer) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange MHX2 is not integrated in the core distribution because of separate maintenance and release cycles. However, it remains one of the most high fidelity ways to move assets from MakeHuman to Blender (and other applications when suitable importers become available). The alternative is to use the generic transfer formats: DAE and FBX. Because of their generic nature their generic nature, however, these will not give you the full convenience of using .mhx2. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk af117c9cc87016124fa7dbc4be335029fe67418c 1344 1343 2017-03-14T15:28:13Z Robbaer 12 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * MacIntosh OSX: Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * Windows 7/8/10: C:\MakeHuman\plugins (Assuming you installed as C:\MakeHuman) * Debian/Ubuntu Linux: ~/bin/makehuman/plugins (double check accuracy of this) '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by its author, Thomas Larsson). Thomas Larsson has replaced MHX with MHX2 which is available as an external, separately maintained plugin. The major change with mhx2 is that it was divided into separate exporter and importer components. This means it is theoretically possible to use .mhx2 with any application for which there is a suitable importer. Currently, the only importer available ifs for Blender. For details on this MHX2 plugin (as well as download the MakeHuman Exporter and Blender Importer) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange MHX2 is not integrated in the core distribution because of separate maintenance and release cycles. However, it remains the most high fidelity ways to move assets from MakeHuman to Blender (and other applications when suitable importers become available). The alternative is to use the generic transfer formats: DAE and FBX. Because of their generic nature their generic nature, these will not give you the full fidelity of using .mhx2. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk 87937b8c52b5a800a1ba04a59841ed1e5984ca4b 1343 1342 2017-03-14T15:25:53Z Robbaer 12 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * MacIntosh OSX: Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * Windows 7/8/10: C:\MakeHuman\plugins (Assuming you installed as C:\MakeHuman) * Debian/Ubuntu Linux: ~/bin/makehuman/plugins (double check accuracy of this) '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by its author, Thomas Larsson). Thomas Larsson has replaced MHX with MHX2 which is available as an external, separately maintained plugin. The major change with mhx2 is that it was broken into separate exporter and importer components, so that this format can theoretically be used with any application for which there is a suitable importer. Currently, the only importer available ifs for Blender. For details on this MHX2 plugin (as well as download the MakeHuman Exporter and Blender Importer) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange MHX2 is not integrated in the core distribution because of separate maintenance and release cycles. However, it remains the most high fidelity ways to move assets from MakeHuman to Blender (and other applications when suitable importers become available). The alternative is to use the generic transfer formats: DAE and FBX. Because of their generic nature their generic nature, these will not give you the full fidelity of using .mhx2. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk 71313d6002e3e747e21d5be29466b051de5ded22 1342 1341 2017-03-14T14:51:52Z Robbaer 12 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * MacIntosh OSX: Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * Windows 7/8/10: C:\MakeHuman\plugins (Assuming you installed as C:\MakeHuman) * Debian/Ubuntu Linux: ~/bin/makehuman/plugins (double check accuracy of this) '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by the author of MHX). Although it's still a part of Blender's code base, it is not recommended to keep using it. For the MHX maintainer's (Thomas Larsson) part, MHX has been replaced with MHX2. More info on this (as well as downloads) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange For MakeHuman's part, it was decided to not integrate MHX2 in the core distribution for a few reasons: * It's a large code base with a different release cycle than MH * Having MHX2 as a plugin rather than as a part of the code makes for better code structure * It was felt that it was better to shift focus to generic formats such as DAE and FBX. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk 1389f28738c9086e547d459185c8c8d51bbfb7d0 1341 1340 2017-03-14T14:51:30Z Robbaer 12 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * MacIntosh OSX: Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * Windows 7/8/10: C:\MakeHuman\plugins (Assuming you installed as C:\MakeHuman) * Debian/Ubuntu Linux: ~/bin/makehuman/plugins (check accuracy of this) '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by the author of MHX). Although it's still a part of Blender's code base, it is not recommended to keep using it. For the MHX maintainer's (Thomas Larsson) part, MHX has been replaced with MHX2. More info on this (as well as downloads) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange For MakeHuman's part, it was decided to not integrate MHX2 in the core distribution for a few reasons: * It's a large code base with a different release cycle than MH * Having MHX2 as a plugin rather than as a part of the code makes for better code structure * It was felt that it was better to shift focus to generic formats such as DAE and FBX. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk b7694b3c3357d37987ba50c4abfd57139c05d13b 1340 1339 2017-03-14T14:50:42Z Robbaer 12 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * MacIntosh OSX: Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * Windows 7/8/10: C:\MakeHuman\plugins (Assuming you installed as C:\MakeHuman) * Debian/Ubuntu Linux: ~/bin/makehuman/plugins (check accuracy of this) Posts: 2 Joined: Thu Feb 23, 2017 5:54 pm One Click Ban: [ One Click Ban ] User Flagged: No [ Flag ] '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by the author of MHX). Although it's still a part of Blender's code base, it is not recommended to keep using it. For the MHX maintainer's (Thomas Larsson) part, MHX has been replaced with MHX2. More info on this (as well as downloads) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange For MakeHuman's part, it was decided to not integrate MHX2 in the core distribution for a few reasons: * It's a large code base with a different release cycle than MH * Having MHX2 as a plugin rather than as a part of the code makes for better code structure * It was felt that it was better to shift focus to generic formats such as DAE and FBX. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk 671550b1d55c7fb7314bd624e04f38b5e7055e56 1339 1338 2017-03-14T14:50:02Z Robbaer 12 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * MacIntosh OSX: Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * Windows 7/8/10: C:\MakeHuman\plugins (Assuming you installed as C:\MakeHuman) * Debian/Ubuntu Linux: ~/bin/makehuman/plugins (check accuracy of this) Posts: 2 Joined: Thu Feb 23, 2017 5:54 pm One Click Ban: [ One Click Ban ] User Flagged: No [ Flag ] '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by the author of MHX). Although it's still a part of Blender's code base, it is not recommended to keep using it. For the MHX maintainer's (Thomas Larsson) part, MHX has been replaced with MHX2. More info on this (as well as downloads) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange For MakeHuman's part, it was decided to not integrate MHX2 in the core distribution for a few reasons: * It's a large code base with a different release cycle than MH * Having MHX2 as a plugin rather than as a part of the code makes for better code structure * It was felt that it was better to shift focus to generic formats such as DAE and FBX. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk 344267892827927cbffa8d55c0d46b22d8dfc087 1338 1337 2017-03-14T14:48:46Z Robbaer 12 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * MacIntosh OSX: Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * Windows 7/8/10: C:\MakeHuman\plugins (Assuming you installed in C:\) * Debian/Ubuntu Linux: ~/bin/makehuman/plugins (check accuracy of this) Posts: 2 Joined: Thu Feb 23, 2017 5:54 pm One Click Ban: [ One Click Ban ] User Flagged: No [ Flag ] '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by the author of MHX). Although it's still a part of Blender's code base, it is not recommended to keep using it. For the MHX maintainer's (Thomas Larsson) part, MHX has been replaced with MHX2. More info on this (as well as downloads) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange For MakeHuman's part, it was decided to not integrate MHX2 in the core distribution for a few reasons: * It's a large code base with a different release cycle than MH * Having MHX2 as a plugin rather than as a part of the code makes for better code structure * It was felt that it was better to shift focus to generic formats such as DAE and FBX. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk adf83104b8d53be9d335484c4001b05354f8dc43 1337 1336 2017-03-14T14:48:02Z Robbaer 12 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2 folder'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * MacIntosh OSX: Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * Windows 7/8/10: C:\MakeHuman\plugins (Assuming you installed in C:\) * Debian/Ubuntu Linux: ~/bin/makehuman/plugins (check accuracy of this) Posts: 2 Joined: Thu Feb 23, 2017 5:54 pm One Click Ban: [ One Click Ban ] User Flagged: No [ Flag ] '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by the author of MHX). Although it's still a part of Blender's code base, it is not recommended to keep using it. For the MHX maintainer's (Thomas Larsson) part, MHX has been replaced with MHX2. More info on this (as well as downloads) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange For MakeHuman's part, it was decided to not integrate MHX2 in the core distribution for a few reasons: * It's a large code base with a different release cycle than MH * Having MHX2 as a plugin rather than as a part of the code makes for better code structure * It was felt that it was better to shift focus to generic formats such as DAE and FBX. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk b430399485f36c0bbeef8c0fbaac6bd0f2989684 1336 1335 2017-03-14T14:46:53Z Robbaer 12 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For installation of the MakeHuman exporter component, you should save the ''9_export_mhx2 folder'' folder into you MakeHuman plugins folder. The location of this plugins folder will vary with operating system. * MacIntosh OSX: Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * Windows 7/8/10: C:\MakeHuman\plugins (Assuming you installed in C:\) * Linux: ~/bin/makehuman/plugins (check accuracy of this) Posts: 2 Joined: Thu Feb 23, 2017 5:54 pm One Click Ban: [ One Click Ban ] User Flagged: No [ Flag ] '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by the author of MHX). Although it's still a part of Blender's code base, it is not recommended to keep using it. For the MHX maintainer's (Thomas Larsson) part, MHX has been replaced with MHX2. More info on this (as well as downloads) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange For MakeHuman's part, it was decided to not integrate MHX2 in the core distribution for a few reasons: * It's a large code base with a different release cycle than MH * Having MHX2 as a plugin rather than as a part of the code makes for better code structure * It was felt that it was better to shift focus to generic formats such as DAE and FBX. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk 79de38b4cda41abc1427984f4b01f62afc7241d9 1335 1137 2017-03-14T14:34:39Z Robbaer 12 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use Blender, there is not yet an importer available for your application. For the MakeHuman exporter side, you should save the ''9_export_mhx2 folder'' folder into you MakeHuman plugins folder. The location of this folder will vary with operating system. * MacIntosh OSX: Macintosh HD/Applications/MakeHuman.app/Contents/Resources/plugins * Windows 7/8/10: C:\MakeHuman\plugins (Assuming you installed right of C:\) * Linux: ~/bin/makehuman/plugins (check accuracy of this) Posts: 2 Joined: Thu Feb 23, 2017 5:54 pm One Click Ban: [ One Click Ban ] User Flagged: No [ Flag ] '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by the author of MHX). Although it's still a part of Blender's code base, it is not recommended to keep using it. For the MHX maintainer's (Thomas Larsson) part, MHX has been replaced with MHX2. More info on this (as well as downloads) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange For MakeHuman's part, it was decided to not integrate MHX2 in the core distribution for a few reasons: * It's a large code base with a different release cycle than MH * Having MHX2 as a plugin rather than as a part of the code makes for better code structure * It was felt that it was better to shift focus to generic formats such as DAE and FBX. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk 86331f2897169d71f4ff91cdd377d64b7ee01947 1137 644 2016-08-29T10:48:48Z Aranuvir 17 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use blender you don't need it. '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by the author of MHX). Although it's still a part of Blender's code base, it is not recommended to keep using it. For the MHX maintainer's (Thomas Larsson) part, MHX has been replaced with MHX2. More info on this (as well as downloads) see https://bitbucket.org/Diffeomorphic/mhx2-makehuman-exchange For MakeHuman's part, it was decided to not integrate MHX2 in the core distribution for a few reasons: * It's a large code base with a different release cycle than MH * Having MHX2 as a plugin rather than as a part of the code makes for better code structure * It was felt that it was better to shift focus to generic formats such as DAE and FBX. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk 69e1db3921700ed1f8eaec67c5edf7f00b43f04b 644 614 2016-04-21T06:59:22Z Joepal 14 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange If you use Blender you will most likely want to install this. If you don't use blender you don't need it. '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by the author of MHX). Although it's still a part of Blender's code base, it is not recommended to keep using it. For the MHX maintainer's (Thomas Larsson) part, MHX has been replaced with MHX2. More info on this (as well as downloads) see https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange For MakeHuman's part, it was decided to not integrate MHX2 in the core distribution for a few reasons: * It's a large code base with a different release cycle than MH * Having MHX2 as a plugin rather than as a part of the code makes for better code structure * It was felt that it was better to shift focus to generic formats such as DAE and FBX. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk 8c8187d71bbc329e1b5e42b63b1927b8d3eff255 614 554 2016-03-17T08:47:27Z Joepal 14 wikitext text/x-wiki '''Short version:''' MHX2 is now a plugin you download from https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange '''Long version:''' The old MHX format has been deprecated (both by MakeHuman and by the author of MHX). Although it's still a part of Blender's code base, it is not recommended to keep using it. For the MHX maintainer's (Thomas Larsson) part, MHX has been replaced with MHX2. More info on this (as well as downloads) see https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange For MakeHuman's part, it was decided to not integrate MHX2 in the core distribution for a few reasons: * It's a large code base with a different release cycle than MH * Having MHX2 as a plugin rather than as a part of the code makes for better code structure * It was felt that it was better to shift focus to generic formats such as DAE and FBX. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk 1b4a9cfb573aad0d95ed8a03967dcbf76a53d484 554 84 2016-01-04T21:42:21Z Joepal 14 wikitext text/x-wiki The old MHX format has been deprecated (both by MakeHuman and by the author of MHX). Although it's still a part of Blender's code base, it is not recommended to keep using it. For the MHX maintainer's (Thomas Larsson) part, MHX has been replaced with MHX2. More info on this (as well as downloads) see https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange For MakeHuman's part, it was decided to not integrate MHX2 in the core distribution for a few reasons: * It's a large code base with a different release cycle than MH * Having MHX2 as a plugin rather than as a part of the code makes for better code structure * It was felt that it was better to shift focus to generic formats such as DAE and FBX. If you need the specific features of MHX2, visit the link above and follow the instructions. There is also a tutorial video on how to install MHX2 here: https://www.youtube.com/watch?v=3CCHGX-6Mtk 2d79bced883a9d8296c7a975fa52e27b00cf77ad 84 2015-07-09T11:37:52Z Joepal 14 Created page with "The old MHX format has been deprecated (both by MakeHuman and by the author of MHX). Although it's still a part of Blender's code base, it is not recommended to keep using it...." wikitext text/x-wiki The old MHX format has been deprecated (both by MakeHuman and by the author of MHX). Although it's still a part of Blender's code base, it is not recommended to keep using it. For the MHX maintainer's (Thomas Larsson) part, MHX has been replaced with MHX2. More info on this (as well as downloads) see https://bitbucket.org/ThomasMakeHuman/mhx2-makehuman-exchange For MakeHuman's part, it was decided to not integrate MHX2 in the core distribution for a few reasons: * It's a large code base with a different release cycle than MH * MHX2 is not a generic documented standard. * It was felt that it was better to shift focus to generic formats such as DAE and FBX. As it stands, the MakeHuman crew recommends to primarily use DAE (Collada) as an interchange format for blender. However, if you need the specific features of MHX2, visit the link above and follow the instructions. af94cf817b7e1674d353d1a1f7ba388675d22b04 FAQ:What happened to the XYZ asset? 3002 197 658 553 2016-05-14T08:27:26Z Joepal 14 wikitext text/x-wiki The maintenance and addition of assets have been largely been deferred to the community repos, which can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html. If there is something you would like to see there, you can petition the community on the forums in the hope someone will take the initiative to create the asset. As a general policy, the base distribution will only contain a minimal number of sample assets. "Asset" mentioned above being one of: * Skin / texture / material * Target * Topology / proxy * Rig / skeleton * Clothes * Hair 11ff2ea32d7435b48a8d1d1a2819809807734a36 553 552 2015-11-24T09:11:21Z Joepal 14 wikitext text/x-wiki If you used a nightly from spring 2015 and updated it during summer or later, chances are you will notice that a largish set of assets have vanished. This is the single most reported "bug" since then. The maintenance and addition of assets have been largely been deferred to the community repos, which can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html. If there is something you would like to see there, you can petition the community on the forums in the hope someone will take the initiative to create the asset. The current drive is to move the majority of all assets here rather than to try to maintain them internally or include them all in the base distribution. The base distribution will only contain a minimal number of sample assets. "Asset" mentioned above being one of: * Skin / texture / material * Target * Topology / proxy * Rig / skeleton * Clothes * Hair Note that as of November 2015, the repo for rigs is still under construction pending better documentation on how to import/export rigs. For SL/OpenSim/Unity/UE game engine rigs, see discussions on forums for how to replace them. fca266d9fcc67acccd1d1314a596ace78cdaa32b 552 515 2015-11-24T09:08:43Z Joepal 14 wikitext text/x-wiki If you used a nightly from spring 2015 and updated it during summer or later, chances are you will notice that a largish set of assets have vanished. This is the single most reported "bug" since then. The maintenance and addition of desired assets have been largely been deferred to the community repos, which can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html. If there is something you would like to see there, you can petition the community on the forums in the hope someone will take the initiative to create the asset. The current drive is to move the majority of all assets here rather than to try to maintain them internally or include them all in the base distribution. The base distribution will only contain a minimal number of sample assets. "Asset" mentioned above being one of: * Skin / texture / material * Target * Topology / proxy * Rig / skeleton * Clothes * Hair Note that as of November 2015, the repo for rigs is still under construction pending better documentation on how to import/export rigs. For SL/OpenSim/Unity/UE game engine rigs, see discussions on forums for how to replace them. 4e75b622a8306921cefaa39c5f0ffdda8fdf3e82 515 514 2015-09-01T11:30:06Z Joepal 14 wikitext text/x-wiki If you used a nightly from spring 2015 and updated it during summer or later, chances are you will notice that a largeish set of assets have inexplicably vanished. These assets were explicitly deleted by the maintainer. As it stands now, it is unlikely they will reappear within the core distribution. If you think the removal was in error, you are welcome to submit a bug report concerning this at http://bugtracker.makehumancommunity.org. Otherwise, the addition of desired assets have been deferred to the community repos, which can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html. If there is something you would like to see there, you can petition the community on the forums in the hope someone will take the initiative to create the asset. "Asset" mentioned above being one of: * Skin / texture / material * Target * Topology / proxy * Rig / skeleton * Clothes * Hair (note that as of september 2015, the repo for rigs is still under construction) 3706879dee083482eeb7a824edf7c0c99a888ff0 514 513 2015-09-01T11:24:43Z Joepal 14 wikitext text/x-wiki If you used a nightly from spring 2015 and updated it during summer or later, chances are you will notice that a largeish set of assets have inexplicably vanished. These assets were explicitly deleted by the maintainer. As it stands now, it is unlikely they will reappear within the core distribution. If you think the removal was in error, you are welcome to submit a bug report concerning this at http://bugtracker.makehumancommunity.org. Otherwise, the addition of desired assets have been deferred to the community repos, which can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html. If there is something you would like to see there, you can petition the community on the forums in the hope someone will take the initiative to create the asset. "Asset" mentioned above is one of: * Skin / texture / material * Target * Topology / proxy * Rig / skeleton * Clothes * Hair (note that as of september 2015, the repo for rigs is still under construction) 9be97d38b630f7b4040c97529e642f00413ed6e9 513 2015-09-01T11:23:23Z Joepal 14 Created page with "If you used a nightly from spring 2015 and updated it during summer or later, chances are you will notice that a largeish set of assets have inexplicably vanished. These ass..." wikitext text/x-wiki If you used a nightly from spring 2015 and updated it during summer or later, chances are you will notice that a largeish set of assets have inexplicably vanished. These assets were explicitly deleted by the maintainer. As it stands now, it is unlikely they will reappear within the core distribution. If you think the removal was in error, you are welcome to submit a bug report concerning this at http://bugtracker.makehumancommunity.org. Otherwise, the addition of desired assets have been deferred to the community repos, which can be found at http://www.makehumancommunity.org/content/user_contributed_assets.html. If there is something you would like to see there, you can petition the community on the forums in the hope someone will take the initiative to create the asset. "Asset" mentioned above is one of: * Skin / texture / material * Target * Topology / proxy * Rig * Clothes * Hair (note that as of september 2015, the repo for rigs is still under construction) 5901ba4d7936939961ef5bb39316f3fec0b87cec FAQ:What happened to the special assets genitalia? 3002 391 1178 1173 2016-09-05T06:53:57Z Joepal 14 wikitext text/x-wiki The genitalia proxies have been removed from the official MakeHuman bundle and can now be found in the "User contributed assets" section. That is, they can be downloaded from the User contributed assets Page (http://www.makehumancommunity.org/proxies.html). To install the proxy please refer to [[FAQ:I downloaded a third party proxy. How do I install it?]]. There is still genitalia functionality in the code. This does, however, not do anything unless a genitalia proxy is enabled. So to (for example), use the penis sliders you will need to: * Download the male genitalia proxy * Go to geometries -> topologies and enable it Having done this, all the appropriate genitalia sliders should now function. Alternatively, there is also an add genitalia functionality in the MHX2 plugin. 6d299a2bcfbaf8d4552248400fd9417ef77b35f5 1173 1172 2016-08-30T12:14:24Z Aranuvir 17 wikitext text/x-wiki The genitalia proxies have been removed from the official MakeHuman bundle and can now be found in the "User contributed assets" section. There is still genitalia functionality in the code, which is disabled by default without the appropriate proxies. The genitalia proxy can still be downloaded from the User contributed assets Page (http://www.makehumancommunity.org/proxies.html). To install the proxy please refer to [[FAQ:I downloaded a third party proxy. How do I install it?]]. There is also a add genitalia functionality in the unofficial MHX-2 plugin. 17226b8fc1a3ebf2d8ba87f99bb0a85b57839a69 1172 1005 2016-08-30T12:12:43Z Aranuvir 17 wikitext text/x-wiki The genitalia proxies have been removed from the official MakeHuman bundle and can now be found in the "User contributed assets" section. There is still genitalia functionality in the code, which is disabled by default without the appropriate proxies. The genitalia proxy can still be downloaded from the User contributed assets Page (http://www.makehumancommunity.org/proxies.html)\n There is also a add genitalia functionality in the unofficial MHX-2 plugin. 5052f1e327a4d82e2820352c595546607da356aa 1005 1004 2016-06-07T07:35:42Z Aranuvir 17 wikitext text/x-wiki The genitalia proxies have been removed from the official MakeHuman bundle and can now be found in the "User contributed assets" section. There is still genitalia functionality in the code, which is disabled by default without the appropriate proxies. There is also a add genitalia functionality in the unofficial MHX-2 plugin. 8c46ab6f091c22fed9f78313dd9cca6c6a2b2dd0 1004 2016-06-05T22:19:38Z Aranuvir 17 Created page with "The genitalia proxies have been removed official MakeHuman bundle and can now be found in the "User contributed assets" section. There is still genitalia functionality in the..." wikitext text/x-wiki The genitalia proxies have been removed official MakeHuman bundle and can now be found in the "User contributed assets" section. There is still genitalia functionality in the code, which is disabled by default without the appropriate proxies. 64a50570107d67d6e5b1785e6785caf387a86ef2 FAQ:What happened to the specific skeletons (the UE and SL rigs for example)? 3002 220 650 2016-05-12T05:40:12Z Joepal 14 Created page with "The theory is that the "game engine" rig should be a functional generic replacement. Outside that, assets for specific third part software has been broken out of MH and defe..." wikitext text/x-wiki The theory is that the "game engine" rig should be a functional generic replacement. Outside that, assets for specific third part software has been broken out of MH and deferred to the online repos found here: http://www.makehumancommunity.org/content/user_contributed_assets.html (the rigs section is at the bottom). As it is impossible for the MH dev group to support specific third part commercial software we don't use or know ourselves, we have deferred such to user contributions areas. If someone feels they have the specific knowledge required to understand how rigs for a specific third part piece of software work, they are welcome to upload and maintain the rigs in those areas. At the time of writing this, Second Life / OpenSim have gotten such user support. It is also possible you can find someone who still has the old somewhat shaky attempts at specific rigs lying around (we don't). These are (obviously) open source and if someone wants to update or maintain them, they can upload the rigs to the user repos. 7f519859dc255f1ba20a1ea76ffbd53e02313917 FAQ:What is MPFB (MakeHuman Plugin For Blender)? 3002 577 1924 1923 2020-11-06T11:19:12Z Joepal 14 wikitext text/x-wiki The MakeHuman Plugin for Blender is a plugin which enables direct communication with MakeHuman from Blender. The main feature is that you get a one click import button that fetches the current character as displayed in MakeHuman into Blender, without the need to first export to a file. The import will handle rigging, proxies, clothes and materials. Other features include: * Automatic support for both Eevee and Cycles (the old Blender Internal renderer is not supported) * Ability to switch between FK and IK * Adds convencience modifiers for showing/hiding helper geometry * Able to add enhanced skin shading with, for example, SSS * Kinect integration The blender plugin is available for download from the [http://www.makehumancommunity.org/content/plugins.html plugins page] and is bundled in the makehuman download for windows. For instructions on how to install it, see [[FAQ: How do I install a plugin in Blender 2.80?]] Not that for the import from MakeHuman to work, you also need to enable the socket server on the community->socket tab in MH. 1c173a2507fee5930a68320fa8c0353702f4b9ae 1923 1799 2020-11-06T11:18:30Z Joepal 14 wikitext text/x-wiki The MakeHuman Plugin for Blender is a plugin which enables direct communication with MakeHuman from Blender. The main feature is that you get a one click import button that fetches the current character as displayed in MakeHuman into Blender, without the need to first export to a file. The import will handle rigging, proxies, clothes and materials. Other features include: * Automatic support for both Eevee and Cycles (the old Blender Internal renderer is not supported) * Ability to switch between FK and IK * Adds convencience modifiers for showing/hiding helper geometry * Able to add enhanced skin shading with, for example, SSS * Kinect integration The blender plugin is available for download from the [http://www.makehumancommunity.org/content/plugins.html plugins page] and is bundled in the makehuman download for windows. For instructions on how to install it, see [[FAQ: How do I install a plugin in Blender 2.80?]] 0e5feef5c2ae412dd697cf375ad4622e9a3c3178 1799 1608 2020-06-07T11:58:44Z Joepal 14 wikitext text/x-wiki The MakeHuman Plugin for Blender is a plugin which enables direct communication with MakeHuman from Blender. The main feature is that you get a one click import button that fetches the current character as displayed in MakeHuman into Blender, without the need to first export to a file. The import will handle rigging, proxies, clothes and materials. Other features include: * Automatic support for both Eevee and Cycles (the old Blender Internal renderer is not supported) * Ability to switch between FK and IK * Adds convencience modifiers for showing/hiding helper geometry * Able to add enhanced skin shading with, for example, SSS * Kinect integration The blender plugin is available for download from the [http://www.makehumancommunity.org/content/plugins.html plugins page] For instructions on how to install it, see [[FAQ: How do I install a plugin in Blender 2.80?]] 693e92e090970e08018f2da2db21a759f21c9768 1608 2019-09-27T08:09:17Z Joepal 14 Created page with "The MakeHuman Plugin for Blender is a plugin which enables direct communication with MakeHuman from Blender. The main feature is that you get a one click import button that fe..." wikitext text/x-wiki The MakeHuman Plugin for Blender is a plugin which enables direct communication with MakeHuman from Blender. The main feature is that you get a one click import button that fetches the current character as displayed in MakeHuman into Blender, without the need to first export to a file. The import will handle rigging, proxies, clothes and materials. Other features include: * Automatic support for both Eevee and Cycles (the old Blender Internal renderer is not supported) * Ability to switch between FK and IK * Adds convencience modifiers for showing/hiding helper geometry * Able to add enhanced skin shading with, for example, SSS * Kinect integration bd01cbccef00d8ac71855f1ab8245bf5c99891a7 FAQ:What is MakeHuman? 3002 22 78 2015-07-09T11:24:50Z Joepal 14 Created page with "MakeHuman is a completely free, innovative and professional software for the modelling of 3-Dimensional humanoid characters." wikitext text/x-wiki MakeHuman is a completely free, innovative and professional software for the modelling of 3-Dimensional humanoid characters. 2b33291c02ceb5c9a7f141e6e195e90b921c62ec FAQ:What is MakeHumanPortable 3002 485 1204 1203 2016-10-21T16:46:46Z Aranuvir 17 wikitext text/x-wiki [https://download.tuxfamily.org/makehuman/releases/1.1.0/makehuman-community-1.1.0-cr1.paf.exe MakeHumanPortable] is a MakeHuman build for the [http://portableapps.com/ PortableApps] software collection on Windows®. Commonly portable applications are installed on a removable device, so they can be carried from Windows® system to another. Portable applications do not leave traces on the system they are running on. The applications can be managed with the [http://portableapps.com/download PortableApps menu]. Because MakeHumanPortable is currently hosted by MakeHuman itself on Tuxfamily automatic updating via the PortableApps menu will not work. Functionality and usage of MakeHumanPortable is the same as MakeHuman with some carefully chosen extensions and community plug-ins. To comply with the condition of not leaving traces on the system, MakeHumanPortable will store users data such as created models or extra clothes in its own folder structure. Therefore, the [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?|makehuman user-folder]] will be located at X:\PortableApps\MakeHuman\AppData (replace X: with the correct letter of your portable device). The MakeHuman user-folder will be created on first run. If you want to use proxy items created from another MakeHuman installation, these proxy items need to be copied to the user-folder of the portable application. The currently distributed version of MakeHumanPortable (1.1.0-cr1) is a community release and an official build, which includes all plug-ins available for MakeHuman until 2016.09.29. Particularly the MHX2 plug-in is included. Models exported from this community build are still covered by the CC0-exception [http://www.makehuman.org/license_explanation.php (see license explanations)], even when exported with the MHX2-exporter plug-in. (Keep in mind: basic assets directly provided by MakeHuman applications are covered by the MakeHuman-license, too. However, assets downloaded by the assets downloader plug-in or from the [http://www.makehumancommunity.org/content/user_contributed_assets.html community site] directly may have other licenses. Currently the possible licenses for community assets are either CC-BY or CC0.) If you are using BlenderPortable, too, you can use a [https://download.tuxfamily.org/makehuman/releases/1.1.0/MHPluginsBlenderPortable_1.1.0-cr1.paf.exe plug-in installer] to install the Blender component for MHX2-import, MH BlenderTools (MakeClothes, MakeTarget, MakeWalk), and the community assets. After install these Blender plug-ins will still need to be activated within the add-on tab of the [https://www.blender.org/manual/de/preferences/addons.html user preferences]. The plug-in installer described here will work with BlenderPortable only and not with standard Blender! Blender, until version 2.77a, came with a pre-installed, outdated MHX-importer. Do not use this outdated plug-in to import files created with the MHX2-exporter!<br /> When using MakeClothes with either Blender or BlenderPortable the Output Directory needs to be set to the local user-folder (see second chapter). To change the default output of MakeClothes, click on "Show Settings" within the MakeClothes-panel and change the string under "Output Directory". <br /> '''Some technical hints:''' *Applications from PortableApps do not need to be installed on a removable device, they can be installed to any local folder on the system, too. MakeHumanPortable can even be installed as stand-alone application without the PortableApps-platform. *Theoretically, programs provided by PortableApps can be run on Linux or OSX by using the [https://www.winehq.org/ Wine]/[https://www.codeweavers.com/ CrossOver] environment, though functionality is not guaranteed. *MakeHumanPortable can be seen as a wrapper around the genuine MakeHuman Application, which is located at X:\PortableApps\MakeHumanPortable\App\makehuman. Here is placed the common Windows® build. So, if you want to add more plug-ins, they need be moved to the appropriate subdirectory in this location. (Attention: Adding new plug-ins could affect the CC0 exception of the MakeHuman license. [http://www.makehuman.org/license_explanation.php Click here for further information about the license]). *The behaviour of MakeHumanPortable.exe is controlled by MakeHumanPortable.ini in the folder ...\App\AppInfo\Launcher\, e.g. it controls the location of the users data-folder (for changes in this file see the Documentation: http://portableapps.com/manuals/PortableApps.comLauncher/ref/launcher.ini/index.html#ref-launcher-ini) 2044d176aa9401e0a63b61994b9f69d7a5e7ccfd 1203 1202 2016-10-21T16:34:09Z Aranuvir 17 wikitext text/x-wiki [https://download.tuxfamily.org/makehuman/releases/1.1.0/makehuman-community-1.1.0-cr1.paf.exe MakeHumanPortable] is a MakeHuman build for the [http://portableapps.com/ PortableApps] software collection on Windows®. Commonly portable applications are installed on a removable device, so they can be carried from Windows® system to another. Portable applications do not leave traces on the system they are running on. The applications can be managed with the [http://portableapps.com/download PortableApps menu]. Because MakeHumanPortable is currently hosted by MakeHuman itself on Tuxfamily automatic updating via the PortableApps menu will not work. Functionality and usage of MakeHumanPortable is the same as MakeHuman with some carefully chosen extensions and community plug-ins. To comply with the condition of not leaving traces on the system, MakeHumanPortable will store users data such as created models or extra clothes in its own folder structure. Therefore, the [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?|makehuman user-folder]] will be located at X:\PortableApps\MakeHuman\AppData (replace X: with the correct letter of your portable device). The MakeHuman user-folder will be created on first run. If you want to use proxy items created from another MakeHuman installation, these proxy items need to be copied to the user-folder of the portable application. The currently distributed version of MakeHumanPortable (1.1.0-cr1) is a community release and an official build, which includes all plug-ins available for MakeHuman until 2016.09.29. Particularly the MHX2 plug-in is included. Models exported from this community build are still covered by the CC0-exception [http://www.makehuman.org/license_explanation.php (see license explanations)], even when exported with the MHX2-exporter plug-in. (Keep in mind: basic assets directly provided by MakeHuman applications are covered by the MakeHuman-license, too. However, assets downloaded by the assets downloader plug-in or from the [http://www.makehumancommunity.org/content/user_contributed_assets.html community site] directly may have other licenses. Currently the possible licenses for community assets are either CC-BY or CC0.) If you are using BlenderPortable, too, you can use a [https://download.tuxfamily.org/makehuman/releases/1.1.0/MHPluginsBlenderPortable_1.1.0-cr1.paf.exe plug-in installer] to install the Blender component for MHX2-import, MH BlenderTools (MakeClothes, MakeTarget, MakeWalk), and the community assets. After install these Blender plug-ins will still need to be activated within the add-on tab of the [https://www.blender.org/manual/de/preferences/addons.html user preferences]. The plug-in installer described here will work with BlenderPortable only and not with standard Blender! Blender, until version 2.77a, came with a pre-installed, outdated MHX-importer. Do not use this outdated plug-in to import files created with the MHX2-exporter!<br /> When using MakeClothes with either Blender or BlenderPortable the Output Directory needs to be set to the local user-folder (see second chapter). To change the default output of MakeClothes, click on "Show Settings" within the MakeClothes-panel and change the string under "Output Directory". Some technical hints: PortableApps do not need to be installed on a removable device, they can be installed to any local folder on the system, too. MakeHumanPortable can even be installed as stand-alone application without the PortableApps-platform.<br /> Theoretically, programs provided by PortableApps can be run on Linux or OSX by using the [https://www.winehq.org/ Wine]/[https://www.codeweavers.com/ CrossOver] environment, though functionality is not guaranteed.<br /> MakeHumanPortable can be seen as a wrapper around the genuine MakeHuman Application, which is located at X:\PortableApps\MakeHumanPortable\App\makehuman. Here is placed the common Windows® build. So, if you want to add more plug-ins, they need be moved to the appropriate subdirectory in this location. (Attention: Adding new plug-ins could affect the CC0 exception of the MakeHuman license. [http://www.makehuman.org/license_explanation.php Click here for further information about the license]).<br /> The behaviour of MakeHumanPortable.exe is controlled by MakeHumanPortable.ini in the folder ...\App\AppInfo\Launcher\, e.g. it controls the location of the users data-folder (for changes in this file see the Documentation: http://portableapps.com/manuals/PortableApps.comLauncher/ref/launcher.ini/index.html#ref-launcher-ini) f8a17215e510a1791a7dfdbd2ae27033115def6f 1202 1201 2016-10-21T16:33:17Z Aranuvir 17 wikitext text/x-wiki [https://download.tuxfamily.org/makehuman/releases/1.1.0/ MakeHumanPortable] is a MakeHuman build for the [http://portableapps.com/ PortableApps] software collection on Windows®. Commonly portable applications are installed on a removable device, so they can be carried from Windows® system to another. Portable applications do not leave traces on the system they are running on. The applications can be managed with the [http://portableapps.com/download PortableApps menu]. Because MakeHumanPortable is currently hosted by MakeHuman itself on Tuxfamily automatic updating via the PortableApps menu will not work. Functionality and usage of MakeHumanPortable is the same as MakeHuman with some carefully chosen extensions and community plug-ins. To comply with the condition of not leaving traces on the system, MakeHumanPortable will store users data such as created models or extra clothes in its own folder structure. Therefore, the [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?|makehuman user-folder]] will be located at X:\PortableApps\MakeHuman\AppData (replace X: with the correct letter of your portable device). The MakeHuman user-folder will be created on first run. If you want to use proxy items created from another MakeHuman installation, these proxy items need to be copied to the user-folder of the portable application. The currently distributed version of MakeHumanPortable (1.1.0-cr1) is a community release and an official build, which includes all plug-ins available for MakeHuman until 2016.09.29. Particularly the MHX2 plug-in is included. Models exported from this community build are still covered by the CC0-exception [http://www.makehuman.org/license_explanation.php (see license explanations)], even when exported with the MHX2-exporter plug-in. (Keep in mind: basic assets directly provided by MakeHuman applications are covered by the MakeHuman-license, too. However, assets downloaded by the assets downloader plug-in or from the [http://www.makehumancommunity.org/content/user_contributed_assets.html community site] directly may have other licenses. Currently the possible licenses for community assets are either CC-BY or CC0.) If you are using BlenderPortable, too, you can use a [https://download.tuxfamily.org/makehuman/releases/1.1.0/MHPluginsBlenderPortable_1.1.0-cr1.paf.exe plug-in installer] to install the Blender component for MHX2-import, MH BlenderTools (MakeClothes, MakeTarget, MakeWalk), and the community assets. After install these Blender plug-ins will still need to be activated within the add-on tab of the [https://www.blender.org/manual/de/preferences/addons.html user preferences]. The plug-in installer described here will work with BlenderPortable only and not with standard Blender! Blender, until version 2.77a, came with a pre-installed, outdated MHX-importer. Do not use this outdated plug-in to import files created with the MHX2-exporter!<br /> When using MakeClothes with either Blender or BlenderPortable the Output Directory needs to be set to the local user-folder (see second chapter). To change the default output of MakeClothes, click on "Show Settings" within the MakeClothes-panel and change the string under "Output Directory". Some technical hints: PortableApps do not need to be installed on a removable device, they can be installed to any local folder on the system, too. MakeHumanPortable can even be installed as stand-alone application without the PortableApps-platform.<br /> Theoretically, programs provided by PortableApps can be run on Linux or OSX by using the [https://www.winehq.org/ Wine]/[https://www.codeweavers.com/ CrossOver] environment, though functionality is not guaranteed.<br /> MakeHumanPortable can be seen as a wrapper around the genuine MakeHuman Application, which is located at X:\PortableApps\MakeHumanPortable\App\makehuman. Here is placed the common Windows® build. So, if you want to add more plug-ins, they need be moved to the appropriate subdirectory in this location. (Attention: Adding new plug-ins could affect the CC0 exception of the MakeHuman license. [http://www.makehuman.org/license_explanation.php Click here for further information about the license]).<br /> The behaviour of MakeHumanPortable.exe is controlled by MakeHumanPortable.ini in the folder ...\App\AppInfo\Launcher\, e.g. it controls the location of the users data-folder (for changes in this file see the Documentation: http://portableapps.com/manuals/PortableApps.comLauncher/ref/launcher.ini/index.html#ref-launcher-ini) a66111048d240a930f4d04a2335476c3dde72866 1201 1200 2016-10-21T16:18:55Z Aranuvir 17 wikitext text/x-wiki MakeHumanPortable is a MakeHuman build for the [http://portableapps.com/ PortableApps] software collection on Windows®. Commonly portable applications are installed on a removable device, so they can be carried from Windows® system to another. Portable applications do not leave traces on the system they are running on. The applications can be managed with the [http://portableapps.com/download PortableApps menu]. Because MakeHumanPortable is currently hosted by MakeHuman itself on Tuxfamily automatic updating via the PortableApps menu will not work. Functionality and usage of MakeHumanPortable is the same as MakeHuman with some carefully chosen extensions and community plug-ins. To comply with the condition of not leaving traces on the system, MakeHumanPortable will store users data such as created models or extra clothes in its own folder structure. Therefore, the [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?|makehuman user-folder]] will be located at X:\PortableApps\MakeHuman\AppData (replace X: with the correct letter of your portable device). The MakeHuman user-folder will be created on first run. If you want to use proxy items created from another MakeHuman installation, these proxy items need to be copied to the user-folder of the portable application. The currently distributed version of MakeHumanPortable (1.1.0-cr1) is a community release and an official build, which includes all plug-ins available for MakeHuman until 2016.09.29. Particularly the MHX2 plug-in is included. Models exported from this community build are still covered by the CC0-exception [http://www.makehuman.org/license_explanation.php (see license explanations)], even when exported with the MHX2-exporter plug-in. (Keep in mind: basic assets directly provided by MakeHuman applications are covered by the MakeHuman-license, too. However, assets downloaded by the assets downloader plug-in or from the [http://www.makehumancommunity.org/content/user_contributed_assets.html community site] directly may have other licenses. Currently the possible licenses for community assets are either CC-BY or CC0.) If you are using BlenderPortable, too, you can use a [https://download.tuxfamily.org/makehuman/releases/1.1.0/MHPluginsBlenderPortable_1.1.0-cr1.paf.exe plug-in installer] to install the Blender component for MHX2-import, MH BlenderTools (MakeClothes, MakeTarget, MakeWalk), and the community assets. After install these Blender plug-ins will still need to be activated within the add-on tab of the [https://www.blender.org/manual/de/preferences/addons.html user preferences]. The plug-in installer described here will work with BlenderPortable only and not with standard Blender! Blender, until version 2.77a, came with a pre-installed, outdated MHX-importer. Do not use this outdated plug-in to import files created with the MHX2-exporter!<br /> When using MakeClothes with either Blender or BlenderPortable the Output Directory needs to be set to the local user-folder (see second chapter). To change the default output of MakeClothes, click on "Show Settings" within the MakeClothes-panel and change the string under "Output Directory". Some technical hints: PortableApps do not need to be installed on a removable device, they can be installed to any local folder on the system, too. MakeHumanPortable can even be installed as stand-alone application without the PortableApps-platform.<br /> Theoretically, programs provided by PortableApps can be run on Linux or OSX by using the [https://www.winehq.org/ Wine]/[https://www.codeweavers.com/ CrossOver] environment, though functionality is not guaranteed.<br /> MakeHumanPortable can be seen as a wrapper around the genuine MakeHuman Application, which is located at X:\PortableApps\MakeHumanPortable\App\makehuman. Here is placed the common Windows® build. So, if you want to add more plug-ins, they need be moved to the appropriate subdirectory in this location. (Attention: Adding new plug-ins could affect the CC0 exception of the MakeHuman license. [http://www.makehuman.org/license_explanation.php Click here for further information about the license]).<br /> The behaviour of MakeHumanPortable.exe is controlled by MakeHumanPortable.ini in the folder ...\App\AppInfo\Launcher\, e.g. it controls the location of the users data-folder (for changes in this file see the Documentation: http://portableapps.com/manuals/PortableApps.comLauncher/ref/launcher.ini/index.html#ref-launcher-ini) a7ab2ff4270b077122b552a2c54bc3eba60cca5b 1200 1191 2016-10-21T14:07:10Z Robbaer 12 wikitext text/x-wiki MakeHumanPortable is a MakeHuman build for the [http://portableapps.com/ PortableApps] software collection on Windows OSes. Commonly portable apps are installed on a removable device, so they can be carried from Windows system to another. Portable apps do not leave traces on the system they are running on. The apps can be managed with the [http://portableapps.com/download PortableApps menu]. Because MakeHumanPortable is currently hosted by MakeHuman itself on Tuxfamily automatic updating via the PortableApps menu will not work. Functionality and usage of MakeHumanPortable is the same as MakeHuman with some carefully chosen extensions and community plugins. To comply with the condition of not leaving traces on the system, MakeHumanPortable will store users data such as created models or extra clothes in its own folder structure. Therefore, the [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?|makehuman user-folder]] will be located at X:\PortableApps\MakeHuman\AppData (replace X: with the correct letter of your portable device). The makehuman user-folder will be created on first run. If you want to use proxy items created from another MakeHuman installation, these proxy items need to be copied to the user-folder of the portable app. The currently distributed version of MakeHumanPortable (1.1.0-cr1) is a community release and an official build, which includes all plug-ins available for MakeHuman until 2016.09.29. Particularly the MHX2 plug-in is included. Models exported from this community build are still covered by the CC0-exception [http://www.makehuman.org/license_explanation.php (see license explanations)], even when exported with the MHX2-exporter plug-in. (Keep in mind: basic assets directly provided by MakeHuman applications are covered by the MakeHuman-license, too. However, assets downloaded by the assets downloader plug-in or from the [http://www.makehumancommunity.org/content/user_contributed_assets.html community site] directly may have other licenses. Currently the possible licenses for community assets are are either CC-BY or CC0.) If you are using BlenderPortable, too, you can use a [https://download.tuxfamily.org/makehuman/releases/1.1.0/MHPluginsBlenderPortable_1.1.0-cr1.paf.exe plug-in installer] to install the Blender component for MHX2-import, MH BlenderTools (MakeClothes, MakeTarget, MakeWalk), and the community assets. After install these Blender plug-ins will still need to be activated within the add-on tab of the [https://www.blender.org/manual/de/preferences/index.html user preferences]. The plug-in installer described here will work with BlenderPortable only and not with standard Blender! Blender, until version 2.77a, came with a pre-installed, outdated MHX-importer. Do not use this outdated plugin to import files created with the MHX2-exporter!<br /> When using MakeClothes with either Blender or BlenderPortable the Output Directory needs to be set to the local user-folder (see second chapter). To change the default output of MakeClothes, click on "Show Settings" within the MakeClothes-panel and change the string under "Output Directory". Some technical hints: PortableApps do not need to be installed on a removable device, they can be installed to any local folder on the system, too. MakeHumanPortable can even be installed as stand alone application without the PortableApps-platform.<br /> ''Theoretically, programs provided by PortableApps can be run on Linux or OSX by using the [https://www.winehq.org/ Wine]/[https://www.codeweavers.com/ CrossOver] environment, though functionality is not guaranteed.<br />'' PortableApps can be seen as a wrapper around the genuine Application, which can be found at X:\PortableApps\MakeHumanPortable\App\makehuman. Here is placed the common Windows build. So, if you want to add more plug-ins, they will be moved to the appropriate folder here. (Attention: this will affect the MakeHuman license!).<br /> The behaviour of MakeHumanPortable.exe is controlled by MakeHumanPortable.ini in the folder ...\App\AppInfo\Launcher\, e.g. it controls the location of the users data-folder (for changes in this file see the Documentation: http://portableapps.com/manuals/PortableApps.comLauncher/ref/launcher.ini/index.html#ref-launcher-ini) f18420c6b4ca3965a39463f5dc8bcdf11b517b71 1191 1190 2016-09-29T19:34:55Z Aranuvir 17 wikitext text/x-wiki MakeHumanPortable is an extra package build for the [http://portableapps.com/ PortableApps] software collection. Commonly portable apps are installed on a removable device, so they can be carried from Windows system to another. Portable apps do not leave traces on the system they are running on. The apps can be managed with the [http://portableapps.com/download PortableApps menu]. Because MakeHumanPortable is currently hosted by MakeHuman itself on Tuxfamily automatic updating via the PortableApps menu will not work. Functionality and usage of MakeHumanPortable is the same as MakeHuman. To comply with the condition not leaving traces on the system MakeHumanPortable will store users data such as created models or extra clothes in its own folder structure. Therefore, the [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?|makehuman user-folder]] will be located at X:\PortableApps\MakeHuman\AppData (replace X: with the correct letter of your portable device). The makehuman user-folder will be created on first run. If you want to use stuff created from another MakeHuman installation, this stuff needs to be copied to the user-folder of the portable app. The currently distributed version of MakeHumanPortable (1.1.0-cr1) is a community release and an official build, which includes all plug-ins available for MakeHuman until 2016.09.29. Particularly the MHX2 plug-in is included. Models exported from this community build are still covered by the CC0-exception [http://www.makehuman.org/license_explanation.php (see license explanations)], even when exported with the MHX2-exporter plug-in. (Keep in mind: basic assets directly provided by MakeHuman applications are covered by the MakeHuman-licens, too. But this may not count for assets provided by the community either downloaded by the assets downloader plug-in or from the [http://www.makehumancommunity.org/content/user_contributed_assets.html community site] directly. Currently the possible licenses for those assets are CC-BY or CC0.) If you are using BlenderPortable, too, you can use a [https://download.tuxfamily.org/makehuman/releases/1.1.0/MHPluginsBlenderPortable_1.1.0-cr1.paf.exe plug-in installer] to install MHX2-importer, blendertools (MakeClothes, MakeTarget, MakeWalk), and the community assets. After install the plug-ins still need to be activated within the add-on tab of the [https://www.blender.org/manual/de/preferences/index.html user preferences]. The plug-in installer will work with BlenderPortable only! Until version 2.77a of Blender there is an outdated MHX-importer included. Do not use it with MHX2-exports!<br /> When using MakeClothes with either Blender or BlenderPortable the Output Directory needs to be set to the local user-folder (see second chapter). To change the default output of MakeClothes, click on "Show Settings" within the MakeClothes-panel and change the string under "Output Directory". Some technical hints: PortableApps do not need to be installed on a removable device, they can be installed to any local folder on the system, too. MakeHumanPortable can even be installed as stand alone application without the PortableApps-platform.<br /> Theoretically, programs provided by PortableApps can be run on Linux or OSX by using the [https://www.winehq.org/ Wine]/[https://www.codeweavers.com/ CrossOver] environment, though functionality is not guaranteed.<br /> PortableApps can be seen as a wrapper around the genuine Application, which can be found at X:\PortableApps\MakeHumanPortable\App\makehuman. Here is placed the common Windows build. So, if you want to add more plug-ins, they will be moved to the appropriate folder here. (Attention: this will affect the MakeHuman license!).<br /> The behaviour of MakeHumanPortable.exe is controlled by MakeHumanPortable.ini in the folder ...\App\AppInfo\Launcher\, e.g. it controls the location of the users data-folder (for changes in this file see the Documentation: http://portableapps.com/manuals/PortableApps.comLauncher/ref/launcher.ini/index.html#ref-launcher-ini) ddedf4e1477f42cb7292fca214b77b663ffa172a 1190 1189 2016-09-29T18:15:44Z Aranuvir 17 wikitext text/x-wiki MakeHumanPortable is an extra package build for the [http://portableapps.com/ PortableApps] software collection. Commonly portable apps are installed on a removable device, so they can be carried from Windows system to another. Portable apps do not leave traces on the system they are running on. The apps can be managed with the [http://portableapps.com/download PortableApps menu]. Because MakeHumanPortable is currently hosted by MakeHuman itself on Tuxfamily automatic updating via the PortableApps menu will not work. Functionality and usage of MakeHumanPortable is the same as MakeHuman. To comply with the condition not leaving traces on the system MakeHumanPortable will store users data such as created models or extra clothes in its own folder structure. Therefore, the [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?|makehuman user-folder]] will be located at X:\PortableApps\MakeHuman\AppData (replace X: with the correct letter of your portable device). The makehuman user-folder will be created on first run. If you want to use stuff created from another MakeHuman installation, this stuff needs to be copied to the user-folder of the portable app. The currently distributed version of MakeHumanPortable (1.1.0-cr1) is a community release and an official build, which includes all plug-ins available for MakeHuman until 2016.09.29. Particularly the MHX2 plug-in is included. Models exported from this community build are still covered by the CC0-exception [http://www.makehuman.org/license_explanation.php (see license explanations)], even when exported with the MHX2-exporter plug-in. (Keep in mind: basic assets directly provided by MakeHuman applications are covered by the MakeHuman-licens, too. But this may not count for assets provided by the community either downloaded by the assets downloader plug-in or from the [http://www.makehumancommunity.org/content/user_contributed_assets.html community site] directly. Currently the possible licenses for those assets are CC-BY or CC0. If you are using BlenderPortable, too, you can use a [https://download.tuxfamily.org/makehuman/releases/1.1.0/MHPluginsBlenderPortable_1.1.0-cr1.paf.exe plug-in installer] to install MHX2-importer, blendertools (MakeClothes, MakeTarget, MakeWalk), and the community assets. After install the plug-ins still need to be activated within the add-on tab of the [https://www.blender.org/manual/de/preferences/index.html user preferences]. The plug-in installer will work with BlenderPortable only! Until version 2.77a of Blender there is an outdated MHX-importer included. Do not use it with MHX2-exports!<br /> When using MakeClothes with either Blender or BlenderPortable the Output Directory needs to be set to the local user-folder (see second chapter). To change the default output of MakeClothes, click on "Show Settings" within the MakeClothes-panel and change the string under "Output Directory". Some technical hints: PortableApps do not need to be installed on a removable device, they can be installed to any local folder on the system, too. MakeHumanPortable can even be installed as stand alone application without the PortableApps-platform.<br /> Theoretically, programs provided by PortableApps can be run on Linux or OSX by using the [https://www.winehq.org/ Wine]/[https://www.codeweavers.com/ CrossOver] environment, though functionality is not guaranteed.<br /> PortableApps can be seen as a wrapper around the genuine Application, which can be found at X:\PortableApps\MakeHumanPortable\App\makehuman. Here is placed the common Windows build. So, if you want to add more plug-ins, they will be moved to the appropriate folder here. (Attention: this will affect the MakeHuman license!).<br /> The behaviour of MakeHumanPortable.exe is controlled by MakeHumanPortable.ini in the folder ...\App\AppInfo\Launcher\, e.g. it controls the location of the users data-folder (for changes in this file see the Documentation: http://portableapps.com/manuals/PortableApps.comLauncher/ref/launcher.ini/index.html#ref-launcher-ini) 1562d351e2bc47d0579ce6aa6e0e3c40d0d365a5 1189 1188 2016-09-29T18:09:59Z Aranuvir 17 wikitext text/x-wiki MakeHumanPortable is an extra package build for the [http://portableapps.com/ PortableApps] software collection. Commonly portable apps are installed on a removable device, so they can be carried from Windows system to another. Portable apps do not leave traces on the system they are running on. The apps can be managed with the [http://portableapps.com/download PortableApps menu]. Because MakeHumanPortable is currently hosted by MakeHuman itself on Tuxfamily automatic updating via the PortableApps menu will not work. Functionality and usage of MakeHumanPortable is the same as MakeHuman. To comply with the condition not leaving traces on the system MakeHumanPortable will store users data such as created models or extra clothes in its own folder structure. Therefore, the [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?|makehuman user-folder]] will be located at X:\PortableApps\MakeHuman\AppData (replace X: with the correct letter of your portable device). The makehuman user-folder will be created on first run. If you want to use stuff created from another MakeHuman installation, this stuff needs to be copied to the user-folder of the portable app. The currently distributed version of MakeHumanPortable (1.1.0-cr1) is a community release and an official build, which includes all plug-ins available for MakeHuman until 2016.09.29. Particularly the MHX2 plug-in is included. Models exported from this community build are still covered by the CC0-exception [http://www.makehuman.org/license_explanation.php (see license explanations)], even when exported with the MHX2-exporter plug-in. (Keep in mind: basic assets directly provided by MakeHuman applications are covered by the MakeHuman-licens, too. But this may not count for assets provided by the community either downloaded by the assets downloader plug-in or from the [http://www.makehumancommunity.org/content/user_contributed_assets.html community site] directly. Currently the possible licenses for those assets are CC-BY or CC0. If you are using BlenderPortable, too, you can use a [https://download.tuxfamily.org/makehuman/releases/1.1.0/MHPluginsBlenderPortable_1.1.0-cr1.paf.exe plug-in installer] to install MHX2-importer, blendertools (MakeClothes, MakeTarget, MakeWalk), and the community assets. After install the plug-ins still need to be activated within the add-on tab of the [https://www.blender.org/manual/de/preferences/index.html user preferences]. The plug-in installer will work with BlenderPortable only! Until version 2.77a of Blender there is an outdated MHX-importer included. Do not use it with MHX2-exports!<br /> When using MakeClothes with either Blender or BlenderPortable the Output Directory needs to be set to the local user-folder (see second chapter). To change the default output of MakeClothes, click on "Show Settings" within the MakeClothes-panel and change the string under "Output Directory". Some technical hints: PortableApps do not need to be installed on a removable device, they can be installed to any local folder on the system, too. MakeHumanPortable can even be installed as stand alone application without the PortableApps-platform.<br /> Theoretically programs provided by PortableApps can be run on Linux or OSX by using the [https://www.winehq.org/ Wine]/[https://www.codeweavers.com/ CrossOver] environment, though functionality is not guaranteed.<br /> PortableApps can be seen as a wrapper around the genuine Application, which can be found at X:\PortableApps\MakeHumanPortable\App\makehuman. Here is placed the common Windows build. So, if you want to add more plug-ins, they will be moved to the appropriate folder here. (Attention: this will affect the MakeHuman license!).<br /> The behaviour of MakeHumanPortable.exe is controlled by MakeHumanPortable.ini in the folder ...\App\AppInfo\Launcher\, e.g. it controls the location of the users data-folder (for changes in this file see the Documentation: http://portableapps.com/manuals/PortableApps.comLauncher/ref/launcher.ini/index.html#ref-launcher-ini) d8514cef2fd8ac1f0db44a478e41ee964db4fdd0 1188 1187 2016-09-29T18:05:28Z Aranuvir 17 wikitext text/x-wiki MakeHumanPortable is an extra package build for the [http://portableapps.com/ PortableApps] software collection. Commonly portable apps are installed on a removable device, so they can be carried from Windows system to another. Portable apps do not leave traces on the system they are running on. The apps can be managed with the [http://portableapps.com/download PortableApps menu]. Because MakeHumanPortable is currently hosted by MakeHuman itself on Tuxfamily automatic updating via the PortableApps menu will not work. Functionality and usage of MakeHumanPortable is the same as MakeHuman. To comply with the condition not leaving traces on the system MakeHumanPortable will store users data such as created models or extra clothes in its own folder structure. Therefore the [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?|makehuman user-folder]] will be located at X:\PortableApps\MakeHuman\AppData (replace X: with the correct letter of your portable device). The makehuman user-folder will be created on first run. If you want to use stuff created from another MakeHuman installation, this stuff needs to be copied to the user-folder of the portable app. The currently distributed version of MakeHumanPortable (1.1.0-cr1) is a community release and an official build, which includes all plug-ins available for MakeHuman until 2016.09.29. Particularly the MHX2 plug-in is included. Models exported from this community build are still covered by the CC0-exception [http://www.makehuman.org/license_explanation.php (see license explanations)], even when exported with the MHX2-exporter plug-in. (Keep in mind: basic assets directly provided by MakeHuman applications are covered by the MakeHuman-licens, too. But this may not count for assets provided by the community either downloaded by the assets downloader plug-in or from the [http://www.makehumancommunity.org/content/user_contributed_assets.html community site] directly. Currently the possible licenses for those assets are CC-BY or CC0. If you are using BlenderPortable, too, you can use a [https://download.tuxfamily.org/makehuman/releases/1.1.0/MHPluginsBlenderPortable_1.1.0-cr1.paf.exe plug-in installer] to install MHX2-importer, blendertools (MakeClothes, MakeTarget, MakeWalk), and the community assets. After install the plug-ins still need to be activated within the add-on tab of the [https://www.blender.org/manual/de/preferences/index.html user preferences]. The plug-in installer will work with BlenderPortable only! Until version 2.77a of Blender there is an outdated MHX-importer included. Do not use it with MHX2-exports!<br /> When using MakeClothes with either Blender or BlenderPortable the Output Directory needs to be set to the local user-folder (see second chapter). To change the default ouput of MakeClothes, click on "Show Settings" within the MakeClothes-panel and change the string under "Output Directory". Some technical hints: PortableApps do not need to be installed on a removable device, they can be installed to any local folder on the system, too. MakeHumanPortable can even be installed as stand alone application without the PortableApps-platform.<br /> Theoretically programs provided by PortableApps can be run on Linux or OSX by using the [https://www.winehq.org/ Wine]/[https://www.codeweavers.com/ CrossOver] environment, though functionality is not guaranteed.<br /> PortableApps can be seen as a wrapper around the genuine Application, which can be found at X:\PortableApps\MakeHumanPortable\App\makehuman. Here is placed the common Windows build. So, if you want to add more plug-ins, they will be moved to the appropriate folder here. (Attention: this will affect the MakeHuman license!).<br /> The behaviour of MakeHumanPortable.exe is controlled by MakeHumanPortable.ini in the folder ...\App\AppInfo\Launcher\, e.g. it controls the location of the users data-folder (for changes in this file see the Documentation: http://portableapps.com/manuals/PortableApps.comLauncher/ref/launcher.ini/index.html#ref-launcher-ini) 7c95cd6d39d8467ca0c7582c9a08291007411cae 1187 1186 2016-09-29T18:00:32Z Aranuvir 17 wikitext text/x-wiki MakeHumanPortable is an extra package build for the [http://portableapps.com/ PortableApps] software collection. Commonly portable apps are installed on a removable device, so they can be carried from Windows system to another. Portable apps do not leave traces on the system they are running on. The apps can be managed with the [http://portableapps.com/download PortableApps menu]. Because MakeHumanPortable is currently hosted by MakeHuman itself on Tuxfamily automatic updating via the PortableApps menu will not work. Functionality and usage of MakeHumanPortable is the same as MakeHuman. To comply with the condition not leaving traces on the system MakeHumanPortable will store users data such as created models or extra clothes in its own folder structure. Therefore the [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?|makehuman user-folder]] will be located at X:\PortableApps\MakeHuman\AppData (replace X: with the correct letter of your portable device). The makehuman user-folder will be created on first run. If you want to use stuff created from another MakeHuman installation, this stuff needs to be copied to the user-folder of the portable app. The currently distributed version of MakeHumanPortable (1.1.0-cr1) is a community release and an official build, which includes all plug-ins available for MakeHuman until 2016.09.29. Particularly the MHX2 plug-in is included. Models exported from this community build are still covered by the CC0-exception [http://www.makehuman.org/license_explanation.php (see license explanations)], even when exported with the MHX2-exporter plug-in. (Keep in mind: basic assets directly provided by MakeHuman applications are covered by the MakeHuman-licens, too. But this may not count for assets provided by the community either downloaded by the assets downloader plug-in or from the [http://www.makehumancommunity.org/content/user_contributed_assets.html community site] directly. Currently the possible licenses for those assets are CC-BY or CC0. If you are using BlenderPortable, too, you can use a [https://download.tuxfamily.org/makehuman/releases/1.1.0/MHPluginsBlenderPortable_1.1.0-cr1.paf.exe plug-in installer] to install MHX2-importer, blendertools (MakeClothes, MakeTarget, MakeWalk), and the community assets. After install the plug-ins still need to be activated within the addon tab of the [https://www.blender.org/manual/de/preferences/index.html user preferences]. The plug-in installer will work with BlenderPortable only! Until version 2.77a of Blender there is an outdated MHX-importer included. Do not use it with MHX2-exports!<br /> When using MakeClothes with eiter Blender or BlenderPortable the Output Directory needs to be set to the local user-folder (see second chapter). To change the default ouput of MakeClothes, click on "Show Settings" within the MakeClothes-panel and change the string under "Output Directory". Some technical hints: PortableApps do not need to be installed on a removable device, they can be installed to any local folder on the system, too. MakeHumanPortable can even be installed as stand alone application without the PortableApps-platform.<br /> Theoretically programs provided by PortableApps can be run on Linux or OSX by using the [https://www.winehq.org/ Wine]/[https://www.codeweavers.com/ CrossOver] environment, though functionality is not guaranteed.<br /> PortableApps can be seen as a wrapper around the genuine Application, which can be found at X:\PortableApps\MakeHumanPortable\App\makehuman. Here is placed the common Windows build. So, if you want to add more plug-ins, they will be moved to the appropriate folder here. (Attention: this will affect the MakeHuman license!).<br /> The behaviour of MakeHumanPortable.exe is controlled by MakeHumanPortable.ini in the folder ...\App\AppInfo\Launcher\, e.g. it controls the location of the users data-folder (for changes in this file see the Documentation: http://portableapps.com/manuals/PortableApps.comLauncher/ref/launcher.ini/index.html#ref-launcher-ini) 02a345572e8f26b52794ee82236f8edb15260a0b 1186 1185 2016-09-29T17:58:49Z Aranuvir 17 wikitext text/x-wiki MakeHumanPortable is a extra package build for the [http://portableapps.com/ PortableApps] software collection. Commonly portable apps are installed on a removable device, so they can be carried from Windows system to another. Portable apps do not leave traces on the system they are running on. The apps can be managed with the [http://portableapps.com/download PortableApps menu]. Because MakeHumanPortable is currently hosted by MakeHuman itself on Tuxfamily automatic updating via the PortableApps menu will not work. Functionality and usage of MakeHumanPortable is the same as MakeHuman. To comply with the condition not leaving traces on the system MakeHumanPortable will store users data such as created models or extra clothes in its own folder structure. Therefore the [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?|makehuman user-folder]] will be located at X:\PortableApps\MakeHuman\AppData (replace X: with the correct letter of your portable device). The makehuman user-folder will be created on first run. If you want to use stuff created from another MakeHuman installation, this stuff needs to be copied to the user-folder of the portable app. The currently distributed version of MakeHumanPortable (1.1.0-cr1) is a community release and an official build, which includes all plug-ins available for MakeHuman until 2016.09.29. Particularly the MHX2 plug-in is included. Models exported from this community build are still covered by the CC0-exception [http://www.makehuman.org/license_explanation.php (see license explanations)], even when exported with the MHX2-exporter plug-in. (Keep in mind: basic assets directly provided by MakeHuman applications are covered by the MakeHuman-licens, too. But this may not count for assets provided by the community either downloaded by the assets downloader plug-in or from the [http://www.makehumancommunity.org/content/user_contributed_assets.html community site] directly. Currently the possible licenses for those assets are CC-BY or CC0. If you are using BlenderPortable, too, you can use a [https://download.tuxfamily.org/makehuman/releases/1.1.0/MHPluginsBlenderPortable_1.1.0-cr1.paf.exe plug-in installer] to install MHX2-importer, blendertools (MakeClothes, MakeTarget, MakeWalk), and the community assets. After install the plug-ins still need to be activated within the addon tab of the [https://www.blender.org/manual/de/preferences/index.html user preferences]. The plug-in installer will work with BlenderPortable only! Until version 2.77a of Blender there is an outdated MHX-importer included. Do not use it with MHX2-exports!<br /> When using MakeClothes with eiter Blender or BlenderPortable the Output Directory needs to be set to the local user-folder (see second chapter). To change the default ouput of MakeClothes, click on "Show Settings" within the MakeClothes-panel and change the string under "Output Directory". Some technical hints: PortableApps do not need to be installed on a removable device, they can be installed to any local folder on the system, too. MakeHumanPortable can even be installed as stand alone application without the PortableApps-platform.<br /> Theoretically programs provided by PortableApps can be run on Linux or OSX by using the [https://www.winehq.org/ Wine]/[https://www.codeweavers.com/ CrossOver] environment, though functionality is not guaranteed.<br /> PortableApps can be seen as a wrapper around the genuine Application, which can be found at X:\PortableApps\MakeHumanPortable\App\makehuman. Here is placed the common Windows build. So, if you want to add more plug-ins, they will be moved to the appropriate folder here. (Attention: this will affect the MakeHuman license!).<br /> The behaviour of MakeHumanPortable.exe is controlled by MakeHumanPortable.ini in the folder ...\App\AppInfo\Launcher\, e.g. it controls the location of the users data-folder (for changes in this file see the Documentation: http://portableapps.com/manuals/PortableApps.comLauncher/ref/launcher.ini/index.html#ref-launcher-ini) b0cfc4d5a8c3fcc814711b489f72f46342e6e5b0 1185 1184 2016-09-29T17:58:10Z Aranuvir 17 wikitext text/x-wiki MakeHumanPortable is a extra package build for the [http://portableapps.com/ PortableApps] software collection. Commonly portable apps are installed on a removable device, so they can be carried from Windows system to another. Portable apps do not leave traces on the system they are running on. The apps can be managed with the [http://portableapps.com/download PortableApps menu]. Because MakeHumanPortable is currently hosted by MakeHuman itself on Tuxfamily automatic updating via the PortableApps menu will not work. Functionality and usage of MakeHumanPortable is the same as MakeHuman. To comply with the condition not leaving traces on the system MakeHumanPortable will store users data such as created models or extra clothes in its own folder structure. Therefore the [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?|makehuman user-folder]] will be located at X:\PortableApps\MakeHuman\AppData (replace X: with the correct letter of your portable device). The makehuman user-folder we be created on first run. If you want to use stuff created from another MakeHuman installation, this stuff needs to be copied to the user-folder of the portable app. The currently distributed version of MakeHumanPortable (1.1.0-cr1) is a community release and an official build, which includes all plug-ins available for MakeHuman until 2016.09.29. Particularly the MHX2 plug-in is included. Models exported from this community build are still covered by the CC0-exception [http://www.makehuman.org/license_explanation.php (see license explanations)], even when exported with the MHX2-exporter plug-in. (Keep in mind: basic assets directly provided by MakeHuman applications are covered by the MakeHuman-licens, too. But this may not count for assets provided by the community either downloaded by the assets downloader plug-in or from the [http://www.makehumancommunity.org/content/user_contributed_assets.html community site] directly. Currently the possible licenses for those assets are CC-BY or CC0. If you are using BlenderPortable, too, you can use a [https://download.tuxfamily.org/makehuman/releases/1.1.0/MHPluginsBlenderPortable_1.1.0-cr1.paf.exe plug-in installer] to install MHX2-importer, blendertools (MakeClothes, MakeTarget, MakeWalk), and the community assets. After install the plug-ins still need to be activated within the addon tab of the [https://www.blender.org/manual/de/preferences/index.html user preferences]. The plug-in installer will work with BlenderPortable only! Until version 2.77a of Blender there is an outdated MHX-importer included. Do not use it with MHX2-exports!<br /> When using MakeClothes with eiter Blender or BlenderPortable the Output Directory needs to be set to the local user-folder (see second chapter). To change the default ouput of MakeClothes, click on "Show Settings" within the MakeClothes-panel and change the string under "Output Directory". Some technical hints: PortableApps do not need to be installed on a removable device, they can be installed to any local folder on the system, too. MakeHumanPortable can even be installed as stand alone application without the PortableApps-platform.<br /> Theoretically programs provided by PortableApps can be run on Linux or OSX by using the [https://www.winehq.org/ Wine]/[https://www.codeweavers.com/ CrossOver] environment, though functionality is not guaranteed.<br /> PortableApps can be seen as a wrapper around the genuine Application, which can be found at X:\PortableApps\MakeHumanPortable\App\makehuman. Here is placed the common Windows build. So, if you want to add more plug-ins, they will be moved to the appropriate folder here. (Attention: this will affect the MakeHuman license!).<br /> The behaviour of MakeHumanPortable.exe is controlled by MakeHumanPortable.ini in the folder ...\App\AppInfo\Launcher\, e.g. it controls the location of the users data-folder (for changes in this file see the Documentation: http://portableapps.com/manuals/PortableApps.comLauncher/ref/launcher.ini/index.html#ref-launcher-ini) 522028037185ecab1f6a1c799cde548e3c4e22aa 1184 2016-09-29T17:14:52Z Aranuvir 17 Created page with "MakeHumanPortable is a extra package build for the [http://portableapps.com/ PortableApps] software collection. Commonly portable apps are installed on a removable device, so..." wikitext text/x-wiki MakeHumanPortable is a extra package build for the [http://portableapps.com/ PortableApps] software collection. Commonly portable apps are installed on a removable device, so they can be carried from Windows system to another. Portable apps do not leave traces on the system they are running on. The apps can be managed with the [http://portableapps.com/download PortableApps menu]. Because MakeHumanPortable is currently hosted by MakeHuman itself on Tuxfamily automatic updating via the PortableApps menu will not work. Functionality and usage of MakeHumanPortable is the same as MakeHuman. To comply with the condition not leaving traces on the system MakeHumanPortable will store users data such as created models or extra clothes in its own folder structure. Therefore the [[FAQ:Where are my MakeHuman files found (where is my HOME directory)?|makehuman user-folder]] will be located at X:\PortableApps\MakeHuman\AppData (replace X: with the correct letter of your portable device). The makehuman user-folder we be created on first run. If you want to use stuff created from another MakeHuman installation, this stuff needs to be copied to the user-folder of the portable app. The currently distributed version of MakeHumanPortable (1.1.0-cr1) is a community release and an official build, which includes all plug-ins available for MakeHuman until 2016.09.29. Particularly the MHX2 plug-in is included. Models exported from this community build are still covered by the CC0-exception [http://www.makehuman.org/license_explanation.php (see license explanations)], even when exported with the MHX2-exporter plug-in. (Keep in mind: basic assets directly provided by MakeHuman applications are covered by the MakeHuman-licens, too. But this may not count for assets provided by the community either downloaded by the assets downloader plug-in or from the [http://www.makehumancommunity.org/content/user_contributed_assets.html community site] directly. Currently the possible licenses for those assets are CC-BY or CC0. If you are using BlenderPortable, too, you can use a [https://download.tuxfamily.org/makehuman/releases/1.1.0/MHPluginsBlenderPortable_1.1.0-cr1.paf.exe plug-in installer] to install MHX2-importer, blendertools (MakeClothes, MakeTarget, MakeWalk), and the community assets. After install the plug-ins still need to be activated within the addon tab of the [https://www.blender.org/manual/de/preferences/index.html user preferences]. The plug-in installer will work with BlenderPortable only! Until version 2.77a of Blender there is an outdated MHX-importer included. Do not use it with MHX2-exports!<br /> When using MakeClothes with eiter Blender or BlenderPortable the Output Directory needs to be set to the local user-folder (see second chapter). To change the default ouput of MakeClothes, click on "Show Settings" within the MakeClothes-panel and change the string under "Output Directory". Some technical hints: PortableApps do not need to be installed on a removable device, they can be installed to any local folder on the system, too. MakeHumanPortable can even be installed as stand alone application without the PortableApps-platform.<br /> Theoretically programs provided by PortableApps can be run on Linux or OSX by using the [https://www.winehq.org/ Wine]/[https://www.codeweavers.com/ CrossOver] environment, though functionality is not guaranteed. c6a48ca5df95f7cc2ecd9a0fac9cdf7551b9efc4 FAQ:What is Open Source? 3002 31 89 2015-07-10T09:35:31Z Joepal 14 Created page with "Open source software is software where the source code (the language programmers use to make computers do their jobs) is available to everyone. Anyone can see how the code wor..." wikitext text/x-wiki Open source software is software where the source code (the language programmers use to make computers do their jobs) is available to everyone. Anyone can see how the code works and can change it if they want to make it work differently. The opposite of open source is closed source, where the source is not available to everyone. Open Source is better than Freeware, because freeware is closed source, and can be easily moved to commercial software, Open Source software will be free forever. bc1b485ec146d53f2171c92d20bdf7ab691c6e83 FAQ:What is a fashion render? 3002 507 1261 1260 2016-12-11T13:56:52Z Joepal 14 wikitext text/x-wiki The [http://www.makehumancommunity.org fashion render] is a standardized scene with fixed camera and light. The image depicts one toon in a standing position, although possibly from various angles. The intention with the renders is that a user should be able to get a completely honest idea about how an asset looks immediately after being imported into blender (usually via MHX). Thus there are strict rules limiting what can and can't be done with the toons post import. For example, the materials can not be modified, and the meshes cannot (with a few exceptions) be edited. For more information see [[FAQ:How do I make and upload a fashion render?]] 7f887bcc59604ce2faf35e147f7ef3559b9f26b4 1260 2016-12-11T13:56:31Z Joepal 14 Created page with "The [[http://www.makehumancommunity.org fashion render]] is a standardized scene with fixed camera and light. The image depicts one toon in a standing position, although possi..." wikitext text/x-wiki The [[http://www.makehumancommunity.org fashion render]] is a standardized scene with fixed camera and light. The image depicts one toon in a standing position, although possibly from various angles. The intention with the renders is that a user should be able to get a completely honest idea about how an asset looks immediately after being imported into blender (usually via MHX). Thus there are strict rules limiting what can and can't be done with the toons post import. For example, the materials can not be modified, and the meshes cannot (with a few exceptions) be edited. For more information see [[FAQ:How do I make and upload a fashion render?]] ee0f625511aeb6b022aceb7e472ce30c5f556083 FAQ:What is a nightly build? 3002 30 1404 526 2017-07-13T10:55:56Z Joepal 14 wikitext text/x-wiki A nightly build is a build that reflects the current state of the source code. Each night a script runs and creates an executable including the latest changes. This is a great way to preview the latest improvements we're making and to test fixes to bugs that have been checked-in between releases. If you're downloading a nightly please don't expect things to work 100%. We make them available to you so you can try things out and report any bugs that you find. This process helps us ensure our final releases are the best they can be. Nightly builds can be found at: http://download.tuxfamily.org/makehuman/nightly/ == Current status == Long-time users will remember a time when the nightly builds were actually more stable and complete than the latest stable. This is not the case now. The current set of nighly builds reflect a new branch for MakeHuman: the python3 port (see source at https://github.com/makehumancommunity/makehuman). This is very much a work in progress and can be expected to be glitchy. 2c9549a8c3f5a47ce82a381978e7b53a2dd56ca2 526 88 2015-09-04T19:18:25Z Aranuvir 17 wikitext text/x-wiki A nightly build is a build that reflects the current state of the source code. Each night a script runs and creates an executable including the latest changes. This is a great way to preview the latest improvements we're making and to test fixes to bugs that have been checked-in between releases. If you're downloading a nightly please don't expect things to work 100%. We make them available to you so you can try things out and report any bugs that you find. This process helps us ensure our final releases are the best they can be. This said, late in the development cycle, we will often recommend the nightly build over the stable release. '''There is one important notice: Backward compatibility of your work is only granted between different stable versions. But changes in the nightly build versions might break compatibility and lead to a loss of your work done with previous nightly builds.''' Nightly builds can be found at: http://download.tuxfamily.org/makehuman/nightly/ 7ae2c9740d2b1e04af0df82f702fbb1add9af3fc 88 2015-07-10T09:34:25Z Joepal 14 Created page with "A nightly build is a build that reflects the current state of the source code. Each night a script runs and creates an executable including the latest changes. This is a grea..." wikitext text/x-wiki A nightly build is a build that reflects the current state of the source code. Each night a script runs and creates an executable including the latest changes. This is a great way to preview the latest improvements we're making and to test fixes to bugs that have been checked-in between releases. If you're downloading a nightly please don't expect things to work 100%. We make them available to you so you can try things out and report any bugs that you find. This process helps us ensure our final releases are the best they can be. This said, late in the development cycle, we will often recommend the nightly build over the stable release. Nightly builds can be found at: http://download.tuxfamily.org/makehuman/nightly/ 347e4936ded43b5ec23c3eb268bf445363d08fa1 FAQ:What is a proxy? 3002 33 557 551 2016-01-20T17:31:27Z Joepal 14 wikitext text/x-wiki A proxy mesh is an alternative to MakeHuman's base mesh. You can think of it as a full body glove which occupies roughly the same space as the human, and deforms with the human. It may have a different amount of polygons, usually a lot fewer than the base mesh. There are several reason why you would want to export a character as a proxy mesh: * Gaming: The base mesh has quite high poly-count. Use the "proxy741" if you are on a tight polygon budget, or "male1591" or "female1605" proxy if you can afford more polygons. Or if you want to be extreme, you can download the [http://www.makehumancommunity.org/proxy/very_low_poly.html very low poly] proxy. * ZBrush sculpting: "male1591" proxy is a suitable starting point. * Topology change: There are specific topologies for various cases (for example a very muscular male). Because of the last bullet, sometimes the words "topology" and "proxy" are used interchangeably on the forums. If you have external data, for example from a 3d scan, then it is much more convenient to apply that as a proxy than try to convert it to a target working on the base mesh, since a proxy don't need to have the same number or vertices nor share the UV. See also [[FAQ:How can I create proxies or alternative topologies?]] a04c6228c8fee7c66b10c5bb0536ae3da81dbfca 551 534 2015-11-24T08:10:44Z Joepal 14 wikitext text/x-wiki A proxy mesh is an alternative to MakeHuman's base mesh. You can think of it as a full body glove which occupies roughly the same space as the human, and deforms with the human. There are several reason why you would want to export a character as a proxy mesh: * Gaming: The base mesh has quite high poly-count. Use the "proxy741" if you are on a tight polygon budget, or "male1591" or "female1605" proxy if you can afford more polygons. * ZBrush sculpting: "male1591" proxy is a suitable starting point. * Topology change: There are specific topologies for various cases (for example a very muscular male). Because of the last bullet, sometimes the words "topology" and "proxy" are used interchangeably on the forums. If you have external data, for example from a 3d scan, then it is much more convenient to apply that as a proxy than try to convert it to a target working on the base mesh, since a proxy don't need to have the same number or vertices nor share the UV. See also [[FAQ:How can I create proxies or alternative topologies?]] f19d73dc72ebae72832671c0106b17bdb7947bc6 534 91 2015-10-07T07:58:55Z Joepal 14 wikitext text/x-wiki A proxy mesh is an alternative to MakeHuman's base mesh. There are several reason why you would want to export a character as a proxy mesh: * Gaming: The base mesh has quite high poly-count. Use the "proxy741" if you are on a tight polygon budget, or "male1591" or "female1605" proxy if you can afford more polygons. * ZBrush sculpting: "male1591" proxy is a suitable starting point. * Topology change: There are specific topologies for various cases (for example a very muscular male). Because of the last bullet, sometimes the words "topology" and "proxy" are used interchangeably on the forums. See also [[FAQ:How can I create proxies or alternative topologies?]] a8efc9521f58dae419c99380c8a6caeff9e53927 91 2015-07-10T09:38:32Z Joepal 14 Created page with "A proxy mesh is an alternative to MakeHuman's base mesh. There are several reason why you would want to export a character as a proxy mesh: * Gaming: The base mesh has quite..." wikitext text/x-wiki A proxy mesh is an alternative to MakeHuman's base mesh. There are several reason why you would want to export a character as a proxy mesh: * Gaming: The base mesh has quite high poly-count. Use the "proxy741" if you are on a tight polygon budget, or "male1591" or "female1605" proxy if you can afford more polygons. * ZBrush sculpting: "male1591" proxy is a suitable starting point. * Topology change: There are specific topologies for various cases (for example a very muscular male). Because of the last bullet, sometimes the words "topology" and "proxy" are used interchangeably on the forums. 34511a614d6885251f8382227b0d69cb13380ab7 FAQ:What is a target? 3002 20 76 74 2015-07-08T07:57:57Z Joepal 14 wikitext text/x-wiki In the simplest form, a target is roughly equivalent with a slider inside MakeHuman (it's not exactly as easy as that, but it's a reasonable summary). Targets are used internally by MH to deform the basemesh. They are the magic that happens when you pull some of the sliders. Behind each of the sliders in MH there is one or multiple targets that are created by artists. Those are usually created for one specific characteristic, so you can apply them individually, but you can put as many combined transformations in them as you want. Custom targets are targets that you can create yourself for achieving other transformations than those obtained within MH itself. Often they are used for more specific things like creating fantasy characters. Technically, a target is a collection of relative offsets of vertices of the basemesh. They remain compatible with new versions of makehuman as long as the basemesh does not change (which it did between 1.0.x and 1.1.x). For a longer discussion on targets, see [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]] 1540151c053e62559f189e624c9b424fafe2383d 74 2015-07-08T07:51:43Z Joepal 14 Created page with "In the simplest form, a target is roughly equivalent with a slider inside MakeHuman (it's not exactly as easy as that, but it's a reasonable summary). Targets are used inter..." wikitext text/x-wiki In the simplest form, a target is roughly equivalent with a slider inside MakeHuman (it's not exactly as easy as that, but it's a reasonable summary). Targets are used internally by MH to deform the basemesh. They are the magic that happens when you pull some of the sliders. Behind each of the sliders in MH there is one or multiple targets that are created by artists. Those are usually created for one specific characteristic, so you can apply them individually, but you can put as many combined transformations in them as you want. Custom targets are targets that you can create yourself for achieving other transformations than those obtained within MH itself. Often they are used for more specific things like creating fantasy characters. Technically, a target is a collection of relative offsets of vertices of the basemesh. They remain compatible with new versions of makehuman as long as the basemesh does not change. For a longer discussion on targets, see [[ Documentation:MHBlenderTools: MakeTarget|MHBlenderTools: MakeTarget ]] 70604c868fb0df1463e1afe71d909575b480d4d4 FAQ:What is the general policy towards NSFW content and discussions? 3002 521 1393 1390 2017-05-30T12:05:59Z Joepal 14 wikitext text/x-wiki In general, the admins and moderators are not bothered if someone wants to discuss body features which are generally considered NSFW ("Not Safe For Work"). This includes imagery including nudity and genitalia. Since MakeHuman aims at being biologically correct, it'd be absurd to try to exclude any particular part of the body from discussions. So the general policy is that we keep an open minded and overall accepting attitude towards content and discussions which are on topic and not obvious attempts at trolling. What examples of the latter might be are decided on case-by-case. But it has not been a problem so far, and it was many years since we banned or redacted something because it was considered too provocative. In summary: don't worry. If you want to show off graphics or discuss particular features of genitalia, then you are welcome to. == Limitations == Since the forum and the user contribution areas are hosted in Sweden they end up under a swedish jurisdiction and will thus have to take swedish laws into account. The supreme court in sweden has stated that just because an image is artwork or drawn or does not depic an actual person, it still doesn't exempt it from following laws regarding (for example) child pornography. Thus we would have to redact or remove sexualized imagery of obviously underage toons. The same may (or may not, it is uncertain) go for other extreme or derogatory imagery. But we believe it will be pretty obvious to any normal person what would be an example of an inappropriate thing to share. So if you just apply some common sense it shouldn't be a problem. 5098e1cc33191fb1ed8c771b234920c06ec5ac13 1390 2017-05-30T12:00:52Z Joepal 14 Created page with "In general, the admins and moderators are not bothered if someone wants to discuss body features which are generally considered NSFW ("Not Safe For Work"). This includes image..." wikitext text/x-wiki In general, the admins and moderators are not bothered if someone wants to discuss body features which are generally considered NSFW ("Not Safe For Work"). This includes imagery including nudity and genitalia. Since MakeHuman aims at being biologically correct, it'd be absurd to try to exclude any particular part of the body from discussions. So the general policy is that we keep an open minded and overall accepting attitude towards content and discussions which are on topic and not obvious attempts at trolling. What examples of the latter might be are decided on case-by-case. But it has not been a problem so far, and it was many years since we banned or redacted something because it was considered too provocative. In summary: don't worry. If you want to show off graphics or discuss particular features of genitalia, then you are welcome to. == Limitations == Since the forum and the user contribution areas are hosted in Sweden they end up under a swedish jurisdiction and will thus have to take swedish laws into account. The supreme court in sweden has stated that just because an image is artwork or drawn or does not depic an actual person, it still doesn't exempt it from following laws regarding (for example) child pornography. Thus we would have to redact or remove sexualized imagery of obviously underage toons. The same may (or may not, it is uncertain) go for other extreme or derogatory imagery. But we believe it will pretty obvious to any normal person what would be an example of an inappropriate thing to share. So if you just apply some common sense it shouldn't be a problem. b8bd60603144092922c378ce01a4bfddf2b7f8af FAQ:What is the meaning of the numbers in MakeHuman release? 3002 32 90 2015-07-10T09:36:11Z Joepal 14 Created page with "Explanation of major/minor/patch IMAGE MISSING, IMPORT FROM DRUPAL" wikitext text/x-wiki Explanation of major/minor/patch IMAGE MISSING, IMPORT FROM DRUPAL 0904be1c639b6ce98815fb749b5573c00ac68cec FAQ:What is the prefered method for contacting the MakeHuman crew? 3002 24 1413 550 2017-07-15T09:23:10Z Joepal 14 wikitext text/x-wiki If you have questions, the forums are the default choice. '''ALL SUPPORT REQUESTS SHOULD GO VIA THE [http://www.makehumancommunity.org/forum/ FORUMS]'''. We have had to stop posting our email addresses because of the huge load of incoming support requests, so please don't try to contact us directly. This includes facebook: chances are we won't even answer facebook direct messages. Bug reports should go to http://bugtracker.makehumancommunity.org. If you want to chat directly with someone from the MakeHuman crew, there is an IRC channel, see [[FAQ:Is there an IRC channel?]], but it is only infrequently visited by someone from the dev team. And oh, before trying to contact anyone at all, please read all relevant parts of http://www.makehumancommunity.org/wiki/FAQ:Index 8fbe0ba5e653819571bcb26dd89235d8a147fb68 550 81 2015-11-15T07:50:37Z Joepal 14 wikitext text/x-wiki If you have questions, the forums are the default choice. '''ALL SUPPORT REQUESTS SHOULD GO VIA THE FORUMS'''. We have had to stop posting our email addresses because of the huge load of incoming support requests, so please don't try to contact us directly. This includes facebook: chances are we won't even answer facebook direct messages. Bug reports should go to http://bugtracker.makehumancommunity.org. If you want to chat directly with someone from the MakeHuman crew, there is an IRC channel, see [[FAQ:Is there an IRC channel?]], but it is only infrequently visited by someone from the dev team. And oh, before trying to contact anyone at all, please read all relevant parts of http://www.makehumancommunity.org/wiki/FAQ:Index f91bb84decc4b506a72225e3ec55e8cbf93b8e6f 81 80 2015-07-09T11:26:28Z Joepal 14 wikitext text/x-wiki If you have questions, the forums are the default choice. We have had to stop posting our email addresses because of the huge load of incoming support requests, so please don't try to contact us directly. Bug reports should go to http://bugtracker.makehumancommunity.org. If you want to chat directly with someone from the MakeHuman crew, there is an IRC channel, see [[FAQ:Is there an IRC channel?]] bf5cd3c70042cf8b5e27cc88ee26aa9aa7c75bd9 80 2015-07-09T11:26:01Z Joepal 14 Created page with "If you have questions, the forums are the default choice. We have had to stop posting our email addresses because of the huge load of incoming support requests, so please don'..." wikitext text/x-wiki If you have questions, the forums are the default choice. We have had to stop posting our email addresses because of the huge load of incoming support requests, so please don't try to contact us directly. Bug reports should go to http://bugtracker.makehumancommunity.org. If you want to chat directly with someone from the MakeHuman crew, there is an IRC channel. 7a94e8d8b5008107bf25f9f0bc121ee9f18d2cbd FAQ:When will 1.1 be released? 3002 209 610 605 2016-03-06T16:24:14Z Joepal 14 wikitext text/x-wiki MakeHuman is a volunteer project, and devs work as and when they have spare time. Currently, large parts of the project group is busy with real life situations. There is no definitive plan for when 1.1 will be released. This said, the code base for 1.1 is largely feature complete ([http://www.makehumancommunity.org/content/release_candidates_for_110.html and there are release candidates]). There are some things which are desired to implement before a formal release, but most users would probably not see any difference between the program as it looks in the stable branch today and what will be released as a formal stable version. Because of this, it is the strong recommendation of the project group that people use the release candidates for now, rather than 1.0.2. They are at least as stable, and everything which is added to the asset repositories etc are intended for this code version. If you are curious on more details on what remains for 1.1.0, you can find a filtered list [http://bugtracker.makehumancommunity.org/projects/makehuman/issues?fixed_version_id=2&set_filter=1&status_id=o in the bugtracker]. Many of these issues are likely to be deferred to a 1.1.1 maintainance release though. 5ac66da8e3cc91fcfcd3b50124fc89371a17d2bb 605 556 2016-03-06T12:15:38Z Joepal 14 Update to reflect the existence of RCs wikitext text/x-wiki MakeHuman is a volunteer project, and devs work as and when they have spare time. Currently, large parts of the project group is busy with real life situations. There is no definitive plan for when 1.1 will be released. This said, the code base for 1.1 is largely feature complete ([http://www.makehumancommunity.org/content/release_candidates_for_110.html and there are release candidates]). There are some things which are desired to implement before a formal release, but most users would probably not see any difference between the program as it looks in the stable branch today and what will be released as a formal stable version. Because of this, it is the strong recommendation of the project group that people use the release candidates for now, rather than 1.0.2. It is at least as stable, and everything which is added to the asset repositories etc are intended for this code version. If you are curious on more details on what remains for 1.1.0, you can find a filtered list [http://bugtracker.makehumancommunity.org/projects/makehuman/issues?fixed_version_id=2&set_filter=1&status_id=o in the bugtracker]. Many of these issues are likely to be deferred to a 1.1.1 maintainance release though. 20a2932c4ce96fe966fece1f4921b20a2699cc36 556 2016-01-05T14:32:30Z Joepal 14 Created page with "MakeHuman is a volunteer project, and devs work as and when they have spare time. Currently, large parts of the project group is busy with real life situations. There is no de..." wikitext text/x-wiki MakeHuman is a volunteer project, and devs work as and when they have spare time. Currently, large parts of the project group is busy with real life situations. There is no definitive plan for when 1.1 will be released. This said, the code base for 1.1 is largely feature complete. There are some things which are desired to implement before a formal release, but most users would probably not see any difference between the program as it looks in the devel branch today and what will be released as a formal stable version. Because of this, it is the strong recommendation of the project group that people use the nightly build for now, rather than 1.0.2. It is at least as stable, and everything which is added to the asset repositories etc are intended for this code version. If you are curious on more details on what remains for 1.1.0, you can find a filtered list [http://bugtracker.makehumancommunity.org/projects/makehuman/issues?fixed_version_id=2&set_filter=1&status_id=o in the bugtracker]. Many of these issues are likely to be deferred to a 1.1.1 maintainance release though. 508b4507774261a794d12b814b133dfe8929aa0a FAQ:Where are my MakeHuman files found (where is my HOME directory)? 3002 15 1813 1812 2020-06-28T12:47:37Z Joepal 14 wikitext text/x-wiki TL;DR: * On windows, your files are usually in "MY DOCUMENTS"\makehuman\v1py3 * On linux, your files are usually in "~/Documents/makehuman/v1py3" or "~/makehuman/v1py3" The longer story, with special cases: The [BASE] folder location for saving MakeHuman user data depends on your operating system (Windows, Linux, OSX, etc..). In the guide below, replace <username> with your actual login name. Typically, your <root> will be 'c:\\' (without quotes) on Windows machines, and just plain "/" (without quotes) on Linux and Mac OSX. Take in account that your operating system might be case sensitive on filenames (Unix-like OSs !). In case of doubt use lower case directory names. Here is the basic guide to finding the [BASE] folder on your operating system: * Microsoft Windows Vista, 7, 8, 8.1 and 10: c:/Users/<username>/Documents/ * Linux: /home/<username>/ or simply ~/ (in 1.2.0 alpha 2 and later, the base folder has been moved to /home/<username>/Documents) * Mac OSX: /Users/<username>/Documents/ * MakeHumanPortable (all Windows versions): X:\PortableApps\MakeHumanPortable\AppData (where X: is the drive letter of your removable device) Your [BASE] folder, by default, contains an "asset folder" called '''"makehuman"''' which will, in turn, contain a subfolder named 'v1' for MH version 1.X.X releases. The ./makehuman/v1/ subfolder contains a series of additional subfolders containing your personal MakeHuman asset files: '''backgrounds, cache, data, exports, grab, models, and render'''. The ./models/ folder will contain the .mhm '''model''' files you "save". The ./exports/ folder will contain the files you "'''export'''" in .dae (collada), .fbx, .mhx2, .obj, or .stl formats. The ./backgrounds/ folder is where you can place '''background reference images''' to use in model construction. The '''data folder''', itself, contains many subfoders. The ./data/... subfolders are where you will find '''clothes and other proxy objects''' that you import using the asset manager. '''Notes:''' * On Windows systems, "Documents" is subject to internationalization. For older/deprecated versions of Windows you may find the [BASE]/makehuman/v1/ subfolder here: * Microsoft Windows 2000, XP and 2003: c:\\Documents and Settings\<username> * Microsoft Windows NT: <root>\WINNT\Profiles\<username> 2097edd5334a2a098569cd390c459da2fa73a488 1812 1555 2020-06-28T12:46:53Z Joepal 14 wikitext text/x-wiki TL;DR: * On windows, your files are usually in "MY DOCUMENTS"\makehuman\v1py3 * On linux, your files are usually in "~/makehuman/v1py3" The longer story, with special cases: The [BASE] folder location for saving MakeHuman user data depends on your operating system (Windows, Linux, OSX, etc..). In the guide below, replace <username> with your actual login name. Typically, your <root> will be 'c:\\' (without quotes) on Windows machines, and just plain "/" (without quotes) on Linux and Mac OSX. Take in account that your operating system might be case sensitive on filenames (Unix-like OSs !). In case of doubt use lower case directory names. Here is the basic guide to finding the [BASE] folder on your operating system: * Microsoft Windows Vista, 7, 8, 8.1 and 10: c:/Users/<username>/Documents/ * Linux: /home/<username>/ or simply ~/ (in 1.2.0 alpha 2 and later, the base folder has been moved to /home/<username>/Documents) * Mac OSX: /Users/<username>/Documents/ * MakeHumanPortable (all Windows versions): X:\PortableApps\MakeHumanPortable\AppData (where X: is the drive letter of your removable device) Your [BASE] folder, by default, contains an "asset folder" called '''"makehuman"''' which will, in turn, contain a subfolder named 'v1' for MH version 1.X.X releases. The ./makehuman/v1/ subfolder contains a series of additional subfolders containing your personal MakeHuman asset files: '''backgrounds, cache, data, exports, grab, models, and render'''. The ./models/ folder will contain the .mhm '''model''' files you "save". The ./exports/ folder will contain the files you "'''export'''" in .dae (collada), .fbx, .mhx2, .obj, or .stl formats. The ./backgrounds/ folder is where you can place '''background reference images''' to use in model construction. The '''data folder''', itself, contains many subfoders. The ./data/... subfolders are where you will find '''clothes and other proxy objects''' that you import using the asset manager. '''Notes:''' * On Windows systems, "Documents" is subject to internationalization. For older/deprecated versions of Windows you may find the [BASE]/makehuman/v1/ subfolder here: * Microsoft Windows 2000, XP and 2003: c:\\Documents and Settings\<username> * Microsoft Windows NT: <root>\WINNT\Profiles\<username> c9ac73ffc0b072c1fab2ca508d42ecd65fd23b77 1555 1378 2019-01-07T08:35:24Z Joepal 14 wikitext text/x-wiki The [BASE] folder location for saving MakeHuman user data depends on your operating system (Windows, Linux, OSX, etc..). In the guide below, replace <username> with your actual login name. Typically, your <root> will be 'c:\\' (without quotes) on Windows machines, and just plain "/" (without quotes) on Linux and Mac OSX. Take in account that your operating system might be case sensitive on filenames (Unix-like OSs !). In case of doubt use lower case directory names. Here is the basic guide to finding the [BASE] folder on your operating system: * Microsoft Windows Vista, 7, 8, 8.1 and 10: c:/Users/<username>/Documents/ * Linux: /home/<username>/ or simply ~/ (in 1.2.0 alpha 2 and later, the base folder has been moved to /home/<username>/Documents) * Mac OSX: /Users/<username>/Documents/ * MakeHumanPortable (all Windows versions): X:\PortableApps\MakeHumanPortable\AppData (where X: is the drive letter of your removable device) Your [BASE] folder, by default, contains an "asset folder" called '''"makehuman"''' which will, in turn, contain a subfolder named 'v1' for MH version 1.X.X releases. The ./makehuman/v1/ subfolder contains a series of additional subfolders containing your personal MakeHuman asset files: '''backgrounds, cache, data, exports, grab, models, and render'''. The ./models/ folder will contain the .mhm '''model''' files you "save". The ./exports/ folder will contain the files you "'''export'''" in .dae (collada), .fbx, .mhx2, .obj, or .stl formats. The ./backgrounds/ folder is where you can place '''background reference images''' to use in model construction. The '''data folder''', itself, contains many subfoders. The ./data/... subfolders are where you will find '''clothes and other proxy objects''' that you import using the asset manager. '''Notes:''' * On Windows systems, "Documents" is subject to internationalization. For older/deprecated versions of Windows you may find the [BASE]/makehuman/v1/ subfolder here: * Microsoft Windows 2000, XP and 2003: c:\\Documents and Settings\<username> * Microsoft Windows NT: <root>\WINNT\Profiles\<username> eb82c69dbf85027977da4fcbf2e4e927a1653d15 1378 1377 2017-03-24T15:11:59Z Robbaer 12 wikitext text/x-wiki The [BASE] folder location for saving MakeHuman user data depends on your operating system (Windows, Linux, OSX, etc..). In the guide below, replace <username> with your actual login name. Typically, your <root> will be 'c:\\' (without quotes) on Windows machines, and just plain "/" (without quotes) on Linux and Mac OSX. Take in account that your operating system might be case sensitive on filenames (Unix-like OSs !). In case of doubt use lower case directory names. Here is the basic guide to finding the [BASE] folder on your operating system: * Microsoft Windows Vista, 7, 8, 8.1 and 10: c:/Users/<username>/Documents/ * Linux: /home/<username>/ or simply ~/ * Mac OSX: /Users/<username>/Documents/ * MakeHumanPortable (all Windows versions): X:\PortableApps\MakeHumanPortable\AppData (where X: is the drive letter of your removable device) Your [BASE] folder, by default, contains an "asset folder" called '''"makehuman"''' which will, in turn, contain a subfolder named 'v1' for MH version 1.X.X releases. The ./makehuman/v1/ subfolder contains a series of additional subfolders containing your personal MakeHuman asset files: '''backgrounds, cache, data, exports, grab, models, and render'''. The ./models/ folder will contain the .mhm '''model''' files you "save". The ./exports/ folder will contain the files you "'''export'''" in .dae (collada), .fbx, .mhx2, .obj, or .stl formats. The ./backgrounds/ folder is where you can place '''background reference images''' to use in model construction. The '''data folder''', itself, contains many subfoders. The ./data/... subfolders are where you will find '''clothes and other proxy objects''' that you import using the asset manager. '''Notes:''' * On Windows systems, "Documents" is subject to internationalization. For older/deprecated versions of Windows you may find the [BASE]/makehuman/v1/ subfolder here: * Microsoft Windows 2000, XP and 2003: c:\\Documents and Settings\<username> * Microsoft Windows NT: <root>\WINNT\Profiles\<username> 945e70693eb366eaa55e271ee0360aa233d7c2c7 1377 1376 2017-03-24T15:09:14Z Robbaer 12 wikitext text/x-wiki The [BASE] folder location for saving MakeHuman user data depends on your operating system (Windows, Linux, OSX, etc..). In the guide below, replace <username> with your actual login name. Typically, your <root> will be 'c:\\' (without quotes) on Windows machines, and just plain "/" (without quotes) on Linux and Mac OSX. Take in account that your operating system might be case sensitive on filenames (Unix-like OSs !). In case of doubt use lower case directory names. Here is the basic guide to finding the [BASE] folder on your operating system: * Microsoft Windows Vista, 7, 8, 8.1 and 10: c:/Users/<username>/Documents/ * Linux: /home/<username>/ or simply ~/ * Mac OSX: /Users/<username>/Documents/ * MakeHumanPortable (all Windows versions): X:\PortableApps\MakeHumanPortable\AppData (where X: is the drive letter of your removable device) Your [BASE] folder, by default, contains an "asset folder" called '''"makehuman"''' which will, in turn, contain a subfolder named 'v1' for MH version 1.X.X releases. The ./makehuman/v1/ subfolder contains a series of additional subfolders containing your personal MakeHuman asset files: '''backgrounds, cache, data, exports, grab, models, and render'''. The ./models/ folder will contain the .mhm '''model''' files you "save". The ./exports/ folder will contain the files you "'''export'''" in .dae (collada), .fbx, .mhx2, .obj, or .stl formats. The ./backgrounds/ folder is where you can place '''background reference images''' to use in model construction. The '''data folder''', itself, contains many subfoders. The ./data/... subfolders are where you will find '''clothes and other proxy objects''' that you import using the asset manager. '''Notes:''' * On Windows systems, "Documents and Settings" is subject to internationalization. For older/deprecated versions of Windows you may find the [BASE]/makehuman/v1/ subfolder here: * Microsoft Windows 2000, XP and 2003: c:\\Documents and Settings\<username> * Microsoft Windows NT: <root>\WINNT\Profiles\<username> 6a125340bd9b917878fbc701052691bcd85cbad9 1376 1311 2017-03-24T13:01:38Z Aranuvir 17 wikitext text/x-wiki The [BASE] folder location for saving MakeHuman user data depends on your operating system (Windows, Linux, OSX, etc..). In the guide below, replace <username> with your actual login name. Typically, your <root> will be 'c:\\' (without quotes) on Windows machines, and just plain "/" (without quotes) on Linux and Mac OSX. Take in account that your operating system might be case sensitive on filenames (Unix-like OSs !). In case of doubt use lower case directory names. Here is the basic guide to finding the [BASE] folder on your operating system: * Microsoft Windows Vista, 7, 8, 8.1 and 10: c:\\Users\<username>\Documents\ * Linux: /home/<username>/ or simply ~/ * Mac OSX: /Users/<username>/Documents/ * MakeHumanPortable (all Windows versions): X:\PortableApps\MakeHumanPortable\AppData (where X: is the drive letter of your removable device) Your [BASE] folder, by default, contains an "asset folder" called '''"makehuman"''' which will, in turn, contain a subfolder named 'v1' for MH version 1.X.X releases. The ./makehuman/v1/ subfolder contains a series of additional subfolders containing your personal MakeHuman asset files: '''backgrounds, cache, data, exports, grab, models, and render'''. The ./models/ folder will contain the .mhm '''model''' files you "save". The ./exports/ folder will contain the files you "'''export'''" in .dae (collada), .fbx, .mhx2, .obj, or .stl formats. The ./backgrounds/ folder is where you can place '''background reference images''' to use in model construction. The '''data folder''', itself, contains many subfoders. The ./data/... subfolders are where you will find '''clothes and other proxy objects''' that you import using the asset manager. '''Notes:''' * On Windows systems, "Documents and Settings" is subject to internationalization. For older/deprecated versions of Windows you may find the [BASE]/makehuman/v1/ subfolder here: * Microsoft Windows 2000, XP and 2003: c:\\Documents and Settings\<username> * Microsoft Windows NT: <root>\WINNT\Profiles\<username> 905eb475fb76df4ea681d5e19664f2cc76a78a0f 1311 1199 2017-02-13T14:14:30Z Aranuvir 17 wikitext text/x-wiki The [BASE] folder location for saving MakeHuman user data depends on your operating system (Windows, Linux, OSX, etc..). In the guide below, replace <username> with your actual login name. Typically, your <root> will be 'c:\\' (without quotes) on Windows machines, and just plain "/" (without quotes) on Linux and Mac OSX. Here is the basic guide to finding the [BASE] folder on your operating system: * Microsoft Windows Vista, 7, 8, 8.1 and 10: c:\\Users\<username>\Documents\ * Linux: /home/<username>/ or simply ~/ * Mac OSX: /Users/<username>/Documents/ * MakeHumanPortable (all Windows versions): X:\PortableApps\MakeHumanPortable\AppData (where X: is the drive letter of your removable device) Your [BASE] folder, by default, contains an "asset folder" called "makehuman" which will, in turn, contain a subfolder named 'v1' for MH version 1.X.X releases. The ./makehuman/v1/ subfolder contains a series of additional subfolders containing your personal MakeHuman asset files: '''backgrounds, cache, data, exports, grab, models, and render'''. The ./models/ folder will contain the .mhm '''model''' files you "save". The ./exports/ folder will contain the files you "'''export'''" in .dae (collada), .fbx, .mhx2, .obj, or .stl formats. The ./backgrounds/ folder is where you can place '''background reference images''' to use in model construction. The '''data folder''', itself, contains many subfoders. The ./data/... subfolders are where you will find '''clothes and other proxy objects''' that you import using the asset manager. '''Notes:''' * On Windows systems, "Documents and Settings" is subject to internationalization. For older/deprecated versions of Windows you may find the [BASE]/makehuman/v1/ subfolder here: * Microsoft Windows 2000, XP and 2003: c:\\Documents and Settings\<username> * Microsoft Windows NT: <root>\WINNT\Profiles\<username> 2e14aaad57cd73e62520a6f941a79a3838ed09ed 1199 1198 2016-10-02T18:02:40Z Robbaer 12 wikitext text/x-wiki The [BASE] folder location for saving MakeHuman user data depends on your operating system (Windows, Linux, OSX, etc..). In the guide below, replace <username> with your actual login name. Typically, your <root> will be 'c:\\' (without quotes) on Windows machines, and just plain "/" (without quotes) on Linux and Mac OSX. Here is the basic guide to finding the [BASE] folder on your operating system: * Microsoft Windows Vista, 7, 8, 8.1 and 10: c:\\Users\<username>\Documents\ * Linux: /home/<username>/ or simply ~/ * Mac OSX: /Users/<username>/Documents/ * MakeHumanPortable (all Windows versions): X:\PortableApps\MakeHumanPortable\AppDate (where X: is the drive letter of your removable device) Your [BASE] folder, by default, contains an "asset folder" called "makehuman" which will, in turn, contain a subfolder named 'v1' for MH version 1.X.X releases. The ./makehuman/v1/ subfolder contains a series of additional subfolders containing your personal MakeHuman asset files: '''backgrounds, cache, data, exports, grab, models, and render'''. The ./models/ folder will contain the .mhm '''model''' files you "save". The ./exports/ folder will contain the files you "'''export'''" in .dae (collada), .fbx, .mhx2, .obj, or .stl formats. The ./backgrounds/ folder is where you can place '''background reference images''' to use in model construction. The '''data folder''', itself, contains many subfoders. The ./data/... subfolders are where you will find '''clothes and other proxy objects''' that you import using the asset manager. '''Notes:''' * On Windows systems, "Documents and Settings" is subject to internationalization. For older/deprecated versions of Windows you may find the [BASE]/makehuman/v1/ subfolder here: * Microsoft Windows 2000, XP and 2003: c:\\Documents and Settings\<username> * Microsoft Windows NT: <root>\WINNT\Profiles\<username> 9ec92082509706c73dd3dfe9b9a4684128700dfd 1198 1197 2016-10-02T17:59:54Z Robbaer 12 wikitext text/x-wiki The [BASE] folder location for saving MakeHuman user data depends on your operating system (Windows, Linux, OSX, etc..). In the guide below, replace <username> with your actual login name. Typically, your <root> will be 'c:\\' (without quotes) on Windows machines, and just plain "/" (without quotes) on Linux and Mac OSX. Here is the basic guide to finding the [BASE] folder on your operating system: * Microsoft Windows Vista, 7, 8, 8.1 and 10: c:\\Users\<username>\Documents\ * Linux: /home/<username>/ or simply ~/ * Mac OSX: /Users/<username>/Documents/ * MakeHumanPortable (all Windows versions): X:\PortableApps\MakeHumanPortable\AppDate (where X: is the drive letter of your removable device) Your [BASE] folder, by default, contains an "asset folder" called "makehuman" which will, in turn, contain a subfolder named 'v1' for MH version 1.X.X releases. The ./makehuman/v1/ subfolder contains a series of additional subfolders containing your personal MakeHuman asset files: '''backgrounds, cache, data, exports, grab, models, and render'''. The ./models/ folder will contain the .mhm '''model''' files you "save". The ./exports/ folder will contain the files you "'''export'''" in .dae (collada), .fbx, .mhx2, .obj, or .stl formats. The ./backgrounds/ folder is where you can place '''background reference images''' to use in model construction. The '''data folder''', itself, contains many subfoders. The ./data/... subfolders are where you will find '''clothes and other proxy objects''' that you import using the asset manager. '''Notes:''' * On Windows systems, "Documents and Settings" is subject to internationalization. For older/deprecated versions of Windows you may find the <home>/makehuman/v1/ subfolder here: * Microsoft Windows 2000, XP and 2003: c:\\Documents and Settings\<username> * Microsoft Windows NT: <root>\WINNT\Profiles\<username> d156d28bb7cf8bcf2f1bccc057a8c4dd51805fc2 1197 1196 2016-10-02T17:57:43Z Robbaer 12 wikitext text/x-wiki The [BASE] folder location for saving MakeHuman user data depends on your operating system (Windows, Linux, OSX, etc..). In the guide below, replace <username> with your actual login name. Typically, your <root> will be 'c:\\' (without quotes) on Windows machines, and just plain "/" (without quotes) on Linux and Mac OSX. Here is the basic guide to finding the [BASE] folder on your operating system: * Microsoft Windows Vista, 7, 8, 8.1 and 10: c:\\Users\<username>\Documents\ * Linux: /home/<username>/ or simply ~/ * Mac OSX: /Users/<username>/Documents/ * MakeHumanPortable (all Windows versions): X:\PortableApps\MakeHumanPortable\AppDate (where X: is the drive letter of your removable device) Your [BASE] folder, by default, contains an "asset folder" called "makehuman" which will, in turn, contain a subfolder named 'v1' for MH version 1.X.X releases. The ./makehuman/v1/ subfolder contains a series of additional subfolders containing your personal MakeHuman asset files: '''backgrounds, cache, data, exports, grab, models, and render'''. The ./models/ folder will contain the .mhm files you "save". The ./exports/ folder will contain the files you "export" in .dae (collada), .fbx, .mhx2, .obj, or .stl format. The ./backgrounds/ folder is where you can place reference images to use in model construction. The data folder, itself, contains many subfoders. The ./data/... subfolders are where you will find clothes and other proxy objects that you import using the asset manager. '''Notes:''' * On Windows systems, "Documents and Settings" is subject to internationalization. For older/deprecated versions of Windows you may find the <home>/makehuman/v1/ subfolder here: * Microsoft Windows 2000, XP and 2003: c:\\Documents and Settings\<username> * Microsoft Windows NT: <root>\WINNT\Profiles\<username> 871455dc15b72e10b288af1d20231b4d0a21211d 1196 1195 2016-10-02T17:51:18Z Robbaer 12 wikitext text/x-wiki The [BASE] folder location for saving MakeHuman user data depends on your operating system (Windows, Linux, OSX, etc..). In the guide below, replace <username> with your actual login name. Typically, you will replace <root> with 'c:\\' (without quotes) on Windows machines, and with just plain "/" (without quotes) on Linux and Mac OSX. Here is the basic guide to finding the [BASE] folder on your operating system: * Microsoft Windows Vista, 7, 8, 8.1 and 10: c:\\Users\<username>\Documents\ * Linux: /home/<username>/ or simply ~/ * Mac OSX: /Users/<username>/Documents/ * MakeHumanPortable (all Windows versions): X:\PortableApps\MakeHumanPortable\AppDate (where X: is the drive letter of your removable device) Your [BASE] folder will, by default, contain a makehuman asset folder called "makehuman" which will, in turn, conatain a folder named 'v1'. The ./makehuman/v1/ contains a series of subfolders separating your personal MakeHuman files: backgrounds, cache, data, exports, grab, models, and render. The ./models/ folder will contain the .mhm files you "save". The ./exports/ folder will contain the files you "export" in .dae (collada), .fbx, .mhx2, .obj, or .stl format. The ./backgrounds/ folder is where you can place reference images to use in model construction. The data folder, itself, contains many subfoders. The ./data/... subfolders are where you will find clothes and other proxy objects that you import using the asset manager. In your home folder you will find a subfolder named 'makehuman' that itself contains a subfolder named v1 for user created assets in the MakeHuman 1.X.X series. '''Notes:''' * On Windows systems, "Documents and Settings" is subject to internationalization. For older/deprecated versions of Windows you may find the <home>/makehuman/v1/ subfolder here: * Microsoft Windows 2000, XP and 2003: c:\\Documents and Settings\<username> * Microsoft Windows NT: <root>\WINNT\Profiles\<username> 847691de72685a0e4d6f92e0c341bce201c81830 1195 1194 2016-10-02T17:44:53Z Robbaer 12 wikitext text/x-wiki The [Home] folder location for saving MakeHuman user data depends on your operating system (Windows, Linux, OSX, etc..). In the guide below, replace <username> with your actual login name. Typically, you will replace <root> with 'c:\\' (without quotes) on Windows machines, and with just plain "/" (without quotes) on Linux and Mac OSX. Here is the basic guide to finding the [HOME] folder on your operating system: * Microsoft Windows Vista, 7, 8, 8.1 and 10: <root>\Users\<username> * Linux: /home/<username>/ or simply ~/ * Mac OSX: /Users/<username>/Documents/ * MakeHumanPortable (all Windows versions): X:\PortableApps\MakeHumanPortable\AppDate (where X: is the drive letter of your removable device) Your [HOME] folder will, by default, contain a makehuman asset folder called "makehuman" which will, in turn, conatain a folder named 'v1'. The ./makehuman/v1/ contains a series of subfolders separating your personal MakeHuman files: backgrounds, cache, data, exports, grab, models, and render. The ./models/ folder will contain the .mhm files you "save". The ./exports/ folder will contain the files you "export" in .dae (collada), .fbx, .mhx2, .obj, or .stl format. The ./backgrounds/ folder is where you can place reference images to use in model construction. The data folder, itself, contains many subfoders. The ./data/... subfolders are where you will find clothes and other proxy objects that you import using the asset manager. In your home folder you will find a subfolder named 'makehuman' that itself contains a subfolder named v1 for user created assets in the MakeHuman 1.X.X series. '''Notes:''' * On Windows systems, "Documents and Settings" is subject to internationalization. For older/deprecated versions of Windows you may find the <home>/makehuman/v1/ subfolder here: * Microsoft Windows 2000, XP and 2003: c:\\Documents and Settings\<username> * Microsoft Windows NT: <root>\WINNT\Profiles\<username> b4f3301740a1765c22c0d5c826eafacba2de1823 1194 1193 2016-10-02T17:32:03Z Robbaer 12 wikitext text/x-wiki The [Home] folder location for saving MakeHuman user data depends on your operating system (Windows, Linux, OSX, etc..). In the guide below, replace <username> with your actual login name. Typically, you will replace <root> with 'c:\\' (without quotes) on Windows machines, and with just plain "/" (without quotes) on Linux and Mac OSX. Here is the basic guide to finding the [HOME] folder on your operating system: * Microsoft Windows Vista, 7, 8, 8.1 and 10: <root>\Users\<username> * Linux: /home/<username>/ or simply ~/ * Mac OSX: /Users/<username>/ * MakeHumanPortable (all Windows versions): X:\PortableApps\MakeHumanPortable\AppDate (where X: is the drive letter of your removable device) Your [HOME] folder will, by default, contain a makehuman asset folder called "makehuman" which will, in turn, conatain a folder named 'v1'. The ./makehuman/v1/ contains a series of subfolders separating your personal MakeHuman files: backgrounds, cache, data, exports, grab, models, and render. The ./models/ folder will contain the .mhm files you "save". The ./exports/ folder will contain the files you "export" in .dae (collada), .fbx, .mhx2, .obj, or .stl format. The ./backgrounds/ folder is where you can place reference images to use in model construction. The data folder, itself, contains many subfoders. The ./data/... subfolders are where you will find clothes and other proxy objects that you import using the asset manager. In your home folder you will find a subfolder named 'makehuman' that itself contains a subfolder named v1 for user created assets in the MakeHuman 1.X.X series. '''Notes:''' * On Windows systems, "Documents and Settings" is subject to internationalization. For older/deprecated versions of Windows you may find the <home>/makehuman/v1/ subfolder here: * Microsoft Windows 2000, XP and 2003: c:\\Documents and Settings\<username> * Microsoft Windows NT: <root>\WINNT\Profiles\<username> e4b58d3a6bc42e8536626f65c0bbcde57189cd7d 1193 1182 2016-10-02T17:29:42Z Robbaer 12 wikitext text/x-wiki The [Home] folder location for saving MakeHuman user data depends on your operating system (Windows, Linux, OSX, etc..). In the guide below, replace <username> with your actual login name. Typically, you will replace <root> with 'c:\\' (without quotes) on Windows machines, and with just plain "/" (without quotes) on Linux and Mac OSX. Here is the basic guide to finding the [HOME] folder on your operating system: * Microsoft Windows Vista, 7, 8, 8.1 and 10: <root>\Users\<username> * Linux: /home/<username>/ or simply ~/ * Mac OSX: /Users/<username>/ * MakeHumanPortable (all Windows versions): X:\PortableApps\MakeHumanPortable\AppDate (where X: is the drive letter of your removable device) Your [HOME] folder will, by default, contain a makehuman asset folder called "makehuman" which will, in turn, conatain a folder named 'v1'. The ./makehuman/v1/ contains a series of subfolders separating your personal MakeHuman files: backgrounds, cache, data, exports, grab, models, and render. The ./models/ folder will contain the .mhm files you "save". The ./exports/ folder will contain the files you "export" in .dae (collada), .fbx, .mhx2, .obj, or .stl format. The ./backgrounds/ folder is where you can place reference images to use in model construction. The data folder, itself, contains many subfoders. The ./data/... subfolders are where you will find clothes and other proxy objects that you import using the asset manager. In your home folder you will find a subfolder named 'makehuman' that itself contains a subfolder named v1 for user created assets in the MakeHuman 1.X.X series. '''Notes:''' For older/deprecated versions of Windows you may find the <home>makehuman/v1/ subfolder here: * Microsoft Windows 2000, XP and 2003: c:\\Documents and Settings\<username> * Microsoft Windows NT: <root>\WINNT\Profiles\<username> * On Windows systems, "Documents and Settings" is subject to internationalization. a194f9c062627dff3d71f49891c4eefe39370395 1182 66 2016-09-29T13:55:52Z Aranuvir 17 wikitext text/x-wiki The Home folder location depends on where your operating system (Windows, Linux Osx, etc..) stores documents, pictures, files, settings, preference, videos, and music by default. Here is the basic guide: * Microsoft Windows NT: <root>\WINNT\Profiles\<username> * Microsoft Windows 2000, XP and 2003: <root>\Documents and Settings\<username> * Microsoft Windows Vista, 7 and 8: <root>\Users\<username> * Linux: <root>/home/<username> * Mac OSX: /Users/<username> * MakeHumanPortable (all Windows versions): X:\PortableApps\MakeHumanPortable\AppDate (replace X: by the appropriate drive letter of your removable device) Within the Home directory you should find a folder called makehuman. Starting with MakeHuman Alpha 8, the makehuman folder contains version specific subfolders for major releases. MakeHuman 1.0.X automatically stores data into the [HOME]/makehuman/v1/, using the following scheme: * linux: /home/USERNAME/makehuman/v1 * OSX: /Users/USERNAME/Documents/makehuman/v1 * win32: ROOT_LETTER:\Documents and settings\USERNAME\My Documents\makehuman\v1 The [HOME]/makehuman/v1 folder will, in turn, have a series of subfolders separating your personal MakeHuman files like saved models, saved exports, data (e.g., custom clothes, materials, and geometries), backgrounds, renders, screen grabs, etc. Notes: * On Windows systems, "My Documents" is subject to internationalization. * On recent Windows versions you can also use: ROOT_LETTER:/Users/USERNAME/Documents. * ROOT_LETTER is often C:, but not necessarily. 8c685c5a8fcd6476d9b8233b5081f4e0e67f141b 66 2015-07-06T07:34:36Z Joepal 14 Created page with "The Home folder location depends on where your operating system (Windows, Linux Osx, etc..) stores documents, pictures, files, settings, preference, videos, and music by defa..." wikitext text/x-wiki The Home folder location depends on where your operating system (Windows, Linux Osx, etc..) stores documents, pictures, files, settings, preference, videos, and music by default. Here is the basic guide: * Microsoft Windows NT: <root>\WINNT\Profiles\<username> * Microsoft Windows 2000, XP and 2003: <root>\Documents and Settings\<username> * Microsoft Windows Vista, 7 and 8: <root>\Users\<username> * Linux: <root>/home/<username> * Mac OSX: /Users/<username> Within the Home directory you should find a folder called makehuman. Starting with MakeHuman Alpha 8, the makehuman folder contains version specific subfolders for major releases. MakeHuman 1.0.X automatically stores data into the [HOME]/makehuman/v1/, using the following scheme: * linux: /home/USERNAME/makehuman/v1 * OSX: /Users/USERNAME/Documents/makehuman/v1 * win32: ROOT_LETTER:\Documents and settings\USERNAME\My Documents\makehuman\v1 The [HOME]/makehuman/v1 folder will, in turn, have a series of subfolders separating your personal MakeHuman files like saved models, saved exports, data (e.g., custom clothes, materials, and geometries), backgrounds, renders, screen grabs, etc. Notes: * On Windows systems, "My Documents" is subject to internationalization. * On recent Windows versions you can also use: ROOT_LETTER:/Users/USERNAME/Documents. * ROOT_LETTER is often C:, but not necessarily. 7c96e0c0293947b3cc8357f5a72ec05c9bfb9a07 FAQ:Where are the nightly builds? 3002 529 1412 1405 2017-07-13T11:29:10Z Joepal 14 wikitext text/x-wiki Nightly builds can be found at http://download.tuxfamily.org/makehuman/nightly/ Currently only windows binaries are being built. For linux, see [[FAQ: How can I run the same code as the nightly build from source?]]. c8265b76c664032920993c99b084aee6d05ab1df 1405 2017-07-13T10:56:59Z Joepal 14 Created page with "Nightly builds can be found at http://download.tuxfamily.org/makehuman/nightly/ Currently only windows binaries are being built." wikitext text/x-wiki Nightly builds can be found at http://download.tuxfamily.org/makehuman/nightly/ Currently only windows binaries are being built. acf4775f26764aef3b7851340398c013625ea425 FAQ:Where can I download MakeHuman? 3002 34 1211 1210 2016-10-29T08:52:22Z Joepal 14 wikitext text/x-wiki See the [http://www.makehumancommunity.org/content/downloads.html Download page]. If you want to download the source code you can find it at https://bitbucket.org/MakeHuman/makehuman 2875767d5c2898d1570ba579b7e84c329516c473 1210 92 2016-10-29T08:51:32Z Joepal 14 wikitext text/x-wiki The normal page for finding makehuman is http://www.makehumancommunity.org/content/download.html. If you want to download the source code you can find it at https://bitbucket.org/MakeHuman/makehuman 334503e14ca2fb73b7b42a755fb05088b6db4b65 92 2015-07-10T09:41:14Z Joepal 14 Created page with "The normal page for finding makehuman is http://www.makehuman.org/content/download.html. If you want to download the source code you can find it at https://bitbucket.org/Make..." wikitext text/x-wiki The normal page for finding makehuman is http://www.makehuman.org/content/download.html. If you want to download the source code you can find it at https://bitbucket.org/MakeHuman/makehuman 6c95831667887187260f1e68cb124bfa27de799f FAQ:Where can I find older Versions of MakeHuman? 3002 477 1139 2016-08-29T11:06:05Z Aranuvir 17 Created page with "In case you need an older version of MakeHuman you can download from the current archive at: http://files.jwp.se/archive/" wikitext text/x-wiki In case you need an older version of MakeHuman you can download from the current archive at: http://files.jwp.se/archive/ 127753c2b16de7ef5b0c03b36ef6d2c72c0f2852 FAQ:Where can I get MHX2 for Blender 2.80 3002 580 1612 2019-09-27T08:24:08Z Joepal 14 Created page with "As pull requests haven't been accepted upstreams for a while, we now keep a (possibly temporary) fork of MHX2 at https://bitbucket.org/Aranuvir/mhx2-makehuman-exchange/src/def..." wikitext text/x-wiki As pull requests haven't been accepted upstreams for a while, we now keep a (possibly temporary) fork of MHX2 at https://bitbucket.org/Aranuvir/mhx2-makehuman-exchange/src/default/. This should work with Blender 2.80. You can find up to date links at the download plugins page at http://www.makehumancommunity.org/content/plugins.html 5e7601cd2b3805c3ad1522e8028f368b30a40886 FAQ:Where can I unzip MakeHuman (in Windows)? 3002 36 95 2015-07-10T09:49:43Z Joepal 14 Created page with "In theory MakeHuman can be run from any folder, but due to a limitation of pyinstaller (with which the builds are compiled) you cannot place the application in a folder with n..." wikitext text/x-wiki In theory MakeHuman can be run from any folder, but due to a limitation of pyinstaller (with which the builds are compiled) you cannot place the application in a folder with non-ascii characters (so no È, Ø, Å or Д type of things). The safest solution that always works is unzipping makehuman in C:\makehuman. If you know you only have the letters a-z0-9_ in your user name, unzipping the download in a new folder on the desktop is usually a convenient solution. Just make sure you unzip the entire downloaded zip file to that folder, not just double click the .exe and hope that everything turns up where it should. add9cc4d1f051e00a62b7724feac777b5c3faf40 FAQ:Which version of MakeHuman should I download? 3002 35 1930 1929 2020-11-06T12:40:58Z Joepal 14 wikitext text/x-wiki TL;DR: At this point in time, you are best off downloading the stable release of MakeHuman Community 1.2.0. See http://www.makehumancommunity.org/content/makehuman_120.html. If you want newer features, it is usually also safe to download the nightly build. For windows, it is available from [http://download.tuxfamily.org/makehuman/nightly/ the download directory]. Look for the file named "*-nightly-windows.zip". Linux users are encouraged to run from source, but there is also a PPA at https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community There are three different versions of MakeHuman, and it can be confusing for new users to understand which is stable and/or current. The available versions are: * MakeHuman nightly builds (of what is to become the next version): This is the latest code, and it is published every night. It thus contains all the latest changes, although theoretically a mistake could have been introduced. At this point in the development cycle, this is a mostly stable build. * Makehuman alphas and betas (of what is to become the next version): These are points in time where the development code was released together with release notes and a version number (such as "1.2.0-alpha4"). In practice it is basically the same as an old nightly build. * MakeHuman releases (currently 1.2.x): These are formal releases from the stable branch of makehuman. They are updated seldomly and are well tested. At this point in time the last formal release is 1.2.0. We do not recommend using older releases. 15de371aefa310a51b3b2d88e03aaa4a7dc8d174 1929 1790 2020-11-06T12:39:59Z Joepal 14 wikitext text/x-wiki TL;DR: At this point in time, you are best off downloading the stable release of MakeHuman Community 1.2.0. See http://www.makehumancommunity.org/content/makehuman_120.html. If you want newer features, it is usually also safe to download the nightly build. For windows, it is available from [http://download.tuxfamily.org/makehuman/nightly/ the download directory]. Look for the file named "*-nightly-windows.zip". Linux users are encouraged to run from source, but there is also a PPA at https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community There are three different versions of MakeHuman, and it can be confusing for new users to understand which is stable and/or current. The available versions are: * MakeHuman nightly builds (of what is to become the next version): This is the latest code, and it is published every night. It thus contains all the latest changes, although theoretically a mistake could have been introduced. At this point in the development cycle, this is the most stable download. * Makehuman alphas and betas (of what is to become the next version): These are points in time where the development code was released together with release notes and a version number (such as "1.2.0-alpha4"). In practice is basically the same as an old nightly build. * MakeHuman releases (currently 1.2.x): These are formal releases from the stable branch of makehuman. They are updated seldomly and are well tested. At this point in time the last formal release is 1.2.0. We do not recommend using older releases. 7ceede1e5239d36c0a63708a5a89351c47a9f139 1790 1786 2020-05-09T13:40:01Z Joepal 14 wikitext text/x-wiki TL;DR: At this point in time, you are best off downloading the "nightly build". For windows, it is available from [http://download.tuxfamily.org/makehuman/nightly/ the download directory]. Look for the file named "*-nightly-windows.zip". Linux users are encouraged to run from source, but there is also a PPA at https://launchpad.net/~makehuman-official/+archive/ubuntu/makehuman-community There are three different versions of MakeHuman, and it can be confusing for new users to understand which is stable and/or current. The available versions are: * MakeHuman nightly builds (of what is to become 1.2.x): This is the latest code, and it is published every night. It thus contains all the latest changes, although theoretically a mistake could have been introduced. At this point in the development cycle, this is the most stable download. * Makehuman alphas and betas (of what is to become 1.2.x): These are points in time where the development code was released together with release notes and a version number (such as "1.2.0-alpha4"). In practice is basically the same as an old nightly build. * MakeHuman releases (currently 1.1.x): These are formal releases from the stable branch of makehuman. They are updated seldomly and are well tested. At this point in time the last formal release is 1.1.1. However, this is rather old and does not contain a lot of the functionality which has been added lately. f51ced4735d1e5f6697f3dc2b9b996cea68885d7 1786 661 2020-04-27T15:16:27Z Joepal 14 wikitext text/x-wiki TL;DR: At this point in time, you are best off downloading the "nightly build". For windows, it is available from [http://download.tuxfamily.org/makehuman/nightly/ the download directory]. Look for the file named "*-nightly-windows.zip". Linux users are encouraged to run from source. There are three different versions of MakeHuman, and it can be confusing for new users to understand which is stable and/or current. The available versions are: * MakeHuman nightly builds (of what is to become 1.2.x): This is the latest code, and it is published every night. It thus contains all the latest changes, although theoretically a mistake could have been introduced. At this point in the development cycle, this is the most stable download. * Makehuman alphas and betas (of what is to become 1.2.x): These are points in time where the development code was released together with release notes and a version number (such as "1.2.0-alpha4"). In practice is basically the same as an old nightly build. * MakeHuman releases (currently 1.1.x): These are formal releases from the stable branch of makehuman. They are updated seldomly and are well tested. At this point in time the last formal release is 1.1.1. However, this is rather old and does not contain a lot of the functionality which has been added lately. 297a6bfdf0d9a86c5a0cf4cf345c63dfe863cfa6 661 93 2016-05-14T08:35:42Z Joepal 14 wikitext text/x-wiki There are two different versions of MakeHuman, and it can be confusing for new users to understand which is stable and/or current. The available versions are: * MakeHuman releases (currently 1.1.x): These are formal releases from the stable branch of makehuman. They are updated seldomly and are well tested. This is currently what you should use. * MakeHuman nightly builds (what is to become 1.2.x in a distant future): These are builds of the unstable branch and are updated nightly. They do thus contain all the latest changes, but are at the moment likely to crash and burn. Normal users will currently not want to use this. 2997489a7a58a9662266f811dd5b7fdbdec4cb2e 93 2015-07-10T09:45:57Z Joepal 14 Created page with "There are two different versions of MakeHuman, and it can be confusing for new users to understand which is stable and/or current. The available versions are: * MakeHuman rel..." wikitext text/x-wiki There are two different versions of MakeHuman, and it can be confusing for new users to understand which is stable and/or current. The available versions are: * MakeHuman releases (currently 1.0.x): These are formal releases from the stable branch of makehuman. They are updated seldomly and are well tested. * MakeHuman nightly builds (currently what is to become 1.1.x): These are builds of the unstable branch and are updated nightly. They do thus contain all the latest changes. Note that late in the development cycle, the term "unstable" is something of a misnomer as it is then often at least as stable as the last release. Early on after a release we recommend that you download and use a formal release. If you need the new features and/or some time have passed (several months) since the last release, we recommend that you download the nightly build. If you find and report a bug in the stable release, you will more often than not be directed to try the nightly build instead. 1435040192af17ae5a92ab5ccbfbfa614b40859c FAQ:Why is there no perspective mode? 3002 28 408 86 2015-08-16T07:54:58Z Aranuvir 17 wikitext text/x-wiki In a professional pipeline, there are two phases: # Modeling the character. # Using the character. While the perspective is fundamental in the step two, it's not needed in phase one. In phase one it's even harmful, since it generates huge deformations and the perception of the resulting character is highly subjective (see image below). A character modelled with a focal length can appear very ugly and unnatural when viewed with a different perspective. For this reason perspective is not used by professionals during this phase. Since MakeHuman is designed for phase one, it will only have the ortho view. IMAGE IS MISSING, IMPORT FROM DRUPAL 47da0a8c493c561b1c6b9b09f43464807f1b1971 86 2015-07-09T11:42:04Z Joepal 14 Created page with "In a professional pipeline, there are two phases: # Modeling the character. # Using the character. While the perspective is fundamental in the step two, it's not needed in p..." wikitext text/x-wiki In a professional pipeline, there are two phases: # Modeling the character. # Using the character. While the perspective is fundamental in the step two, it's not needed in phase one. In phase one it's even harmful, since it generates huge deformations and the perception of the resulting character is highly subjective (see image below). A character modeled with a focal lenght can appear very ugly and unnatural when viewed with a different perspective. For this reason perspective is not used by professionals during this phase. Since MakeHuman is designed for phase one, it will onle have the ortho view. IMAGE IS MISSING, IMPORT FROM DRUPAL 25dbd6d4259e836db0dbe1956943f93e3b7d79aa FAQ:Why quadrilaterals? 3002 27 85 2015-07-09T11:40:18Z Joepal 14 Created page with "Because quad > triangle conversion is trivial, while the other way around can be more complex (especially since it allows degraded topologies when quads and tris are mixed). Q..." wikitext text/x-wiki Because quad > triangle conversion is trivial, while the other way around can be more complex (especially since it allows degraded topologies when quads and tris are mixed). Quads have advantages in subdivision, and define deterministic edge loops, they are just much more convenient to work with in a modeling and animating environment. In fact, MakeHuman does not impose the use of quads, you can use tris for proxies too. The only limitation is that you do not mix quads and tris, it's either one or the other. Note that subdivision does not work in MH when using tris. In any case, the only reason you would use triangles is for reducing the polycount, which is a progress that should happen very late in your pipeline, not in the middle of the modeling process (and should only be done when you know exactly what polycount ratio you're aiming for). As vertex counts are becoming less of a limitation with recent graphics hardware, triangles are getting less and less used. In fact many recent (and even previous generation) games use only quads for their character meshes. It just performs much better in animation, and produces a much cleaner topology. 555392a08279ca93d73b87530cd53543d88ff8d8 FAQ:Will the nightly build work? 3002 530 1406 2017-07-13T10:59:50Z Joepal 14 Created page with "If you have a modern workstation with a discrete nVidia card (as opposed to, say, a laptop with an integrated intel graphics chip), it might. The binary starts and works on..." wikitext text/x-wiki If you have a modern workstation with a discrete nVidia card (as opposed to, say, a laptop with an integrated intel graphics chip), it might. The binary starts and works on the build machine at least, but there are several reports about problems on other computers. In summary: Don't be surprised if you get a crash or a MakeHuman window where no toon is visible. e431cd9074d525a7a18f36d2abca2d65113c9f12